diff --git a/404.html b/404.html index 71dfa3b..54251d8 100644 --- a/404.html +++ b/404.html @@ -217,7 +217,7 @@ Page not found - ZenWave 360º

There's a leak in the website.

Leak illustration

The page you are looking for does not actually exist.

There's a leak in the website.

Leak illustration

The page you are looking for does not actually exist.

\ No newline at end of file + } \ No newline at end of file diff --git a/404/index.html b/404/index.html index 1133e3c..66dcf1f 100644 --- a/404/index.html +++ b/404/index.html @@ -217,7 +217,7 @@ Page not found - ZenWave 360º

There's a leak in the website.

Leak illustration

The page you are looking for does not actually exist.

There's a leak in the website.

Leak illustration

The page you are looking for does not actually exist.

\ No newline at end of file + } \ No newline at end of file diff --git a/API-First/AsyncAPI/index.html b/API-First/AsyncAPI/index.html index a1118d4..8680697 100644 --- a/API-First/AsyncAPI/index.html +++ b/API-First/AsyncAPI/index.html @@ -230,10 +230,10 @@ } } }) - AsyncAPI - ZenWave 360ºAsyncAPI - ZenWave 360º

API-First with AsyncAPI

+ } catch (e) {} })();

API-First with AsyncAPI

This is a summary of two long posts about API-First with AsyncAPI and ZenWave AsyncAPI Code Generator.

@@ -282,24 +282,24 @@

Understanding AsyncAPI Specification

-

See AsyncAPI Reference and Understanding AsyncAPI Specification blog post for more details about AsyncAPI documents.

+

See AsyncAPI Reference and Understanding AsyncAPI Specification blog post for more details about AsyncAPI documents.

Different Styles of Event Messages

-

See Different Styles of Event Messages to learn about Notification Messages, State Transfer Messages and Domain Event Messages.

+

See Different Styles of Event Messages to learn about Notification Messages, State Transfer Messages and Domain Event Messages.

API-First Code Generator from AsyncAPI

-

You can use API-First AsyncAPI Maven Plugin to generate models (DTOs) and a producer implementation.

+

You can use API-First AsyncAPI Maven Plugin to generate models (DTOs) and a producer implementation.

-

See Producing Domain Events and Consuming Async Commands for more details on how to configure the plugin, and how to use generated code.

+

See Producing Domain Events and Consuming Async Commands for more details on how to configure the plugin, and how to use generated code.

Some Patterns supported by ZenWave AsyncAPI Code Generator

-

Exception Handling with Business Dead Letter Queue

-

Populating Headers at Runtime Automatically

-

Transactional Outbox with MongoDB ChangeStreams

+

Exception Handling with Business Dead Letter Queue

+

Populating Headers at Runtime Automatically

+

Transactional Outbox with MongoDB ChangeStreams

AsyncAPI Conference On Tour Madrid 2023

 

-
\ No newline at end of file + } \ No newline at end of file diff --git a/API-First/OpenAPI/index.html b/API-First/OpenAPI/index.html index f658fc1..b7d4257 100644 --- a/API-First/OpenAPI/index.html +++ b/API-First/OpenAPI/index.html @@ -221,26 +221,26 @@ } } }) - OpenAPI - ZenWave 360ºOpenAPI - ZenWave 360º

API-First with OpenAPI

+ } catch (e) {} })();

API-First with OpenAPI

This is an unsorted list of features ZenWave360 provides for API-First with OpenAPI.

If you are already doing API-First with OpenAPI, with ZenWave360 you can generate:

And if you are doing Domain-Driven Design with ZenWave ZDL, you can also:

\ No newline at end of file + } \ No newline at end of file diff --git a/app-cf7281e2205f730a3e03.js b/app-9ff8c91892a8b535e6f2.js similarity index 94% rename from app-cf7281e2205f730a3e03.js rename to app-9ff8c91892a8b535e6f2.js index 00c0151..1db84a9 100644 --- a/app-cf7281e2205f730a3e03.js +++ b/app-9ff8c91892a8b535e6f2.js @@ -1,3 +1,3 @@ -/*! For license information please see app-cf7281e2205f730a3e03.js.LICENSE.txt */ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[143],{70680:function(e,a){"use strict";var n=Object.assign||function(e){for(var a=1;a1&&void 0!==arguments[1]?arguments[1]:{},s=g.state,c=g.replace,u=void 0!==c&&c;if("number"==typeof a)e.history.go(a);else{s=n({},s,{key:Date.now()+""});try{o||u?e.history.replaceState(s,null,a):e.history.pushState(s,null,a)}catch(l){e.location[u?"replace":"assign"](a)}}r=d(e),o=!0;var R=new Promise((function(e){return i=e}));return t.forEach((function(e){return e({location:r,action:"PUSH"})})),R}}},r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",a=e.indexOf("?"),n={pathname:a>-1?e.substr(0,a):e,search:a>-1?e.substr(a):""},d=0,t=[n],r=[null];return{get location(){return t[d]},addEventListener:function(e,a){},removeEventListener:function(e,a){},history:{get entries(){return t},get index(){return d},get state(){return r[d]},pushState:function(e,a,n){var o=n.split("?"),i=o[0],g=o[1],s=void 0===g?"":g;d++,t.push({pathname:i,search:s.length?"?"+s:s}),r.push(e)},replaceState:function(e,a,n){var o=n.split("?"),i=o[0],g=o[1],s=void 0===g?"":g;t[d]={pathname:i,search:s},r[d]=e},go:function(e){var a=d+e;a<0||a>r.length-1||(d=a)}}}},o=!("undefined"==typeof window||!window.document||!window.document.createElement),i=t(o?window:r()),g=i.navigate;a.V5=i},67329:function(e,a,n){"use strict";a.ei=void 0;var d,t=n(3996),r=(d=t)&&d.__esModule?d:{default:d};var o=function(e,a){return e.substr(0,a.length)===a},i=function(e,a){for(var n=void 0,d=void 0,t=a.split("?")[0],o=l(t),i=""===o[0],s=R(e),u=0,p=s.length;ua.score?-1:e.index-a.index}))},l=function(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},p=function(e){for(var a=arguments.length,n=Array(a>1?a-1:0),d=1;d0})))&&n.length>0?"?"+n.join("&"):"")},f=["uri","path"];a.ei=i},20951:function(e,a,n){"use strict";n.d(a,{Zo:function(){return i},ah:function(){return r}});var d=n(27378);const t=d.createContext({});function r(e){const a=d.useContext(t);return d.useMemo((()=>"function"==typeof e?e(a):{...a,...e}),[a,e])}const o={};function i(e){let{components:a,children:n,disableParentContext:i}=e,g=r(a);return i&&(g=a||o),d.createElement(t.Provider,{value:g},n)}},24956:function(e,a,n){"use strict";n.d(a,{If:function(){return U},LO:function(){return g},Q2:function(){return q},pH:function(){return Q},uy:function(){return N},yB:function(){return ee}});var d=n(27378),t=n(63681),r=n(83601);function o(e){return(0,t.XRo)({theme:e})}function i(){const[e,a]=d.useState("undefined"==typeof window?null:window.innerWidth);return d.useEffect((()=>{function e(){a(window.innerWidth)}return window.addEventListener("resize",e),a(window.innerWidth),()=>window.removeEventListener("resize",e)}),[]),e}function g(e,a){const n=function(e,a){const n=o(e)[a];return 0===n?null:n}(e,a),d=i();return null!==d&&null!==n&&d>=n}const s=function(){for(var e=arguments.length,a=new Array(e),n=0;n"--".concat(e.replace(/\./g,"-")),u=(e,a)=>"var(".concat(c(e),", ").concat(a,")"),R=(e,a)=>"".concat(e,": ").concat(a,";");function l(e,a){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Object.keys(e),d=arguments.length>3?arguments[3]:void 0;const t=Array.isArray(e)?[]:{};for(const o in n){const i=n[o],g=e[i],c=s(d,i);(0,r.j6)(g)?t[i]=l(g,a,Object.keys(g),c):(0,r.Z_)(g)?t[i]=u(c,g):(0,r.Yl)(g)&&(t[i]=u(c,(0,r.Gg)(g,{theme:a})))}return t}function p(e,a){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Object.keys(e),d=arguments.length>3?arguments[3]:void 0,t=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{value:""};for(const o in n){const i=n[o],g=e[i],u=s(d,i);(0,r.j6)(g)?p(g,a,Object.keys(g),u,t):(0,r.Z_)(g)?t.value+=R(c(u),g):(0,r.Yl)(g)&&(t.value+=R(c(u),(0,r.Gg)(g,{theme:a})))}return t.value}var f=Object.defineProperty,h=Object.defineProperties,m=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,w=(e,a,n)=>a in e?f(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,S=(e,a)=>{for(var n in a||(a={}))b.call(a,n)&&w(e,n,a[n]);if(y)for(var n of y(a))v.call(a,n)&&w(e,n,a[n]);return e},E=(e,a)=>h(e,m(a)),x=(e,a)=>{var n={};for(var d in e)b.call(e,d)&&a.indexOf(d)<0&&(n[d]=e[d]);if(null!=e&&y)for(var d of y(e))a.indexOf(d)<0&&v.call(e,d)&&(n[d]=e[d]);return n};const _="xstyled-color-mode",C="undefined"!=typeof window&&(()=>{try{const e="xstyled-test-key";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}})()?{get:()=>window.localStorage.getItem(_),set:e=>{window.localStorage.setItem(_,e)},clear:()=>window.localStorage.removeItem(_)}:{get:()=>null,set:()=>{},clear:()=>{}},D="xstyled-color-mode-",k=e=>"".concat(D).concat(e),O="xstyled-colors",A=["light","dark"];function j(e,a){return E(S({},e),{colors:S(S({},e.colors),e.colors.modes[a])})}const P=e=>"@media ".concat(e),I=e=>"(prefers-color-scheme: ".concat(e,")");function T(e){return Boolean(e&&e.colors&&e.colors.modes)}function F(e){return Boolean(e&&(void 0===e.useCustomProperties||e.useCustomProperties))}function B(e){return e.initialColorModeName||"default"}function L(e){return e.defaultColorModeName||B(e)}function M(e){let a=[];for(const n in e)a=[...a,...Object.keys(e[n])];return a}function N(e){let{targetSelector:a="body"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!T(e))return null;const n=e.colors,{modes:d}=n,t=x(n,["modes"]),r=M(d);let o=p(t,e,r,O);function i(a){const n=j(e,a),d=n.colors,{modes:t}=d,o=x(d,["modes"]);return p(S(S({},o),t[a]),n,r,O)}!1!==e.useColorSchemeMediaQuery&&A.forEach((e=>{if(d[e]){const a=P(I(e));o+="".concat(a,"{").concat(i(e),"}")}}));const g=B(e);return[g,...Object.keys(d)].forEach((e=>{const a="&.".concat(k(e));o+="".concat(a,"{").concat(i(e),"}")})),"".concat(a,"{").concat(o,"}")}function G(e){const a=d.useMemo((()=>function(e){return Boolean(e&&(void 0===e.useColorSchemeMediaQuery||e.useColorSchemeMediaQuery))}(e)?A.map((a=>{if(!T(e))return null;if(!e.colors.modes[a])return null;const n=function(e){if("undefined"==typeof window||void 0===window.matchMedia)return null;const a=I(e);return window.matchMedia(a)}(a);return n?{mode:a,mql:n}:null})).filter(Boolean):[]),[e]),[n,t]=d.useState((()=>{const e=a.find((e=>e.mql.matches));return e?e.mode:null}));return d.useEffect((()=>{const e=a.map((e=>{let{mode:a,mql:n}=e;const d=e=>{let{matches:n}=e;t(n?a:e=>e===a?null:a)};return n.addEventListener("change",d),()=>n.removeEventListener("change",d)}));return()=>e.forEach((e=>e()))})),n}const z="undefined"!=typeof window?d.useLayoutEffect:d.useEffect;const H=d.createContext(null);function U(){const e=d.useContext(H);if(!e)throw new Error("[useColorMode] requires the ColorModeProvider component");return e}function q(e){let{ThemeContext:a,ThemeProvider:n,ColorModeStyle:t}=e;return function(e){let{children:r,target:o,targetSelector:i}=e;const g=d.useContext(a);if(!g)throw new Error("[ColorModeProvider] requires ThemeProvider upper in the tree");const s=function(e){let{target:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=G(e),t=L(e),r=B(e),[o,i]=d.useState((()=>T(e)?t:null)),g=F(e),s=d.useRef(!1),c=d.useCallback((e=>{s.current=!0,i(e)}),[]);return z((()=>{if(!T(e))return;const a=C.get();o!==(a||n||t)&&i(a||n||t)}),[]),z((()=>{s.current&&(o?C.set(o):C.clear())}),[o]),z((()=>{if(C.get())return;const e=n||t;e!==o&&i(e)}),[o,n,t]),z((()=>{if(!o)return;if(!g)return;if(!C.get()&&r===o)return;const e=k(o),n=a||document.body;return n.classList.add(e),()=>{n.classList.remove(e)}}),[g,a,o,r]),[o,c]}(g,{target:o}),c=function(e,a){const[n]=d.useState(a),t=d.useMemo((()=>{if(!n)return null;if(!F(e))return null;if(!T(e))return e;const a=e.colors,{modes:d}=a,t=x(a,["modes"]),r=M(d);return E(S({},e),{colors:E(S(S({},t),l(t,e,r,O)),{modes:d}),__rawColors:e.colors})}),[n,e]),r=d.useMemo((()=>a?F(e)?null:T(e)?a===B(e)?E(S({},e),{__colorMode:a}):E(S({},e),{colors:S(S({},e.colors),e.colors.modes[a]),__colorMode:a,__rawColors:e.colors}):e:null),[e,a]);return t||r}(g,s[0]);return d.createElement(d.Fragment,null,d.createElement(t,{targetSelector:i}),d.createElement(n,{theme:c},d.createElement(H.Provider,{value:s},r)))}}t.ByQ.meta;const W=e=>a=>n=>{const d=e((0,t.XRo)(n),a);return null===d?"0":d||a},$={"min-width":W(t.oSz),"max-width":W(t.EL6)},K="[-\\w]",V="(".concat(K,"+)(\\s*:\\s*)(?=\\S)(").concat("(?:\\\\[\\s\\S]|[^\\\\;{}])","*?)(\\s*!important)?(\\s*;)"),Z="(@media\\b\\s*)(?=\\S)(".concat("[^{]","+?)(\\s*\\{)"),Y=new RegExp("(?:".concat(V,"|").concat(Z,")"),"g"),X=new RegExp("(\\(\\s*)(".concat(K,"+)(\\s*:\\s*)([^\\)]*?)(\\s*\\))"),"g"),J=e=>{let a,n=0;const d=[];for(;a=X.exec(e);){const[,t,r,o,i,g]=a,s=$[r];s&&(d.push(e.slice(n,a.index)),d.push((e=>"".concat(t).concat(r).concat(o).concat(s(i)(e)).concat(g))),n=a.index+a[0].length)}return d.push(e.slice(n,e.length)),d},Q=e=>a=>{if("string"!=typeof a)return a;let n,d=0;const t=[];for(;n=Y.exec(a);){const[,r,o,i,g,s,c,u,R]=n;if(c)t.push(a.slice(d,n.index)),t.push(c),J(u).forEach((e=>t.push(e))),t.push(R),d=n.index+n[0].length;else{const c=e.meta.cssGetters[r];c&&(t.push(a.slice(d,n.index)),t.push((e=>"".concat(r).concat(o).concat(c(i)(e)).concat(g||"").concat(s))),d=n.index+n[0].length)}}return t.push(a.slice(d,a.length)),t},ee=(e,a)=>(n,t)=>{const r=a();return(0,d.useMemo)((()=>e(n,t)({theme:r})),[n,t,r])}},30294:function(e,a,n){"use strict";function d(e,a){return a||(a=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(a)}}))}n.d(a,{SGU:function(){return l},eNC:function(){return h},vJn:function(){return k},ivY:function(){return _},ZPm:function(){return C},FgM:function(){return p},WvJ:function(){return f},x:function(){return D}});var t,r,o,i=n(59882),g=n(24956),s=n(27378),c=n(63681),u=n(83601);const R=(0,i.createGlobalStyle)(t||(t=d(["",""])),(e=>(0,g.uy)(e.theme,{targetSelector:e.targetSelector}))),l=(0,g.Q2)({ThemeContext:i.ThemeContext,ThemeProvider:i.ThemeProvider,ColorModeStyle:R}),p=()=>(0,s.useContext)(i.ThemeContext),f=((0,g.yB)(c.th,p),(0,g.yB)(c.th.angle,p),(0,g.yB)(c.th.animation,p),(0,g.yB)(c.th.border,p),(0,g.yB)(c.th.borderColor,p),(0,g.yB)(c.th.borderStyle,p),(0,g.yB)(c.th.borderWidth,p),(0,g.yB)(c.th.color,p),(0,g.yB)(c.th.duration,p),(0,g.yB)(c.th.font,p),(0,g.yB)(c.th.fontSize,p),(0,g.yB)(c.th.fontWeight,p),(0,g.yB)(c.th.inset,p),(0,g.yB)(c.th.letterSpacing,p),(0,g.yB)(c.th.lineHeight,p),(0,g.yB)(c.th.percent,p),(0,g.yB)(c.th.px,p),(0,g.yB)(c.th.radius,p),(0,g.yB)(c.th.ringWidth,p),(0,g.yB)(c.th.shadow,p),(0,g.yB)(c.th.size,p),(0,g.yB)(c.th.space,p),(0,g.yB)(c.th.timingFunction,p),(0,g.yB)(c.th.transform,p),(0,g.yB)(c.th.transition,p),(0,g.yB)(c.th.transitionProperty,p),(0,g.yB)(c.th.zIndex,p),e=>(0,g.LO)(p(),e)),h=(0,i.createGlobalStyle)((e=>{let{theme:a}=e;return(0,c.jsI)(a)})),m=e=>{const a=(0,g.pH)(e);return function(){const e=(0,i.css)(...arguments),n=(0,u.J)(e);return n.map(a)}},y="function"==typeof i.default?i.default:i.default.default,b=(e,a,n)=>{const t=function(){return e(r||(r=d(["","",""])),a(...arguments),n)};return t.attrs=d=>b(e.attrs(d),a,n),t.withConfig=d=>b(e.withConfig(d),a,n),t},v=e=>{const a=new Set(e.meta.props);return(e,n,d)=>(!(0,u.Z_)(e)||!a.has(e))&&("string"!=typeof d||n(e))},w=(e,a)=>{const n=a?{shouldForwardProp:v(a)}:{};return d=>{const t=y(d);return b(n?t.withConfig(n):t,e,a)}},S=e=>{const a=m(e),n=w(a),d=w(a,e);return n.box=d("div"),Object.keys(y).forEach((e=>{n[e]=n(e),n["".concat(e,"Box")]=d(e)})),n},E=e=>{const a=w(m(e),e),n={};return Object.keys(y).forEach((e=>{n[e]=a(e)(o||(o=d([""])))})),n},x=e=>{const a=m(e);return function(){return(0,i.createGlobalStyle)([a(...arguments)])}},{css:_,styled:C,x:D,createGlobalStyle:k}=(O=c.ByQ,{css:m(O),x:E(O),styled:S(O),createGlobalStyle:x(O)});var O},63681:function(e,a,n){"use strict";n.d(a,{ByQ:function(){return Sn},EL6:function(){return h},XRo:function(){return E},jsI:function(){return Jn},nW4:function(){return Fn},oSz:function(){return f},th:function(){return En},uHP:function(){return Zn},up:function(){return xn},zNd:function(){return _n}});var d=n(83601),t=Math.pow;const r=e=>Math.round(e*t(10,4))/t(10,4),o=e=>a=>(0,d.OK)(a)&&0!==a?"".concat(a).concat(e):a,i=o("ms"),g=o("px"),s=o("deg"),c=function(e){let{rootFontSize:a=16}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r(e/a)},u=(e,a)=>{if(!(0,d.Z_)(e)||e.length<4)return e;if("rpx"!==e.slice(-3))return e;const n=Number(e.slice(0,e.length-3));return 0===n?0:"".concat(c(n,a),"rem")},R=(e,a)=>{let{rawValue:n,variants:t,props:r}=a;if((0,d.Z_)(n)){const e=n.startsWith("-"),a=e?n.substr(1):n,o=(0,d.u_)(r,a,t),i=(0,d.Z_)(o)||(0,d.OK)(o)?o:a;return e?"-".concat(i):i}if((0,d.OK)(n)){const e=(0,d.pd)(n),a=Math.abs(n),r=t?t[a]:void 0;if((0,d.Z_)(r))return e?"-".concat(r):r;const o=(0,d.OK)(r)?r:a;return e?-1*o:o}},l=e=>e?"@media (min-width: ".concat(e,")"):null,p=e=>e?"@media (max-width: ".concat(e,")"):null,f=(e,a)=>{const n=e[a];return 0===n?null:g(n)},h=(e,a)=>{const n=e[a];return 0===n?null:g(n-.02)};var m=Object.defineProperty,y=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,w=(e,a,n)=>a in e?m(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,S=(e,a)=>{for(var n in a||(a={}))b.call(a,n)&&w(e,n,a[n]);if(y)for(var n of y(a))v.call(a,n)&&w(e,n,a[n]);return e};const E=e=>e.theme&&e.theme.screens?e.theme.screens:{},x=(e,a)=>{if(a.has("_variants"))return a.get("_variants");const n=(e=>{const a=E(e),n=(e=>e.theme&&e.theme.states?e.theme.states:{})(e),d={};for(const r in a)d[r]=l(f(a,r));const t=S(S({},d),n);for(const[r,o]of Object.entries(t))o&&o.startsWith("@")&&(delete t[r],t[r]=o);return t})(e);return a.set("_variants",n),n},_="undefined"!=typeof Map&&"undefined"!=typeof WeakMap?new WeakMap:null,C={has:()=>!1,set:()=>{},get:()=>{}},D=(e,a)=>{if(!e)return C;const n=(e=>{if(null===_)return null;if(_.has(e))return _.get(e)||null;const a={};return _.set(e,a),a})(e);return n&&e?(n[a]=n[a]||new Map,n[a]):C};var k=Object.defineProperty,O=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable,P=(e,a,n)=>a in e?k(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n;let I=0;const T=[/\s+/," "],F=[/\s*,\s*/,","],B=(e,a)=>n=>n.split(e[0]).map(a).join(e[1]),L=e=>{let{name:a,transform:n,key:t,compose:r,shorthand:o,multiple:i}=e;const g=I++,s=(e,s)=>c=>{let u=e;if(!(0,d.Z_)(e)&&!(0,d.OK)(e)&&!0!==e)return u;const R="".concat(typeof e,"-").concat(e,"-").concat(s),l=D(c.theme,"__themeGetter".concat(g));if(l.has(R))return l.get(R);const p=e=>{const o=(0,d.is)(s)?s:e;let i=e;const g=(0,d.is)(t)?(0,d.u_)(c,t):null;if((0,d.is)(g)){const a=!0===e?"default":(0,d.Z_)(e)||(0,d.OK)(e)?e:null;if((0,d.is)(a)){const e=(0,d.u_)(c,a,g);i=Array.isArray(e)?e.join(","):e}}let u=e;(0,d.is)(i)||(u=o,i=o);const R=(a&&c.theme&&c.theme.transformers?c.theme.transformers[a]:null)||n;return R&&(i=R(i,{rawValue:u,variants:g,props:c})),r?r(i)(c):i};if((o||i)&&(0,d.Z_)(e)){let a=p;o&&(a=B(T,a)),i&&(a=B(F,a)),u=a(e)}else u=p(e);return l.set(R,u),u};return s.meta={name:a,transform:n},s},M=e=>{let{getStyle:a,props:n,cssGetters:d={},generators:t}=e;const r=a;return r.meta={props:n,cssGetters:d,getStyle:r,generators:t},r.apply=e=>a=>{let{theme:n}=a;return r(((e,a)=>{for(var n in a||(a={}))A.call(a,n)&&P(e,n,a[n]);if(O)for(var n of O(a))j.call(a,n)&&P(e,n,a[n]);return e})({theme:n},e))},r},N=(e,a,n)=>{const t=D(e.theme,"__variants"),r=x(e,t);let o={};for(const i in a){const e=n(a[i]);if(null===e)continue;const t=i in r?r[i]:i;void 0!==t&&(null===t?o=(0,d.TS)(o,e):o[t]=o[t]?(0,d.f0)(o[t],e):e)}return o},G=e=>{const a={};for(let n=0;n{for(const n in a){const d=a[n],t=e[d];t&&(delete e[d],e[d]=t)}return e};function H(){let e=[];for(var a=arguments.length,n=new Array(a),t=0;t{(0,d.ZK)(Boolean(a),'Undefined generator in "compose" method'),a&&(a.meta.generators?e=[...e,...a.meta.generators]:e.push(a))}));const r=G(e),o=function(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const n={};let t;for(const i in e){const a=r[i];if(a){const r=a.meta.getStyle(e,!1);(0,d.TS)(n,r),t=!0}}if(!t||!a)return n;const o=x(e,D(e.theme,"__states"));return z(n,o)},i=[],g={};for(let d=0;d{return(0,d.Yl)(e)?e:(a=e,e=>{if((0,d.Z_)(a))return{[a]:e};const n={};for(const d in a)n[a[d]]=e;return n});var a},q=e=>{let{prop:a,css:n,themeGet:t,key:r,transform:o,cssProps:i}=e;const g=t||(r||o?L({key:r,transform:o}):void 0),s=i||((0,d.Z_)(n)?[n]:Array.isArray(n)?n:(0,d.Z_)(a)?[a]:Array.isArray(a)?a:[]);if(Array.isArray(a)){const e=n?U(n):n;return H(...a.map((a=>q({prop:a,css:e,cssProps:s,themeGet:g}))))}const c=[a],u=[],R=((e,a,n)=>t=>{const r=e=>(0,d.is)(e)?(0,d.j6)(e)?N(t,e,r):(0,d.Gg)(a(n?n(e)(t):e),t):null,o=t[e];if(!(0,d.is)(o))return null;const i=D(t.theme,e);if(i.has(o))return i.get(o);const g=r(t[e]);return i.set(o,g),g})(a,U(n||c),g),l=g?s.reduce(((e,a)=>(e[(e=>e.replace(/[A-Z]/g,"-$&").toLowerCase())(a)]=g,e)),{}):{},p=M({getStyle:R,props:c,cssGetters:l});return u.push(p),H(...u)},W=L({name:"px",transform:(e,a)=>{let{props:n}=a;var d,t,r;const o=null!=(r=null==(t=null==(d=null==n?void 0:n.theme)?void 0:d.settings)?void 0:t.rootFontSize)?r:void 0,i=Number(e);return g(u(Number.isNaN(i)?e:i,{rootFontSize:o}))}}),$=L({name:"duration",key:"durations",transform:e=>{const a=Number(e);return i(Number.isNaN(a)?e:a)}}),K=L({name:"angle",transform:e=>{const a=Number(e);return s(Number.isNaN(a)?e:a)}}),V=L({name:"percent",compose:W,transform:e=>(0,d.OK)(e)&&0!==e&&e>=-1&&e<=1?"".concat(r(100*e),"%"):e}),Z=L({name:"transition",key:"transitions"}),Y=L({name:"transitionProperty",key:"transitionProperties"}),X=L({name:"timingFunction",key:"timingFunctions"}),J=H(q({prop:"transition",themeGet:Z}),q({prop:"transitionProperty",themeGet:Y}),q({prop:"transitionDuration",themeGet:$}),q({prop:"transitionTimingFunction",themeGet:X}),q({prop:"transitionDelay",themeGet:$})),Q=L({name:"animation",key:"animations"}),ee=H(q({prop:"animation",themeGet:Q}),q({prop:"animationDuration",themeGet:$}),q({prop:"animationTimingFunction",themeGet:X})),ae=L({name:"color",key:"colors"}),ne={"gradient-to-t":"linear-gradient(to top, var(--x-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--x-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--x-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--x-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--x-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--x-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--x-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--x-gradient-stops))"},de=H(q({prop:"background",css:e=>({background:ne[e]||e})}),q({prop:["backgroundColor","bg"],css:"backgroundColor",themeGet:ae}),q({prop:"backgroundImage",css:e=>({backgroundImage:ne[e]||e})}),q({prop:"backgroundSize"}),q({prop:"backgroundPosition"}),q({prop:"backgroundRepeat"}),q({prop:"backgroundAttachment"}),q({prop:"backgroundClip",css:["backgroundClip","-webkitBackgroundClip"]}),q({prop:"gradientFrom",themeGet:ae,css:e=>({"--x-gradient-from":e,"--x-gradient-stops":"var(--x-gradient-from), var(--x-gradient-to, transparent)"})}),q({prop:"gradientVia",themeGet:ae,css:e=>({"--x-gradient-stops":"var(--x-gradient-from), ".concat(e,", var(--x-gradient-to, transparent)")})}),q({prop:"gradientTo",themeGet:ae,css:"--x-gradient-to"})),te=L({name:"border",key:"borders",transform:e=>{const a=Number(e);return a>0?"".concat(g(a)," solid"):e}}),re=L({name:"borderWidth",key:"borderWidths",compose:W,shorthand:!0}),oe=L({name:"borderColor",compose:ae,shorthand:!0}),ie=L({name:"borderStyle",key:"borderStyles"}),ge=q({prop:"border",themeGet:te}),se=q({prop:"borderTop",themeGet:te}),ce=q({prop:"borderRight",themeGet:te}),ue=q({prop:"borderBottom",themeGet:te}),Re=q({prop:"borderLeft",themeGet:te}),le=q({prop:"borderColor",themeGet:oe}),pe=q({prop:"borderTopColor",themeGet:ae}),fe=q({prop:"borderRightColor",themeGet:ae}),he=q({prop:"borderBottomColor",themeGet:ae}),me=q({prop:"borderLeftColor",themeGet:ae}),ye=q({prop:"borderWidth",themeGet:re}),be=q({prop:"borderTopWidth",themeGet:re}),ve=q({prop:"borderRightWidth",themeGet:re}),we=q({prop:"borderBottomWidth",themeGet:re}),Se=q({prop:"borderLeftWidth",themeGet:re}),Ee=q({prop:"borderStyle",themeGet:ie,cssProps:["borderStyle","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle"]}),xe=q({prop:"borderTopStyle",themeGet:ie}),_e=q({prop:"borderRightStyle",themeGet:ie}),Ce=q({prop:"borderBottomStyle",themeGet:ie}),De=q({prop:"borderLeftStyle",themeGet:ie}),ke=q({prop:"outline",themeGet:te}),Oe=q({prop:"outlineColor",themeGet:ae}),Ae=q({prop:"outlineWidth",themeGet:re}),je=q({prop:"outlineStyle",themeGet:ie}),Pe=q({prop:"outlineOffset",themeGet:re}),Ie=L({name:"radius",key:"radii",compose:W,shorthand:!0}),Te=q({prop:"borderRadius",themeGet:Ie,cssProps:["borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"]}),Fe="& > :not([hidden]) ~ :not([hidden])",Be=q({prop:"divideY",themeGet:re,css:e=>{const a=!0===e?1:e;return{[Fe]:{"--x-divide-y-reverse":0,borderTopWidth:"calc(".concat(a," * calc(1 - var(--x-divide-y-reverse)))"),borderBottomWidth:"calc(".concat(a," * var(--x-divide-y-reverse))")}}}}),Le=q({prop:"divideX",themeGet:re,css:e=>{const a=!0===e?1:e;return{[Fe]:{"--x-divide-x-reverse":0,borderRightWidth:"calc(".concat(a," * var(--x-divide-x-reverse))"),borderLeftWidth:"calc(".concat(a," * calc(1 - var(--x-divide-x-reverse)))")}}}}),Me=q({prop:"divideXReverse",css:()=>({[Fe]:{"--x-divide-x-reverse":"1"}})}),Ne=q({prop:"divideYReverse",css:()=>({[Fe]:{"--x-divide-y-reverse":"1"}})}),Ge=q({prop:"divideColor",themeGet:ae,css:e=>({[Fe]:{borderColor:e}})}),ze=q({prop:"divideStyle",themeGet:ie,css:e=>({[Fe]:{borderStyle:e}})}),He=L({name:"ringWidth",key:"ringWidths",compose:W}),Ue=H(ge,se,ce,ue,Re,le,pe,fe,he,me,ye,be,ve,we,Se,Ee,xe,_e,Ce,De,Te,ke,Oe,Ae,je,Pe,Le,Be,Me,Ne,Ge,ze,q({prop:"ring",themeGet:He,css:e=>({"--x-ring-shadow":"var(--x-ring-inset, /*!*/ /*!*/) 0 0 0 ".concat(e," var(--x-ring-color)"),boxShadow:"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow, 0 0 #0000)"})}),q({prop:"ringInset",css:()=>({"--x-ring-inset":"inset"})}),q({prop:"ringColor",themeGet:ae,css:e=>({"--x-ring-color":e})})),qe=L({name:"shadow",key:"shadows",multiple:!0}),We=H(q({prop:"opacity"}),q({prop:"boxShadow",themeGet:qe,css:e=>({"--x-shadow":e,boxShadow:"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow)"})}),q({prop:"textShadow",themeGet:qe}));var $e=Object.defineProperty,Ke=Object.getOwnPropertySymbols,Ve=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,Ye=(e,a,n)=>a in e?$e(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,Xe=(e,a)=>{for(var n in a||(a={}))Ve.call(a,n)&&Ye(e,n,a[n]);if(Ke)for(var n of Ke(a))Ze.call(a,n)&&Ye(e,n,a[n]);return e};const Je=q({prop:"row",css:()=>({boxSizing:"border-box",flexGrow:1,flexWrap:"wrap",display:"flex"})}),Qe=(e,a)=>{if(!(0,d.is)(a))return null;if(!0===a)return{flexBasis:0,flexGrow:1,maxWidth:"100%"};if("auto"===a)return{flex:"0 0 auto",maxWidth:"none",width:"auto"};const n=V(a)(e);return{flex:"0 0 ".concat(n),maxWidth:n}},ea=H(Je,M({getStyle:e=>{const a=e.col,n={boxSizing:"border-box",flexBasis:0,flexGrow:1,maxWidth:"100%"};if((0,d.j6)(a)){const d=N(e,a,(a=>Qe(e,a)));return Xe(Xe({},n),d)}return Xe(Xe({},n),Qe(e,a))},props:["col"]}));var aa=Object.defineProperty,na=Object.getOwnPropertySymbols,da=Object.prototype.hasOwnProperty,ta=Object.prototype.propertyIsEnumerable,ra=(e,a,n)=>a in e?aa(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n;const oa=q({prop:"display"}),ia=q({prop:"float"}),ga=q({prop:"boxSizing"}),sa=M({getStyle:e=>{if(!e.container)return null;const a=E(e);let n=N(e,a,(e=>0!==e?{maxWidth:e}:{}));return(0,d.j6)(e.container)&&(n=N(e,e.container,(()=>n))),((e,a)=>{for(var n in a||(a={}))da.call(a,n)&&ra(e,n,a[n]);if(na)for(var n of na(a))ta.call(a,n)&&ra(e,n,a[n]);return e})({width:"100%"},n)},props:["container"]}),ca=q({prop:"overflow"}),ua=q({prop:"overflowX"}),Ra=q({prop:"overflowY"}),la=L({name:"zIndex",key:"zIndices"}),pa=q({prop:"zIndex",themeGet:la}),fa=q({prop:"position"}),ha=L({name:"inset",key:"inset",compose:W,transform:R}),ma=H(ga,oa,ia,sa,ca,ua,Ra,fa,pa,q({prop:"top",themeGet:ha}),q({prop:"right",themeGet:ha}),q({prop:"bottom",themeGet:ha}),q({prop:"left",themeGet:ha}),q({prop:"visibility"}),q({prop:"overscrollBehavior"}),q({prop:"objectFit"})),ya=q({prop:"alignItems"}),ba=q({prop:"alignContent"}),va=q({prop:"justifyContent"}),wa=q({prop:"justifyItems"}),Sa=q({prop:"flexWrap"}),Ea=q({prop:"flexGrow"}),xa=q({prop:"flexShrink"}),_a=H(oa,ya,ba,va,wa,Sa,q({prop:"flexBasis",themeGet:V}),xa,Ea,q({prop:"flexDirection"}),q({prop:"flex"}),q({prop:"justifySelf"}),q({prop:"alignSelf"}),q({prop:"order"})),Ca=L({name:"space",key:"space",compose:W,shorthand:!0,transform:R}),Da=q({prop:["margin","m"],themeGet:Ca,css:"margin"}),ka=q({prop:["marginTop","mt"],themeGet:Ca,css:"marginTop"}),Oa=q({prop:["marginRight","mr"],themeGet:Ca,css:"marginRight"}),Aa=q({prop:["marginBottom","mb"],themeGet:Ca,css:"marginBottom"}),ja=q({prop:["marginLeft","ml"],themeGet:Ca,css:"marginLeft"}),Pa=q({prop:"mx",themeGet:Ca,css:["marginRight","marginLeft"]}),Ia=q({prop:"my",themeGet:Ca,css:["marginTop","marginBottom"]}),Ta=q({prop:["padding","p"],themeGet:Ca,css:"padding"}),Fa=q({prop:["paddingTop","pt"],themeGet:Ca,css:"paddingTop"}),Ba=q({prop:["paddingRight","pr"],themeGet:Ca,css:"paddingRight"}),La=q({prop:["paddingBottom","pb"],themeGet:Ca,css:"paddingBottom"}),Ma=q({prop:["paddingLeft","pl"],themeGet:Ca,css:"paddingLeft"}),Na=q({prop:"px",themeGet:Ca,css:["paddingRight","paddingLeft"]}),Ga=q({prop:"py",themeGet:Ca,css:["paddingTop","paddingBottom"]}),za=q({prop:"spaceY",themeGet:Ca,css:e=>({"& > :not([hidden]) ~ :not([hidden])":{"--x-space-y-reverse":0,marginTop:"calc(".concat(e," * calc(1 - var(--x-space-y-reverse)))"),marginBottom:"calc(".concat(e," * var(--x-space-y-reverse))")}})}),Ha=H(Da,ka,Oa,Aa,ja,Pa,Ia,Ta,Fa,Ba,La,Ma,Na,Ga,q({prop:"spaceX",themeGet:Ca,css:e=>({"& > :not([hidden]) ~ :not([hidden])":{"--x-space-x-reverse":0,marginRight:"calc(".concat(e," * var(--x-space-x-reverse))"),marginLeft:"calc(".concat(e," * calc(1 - var(--x-space-x-reverse)))")}})}),za,q({prop:"spaceXReverse",css:()=>({"& > :not([hidden]) ~ :not([hidden])":{"--x-space-x-reverse":"1"}})}),q({prop:"spaceYReverse",css:()=>({"& > :not([hidden]) ~ :not([hidden])":{"--x-space-y-reverse":"1"}})})),Ua=H(q({prop:"gap",themeGet:Ca}),q({prop:"columnGap",themeGet:Ca}),q({prop:"rowGap",themeGet:Ca}),q({prop:"gridColumn"}),q({prop:"gridRow"}),q({prop:"gridAutoFlow"}),q({prop:"gridAutoColumns"}),q({prop:"gridAutoRows"}),q({prop:"gridTemplateColumns",key:"gridTemplateColumns"}),q({prop:"gridTemplateRows",key:"gridTemplateRows"}),q({prop:"gridTemplateAreas"}),q({prop:"gridArea"})),qa=H(q({prop:"appearance"}),q({prop:"cursor"}),q({prop:"pointerEvents"}),q({prop:"resize"}),q({prop:"userSelect"})),Wa=L({name:"size",key:"sizes",compose:V}),$a=H(q({prop:"w",themeGet:Wa,css:"width"}),q({prop:"h",themeGet:Wa,css:"height"}),q({prop:["maxWidth","maxW"],themeGet:Wa,css:"maxWidth"}),q({prop:["maxHeight","maxH"],themeGet:Wa,css:"maxHeight"}),q({prop:["minWidth","minW"],themeGet:Wa,css:"minWidth"}),q({prop:["minHeight","minH"],themeGet:Wa,css:"minHeight"}),q({prop:"maskSize",themeGet:L({name:"size",key:"sizes",compose:V,multiple:!0,shorthand:!0})})),Ka=H(q({prop:"fill",themeGet:ae}),q({prop:"stroke",themeGet:ae})),Va=H(q({prop:"borderCollapse"}),q({prop:"tableLayout"})),Za=L({name:"transform",key:"transforms"}),Ya=H(q({prop:"transform",themeGet:Za,css:e=>!0===e?{"--x-translate-x":0,"--x-translate-y":0,"--x-rotate":0,"--x-skew-x":0,"--x-skew-y":0,"--x-scale-x":"1","--x-scale-y":"1",transform:"translate3d(var(--x-translate-x), var(--x-translate-y), 0) rotate(var(--x-rotate)) skewX(var(--x-skew-x)) skewY(var(--x-skew-y)) scaleX(var(--x-scale-x)) scaleY(var(--x-scale-y))"}:{transform:e}}),q({prop:"transformOrigin"}),q({prop:"translateX",themeGet:Ca,css:"--x-translate-x"}),q({prop:"translateY",themeGet:Ca,css:"--x-translate-y"}),q({prop:"rotate",themeGet:K,css:"--x-rotate"}),q({prop:"skewX",themeGet:K,css:"--x-skew-x"}),q({prop:"skewY",themeGet:K,css:"--x-skew-y"}),q({prop:"scale",transform:e=>String(e),css:["--x-scale-x","--x-scale-y"]}),q({prop:"scaleX",transform:e=>String(e),css:"--x-scale-x"}),q({prop:"scaleY",transform:e=>String(e),css:"--x-scale-y"}));var Xa=Object.defineProperty,Ja=Object.defineProperties,Qa=Object.getOwnPropertyDescriptors,en=Object.getOwnPropertySymbols,an=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,dn=(e,a,n)=>a in e?Xa(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n;const tn=L({name:"font",key:"fonts"}),rn=L({name:"lineHeight",key:"lineHeights",transform:(e,a)=>{let{props:n}=a;var d,t,r;const o=null!=(r=null==(t=null==(d=null==n?void 0:n.theme)?void 0:d.settings)?void 0:t.rootFontSize)?r:void 0;return u(e,{rootFontSize:o})}}),on=L({name:"fontWeight",key:"fontWeights"}),gn=L({name:"letterSpacing",key:"letterSpacings",compose:W}),sn=L({name:"fontSize",key:"fontSizes",compose:W}),cn=q({prop:"fontFamily",themeGet:tn}),un=q({prop:"fontSize",themeGet:sn}),Rn=q({prop:"lineHeight",themeGet:rn}),ln=q({prop:"fontWeight",themeGet:on}),pn=q({prop:"fontStyle"}),fn=q({prop:"letterSpacing",themeGet:gn}),hn=q({prop:"color",themeGet:ae}),mn=q({prop:"textTransform"}),yn=q({prop:"textDecoration"}),bn=H(Ha,cn,un,pn,Rn,ln,q({prop:"textAlign"}),fn,hn,mn,yn,q({prop:"verticalAlign"}),q({prop:"whiteSpace"}),q({prop:"textOverflow"}),q({prop:"listStyleType"}),q({prop:"listStylePosition"})),vn=q({prop:"text",key:"texts",css:e=>a=>{let{theme:n}=a;return bn((d=((e,a)=>{for(var n in a||(a={}))an.call(a,n)&&dn(e,n,a[n]);if(en)for(var n of en(a))nn.call(a,n)&&dn(e,n,a[n]);return e})({},e),Ja(d,Qa({theme:n}))));var d}}),wn=H(bn,vn),Sn=H(ee,de,Ue,We,ea,_a,Ua,qa,ma,$a,Ha,Ka,Va,Ya,J,wn),En=(e,a)=>n=>{const t=(0,d.u_)(n,e);return(0,d.is)(t)?t:(0,d.is)(a)?a:e};[K,Q,te,oe,ie,re,ae,$,tn,sn,on,ha,gn,rn,V,W,Ie,He,qe,Wa,Ca,X,Za,Z,Y,la].forEach((e=>{En[e.meta.name]=e}));const xn=(e,a)=>n=>{const d=E(n),t=f(d,e);return null===t?a:["".concat(l(t)," {"),a,"}"]},_n=(e,a)=>n=>{const d=E(n),t=h(d,e);return null===t?null:["".concat(p(t)," {"),a,"}"]};var Cn=Object.defineProperty,Dn=Object.getOwnPropertySymbols,kn=Object.prototype.hasOwnProperty,On=Object.prototype.propertyIsEnumerable,An=(e,a,n)=>a in e?Cn(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,jn=(e,a)=>{for(var n in a||(a={}))kn.call(a,n)&&An(e,n,a[n]);if(Dn)for(var n of Dn(a))On.call(a,n)&&An(e,n,a[n]);return e};const Pn=[0,5,10,20,25,30,40,50,60,70,75,80,90,95,100],In=function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Pn;const n=(e,a)=>"".concat(e).concat(Math.round(a/100*255).toString(16)),t=Object.keys(e).reduce(((t,r)=>(a.forEach((o=>{const i=e[r],g="".concat(r,"-a").concat(o);t[g]=(0,d.Z_)(i)?n(i,o):In(i,a)})),t)),{});return jn(jn({},e),t)},Tn=[50,100,200,300,400,500,600,700,800,900],Fn=function(e,a){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Tn,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Pn;return n.reduce(((n,t)=>(n["".concat(e,"-").concat(t)]=En.color("".concat(a,"-").concat(t)),d.forEach((d=>{n["".concat(e,"-").concat(t,"-a").concat(d)]=En.color("".concat(a,"-").concat(t,"-a").concat(d))})),n)),{})};var Bn=Object.defineProperty,Ln=Object.defineProperties,Mn=Object.getOwnPropertyDescriptors,Nn=Object.getOwnPropertySymbols,Gn=Object.prototype.hasOwnProperty,zn=Object.prototype.propertyIsEnumerable,Hn=(e,a,n)=>a in e?Bn(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n;const Un={.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},qn={"ease-in":"cubic-bezier(0.4, 0, 1, 1)","ease-out":"cubic-bezier(0, 0, 0.2, 1)","ease-in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},Wn={default:["background-color","border-color","color","fill","stroke","opacity","box-shadow","transform"],colors:["background-color","border-color","color","fill","stroke"],opacity:["opacity"],shadow:["box-shadow"],transform:["transform"]},$n=Object.keys(Wn).reduce(((e,a)=>(e[a]=Wn[a].map((e=>"".concat(e," ").concat(qn["ease-in-out"]," 150ms"))).join(","),e)),{}),Kn={xs:"0.75rem",sm:"0.875rem",default:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem","7xl":"4.5rem","8xl":"6rem","9xl":"8rem"},Vn=Object.keys(Kn).reduce(((e,a)=>(e[a]={fontSize:a,lineHeight:a},e)),{}),Zn={colors:In({black:"#000000",white:"#ffffff","blue-gray-50":"#f8fafc","blue-gray-100":"#f1f5f9","blue-gray-200":"#e2e8f0","blue-gray-300":"#cbd5e1","blue-gray-400":"#94a3b8","blue-gray-500":"#64748b","blue-gray-600":"#475569","blue-gray-700":"#334155","blue-gray-800":"#1e293b","blue-gray-900":"#0f172a","cool-gray-50":"#f9fafb","cool-gray-100":"#f3f4f6","cool-gray-200":"#e5e7eb","cool-gray-300":"#d1d5db","cool-gray-400":"#9ca3af","cool-gray-500":"#6b7280","cool-gray-600":"#4b5563","cool-gray-700":"#374151","cool-gray-800":"#1f2937","cool-gray-900":"#111827","gray-50":"#fafafa","gray-100":"#f4f4f5","gray-200":"#e4e4e7","gray-300":"#d4d4d8","gray-400":"#a1a1aa","gray-500":"#71717a","gray-600":"#52525b","gray-700":"#3f3f46","gray-800":"#27272a","gray-900":"#18181b","true-gray-50":"#fafafa","true-gray-100":"#f5f5f5","true-gray-200":"#e5e5e5","true-gray-300":"#d4d4d4","true-gray-400":"#a3a3a3","true-gray-500":"#737373","true-gray-600":"#525252","true-gray-700":"#404040","true-gray-800":"#262626","true-gray-900":"#171717","warm-gray-50":"#fafaf9","warm-gray-100":"#f5f5f4","warm-gray-200":"#e7e5e4","warm-gray-300":"#d6d3d1","warm-gray-400":"#a8a29e","warm-gray-500":"#78716c","warm-gray-600":"#57534e","warm-gray-700":"#44403c","warm-gray-800":"#292524","warm-gray-900":"#1c1917","red-50":"#fef2f2","red-100":"#fee2e2","red-200":"#fecaca","red-300":"#fca5a5","red-400":"#f87171","red-500":"#ef4444","red-600":"#dc2626","red-700":"#b91c1c","red-800":"#991b1b","red-900":"#7f1d1d","orange-50":"#fff7ed","orange-100":"#ffedd5","orange-200":"#fed7aa","orange-300":"#fdba74","orange-400":"#fb923c","orange-500":"#f97316","orange-600":"#ea580c","orange-700":"#c2410c","orange-800":"#9a3412","orange-900":"#7c2d12","amber-50":"#fffbeb","amber-100":"#fef3c7","amber-200":"#fde68a","amber-300":"#fcd34d","amber-400":"#fbbf24","amber-500":"#f59e0b","amber-600":"#d97706","amber-700":"#b45309","amber-800":"#92400e","amber-900":"#78350f","yellow-50":"#fefce8","yellow-100":"#fef9c3","yellow-200":"#fef08a","yellow-300":"#fde047","yellow-400":"#facc15","yellow-500":"#eab308","yellow-600":"#ca8a04","yellow-700":"#a16207","yellow-800":"#854d0e","yellow-900":"#713f12","lime-50":"#f7fee7","lime-100":"#ecfccb","lime-200":"#d9f99d","lime-300":"#bef264","lime-400":"#a3e635","lime-500":"#84cc16","lime-600":"#65a30d","lime-700":"#4d7c0f","lime-800":"#3f6212","lime-900":"#365314","green-50":"#f0fdf4","green-100":"#dcfce7","green-200":"#bbf7d0","green-300":"#86efac","green-400":"#4ade80","green-500":"#22c55e","green-600":"#16a34a","green-700":"#15803d","green-800":"#166534","green-900":"#14532d","emerald-50":"#ecfdf5","emerald-100":"#d1fae5","emerald-200":"#a7f3d0","emerald-300":"#6ee7b7","emerald-400":"#34d399","emerald-500":"#10b981","emerald-600":"#059669","emerald-700":"#047857","emerald-800":"#065f46","emerald-900":"#064e3b","teal-50":"#f0fdfa","teal-100":"#ccfbf1","teal-200":"#99f6e4","teal-300":"#5eead4","teal-400":"#2dd4bf","teal-500":"#14b8a6","teal-600":"#0d9488","teal-700":"#0f766e","teal-800":"#115e59","teal-900":"#134e4a","cyan-50":"#ecfeff","cyan-100":"#cffafe","cyan-200":"#a5f3fc","cyan-300":"#67e8f9","cyan-400":"#22d3ee","cyan-500":"#06b6d4","cyan-600":"#0891b2","cyan-700":"#0e7490","cyan-800":"#155e75","cyan-900":"#164e63","light-blue-50":"#f0f9ff","light-blue-100":"#e0f2fe","light-blue-200":"#bae6fd","light-blue-300":"#7dd3fc","light-blue-400":"#38bdf8","light-blue-500":"#0ea5e9","light-blue-600":"#0284c7","light-blue-700":"#0369a1","light-blue-800":"#075985","light-blue-900":"#0c4a6e","blue-50":"#eff6ff","blue-100":"#dbeafe","blue-200":"#bfdbfe","blue-300":"#93c5fd","blue-400":"#60a5fa","blue-500":"#3b82f6","blue-600":"#2563eb","blue-700":"#1d4ed8","blue-800":"#1e40af","blue-900":"#1e3a8a","indigo-50":"#eef2ff","indigo-100":"#e0e7ff","indigo-200":"#c7d2fe","indigo-300":"#a5b4fc","indigo-400":"#818cf8","indigo-500":"#6366f1","indigo-600":"#4f46e5","indigo-700":"#4338ca","indigo-800":"#3730a3","indigo-900":"#312e81","violet-50":"#f5f3ff","violet-100":"#ede9fe","violet-200":"#ddd6fe","violet-300":"#c4b5fd","violet-400":"#a78bfa","violet-500":"#8b5cf6","violet-600":"#7c3aed","violet-700":"#6d28d9","violet-800":"#5b21b6","violet-900":"#4c1d95","purple-50":"#faf5ff","purple-100":"#f3e8ff","purple-200":"#e9d5ff","purple-300":"#d8b4fe","purple-400":"#c084fc","purple-500":"#a855f7","purple-600":"#9333ea","purple-700":"#7e22ce","purple-800":"#6b21a8","purple-900":"#581c87","fuchsia-50":"#fdf4ff","fuchsia-100":"#fae8ff","fuchsia-200":"#f5d0fe","fuchsia-300":"#f0abfc","fuchsia-400":"#e879f9","fuchsia-500":"#d946ef","fuchsia-600":"#c026d3","fuchsia-700":"#a21caf","fuchsia-800":"#86198f","fuchsia-900":"#701a75","pink-50":"#fdf2f8","pink-100":"#fce7f3","pink-200":"#fbcfe8","pink-300":"#f9a8d4","pink-400":"#f472b6","pink-500":"#ec4899","pink-600":"#db2777","pink-700":"#be185d","pink-800":"#9d174d","pink-900":"#831843","rose-50":"#fff1f2","rose-100":"#ffe4e6","rose-200":"#fecdd3","rose-300":"#fda4af","rose-400":"#fb7185","rose-500":"#f43f5e","rose-600":"#e11d48","rose-700":"#be123c","rose-800":"#9f1239","rose-900":"#881337"}),space:Un,screens:{_:0,xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536},durations:{instant:"100ms","fast-in":"250ms","fast-out":"200ms","slow-in":"300ms","slow-out":"250ms"},sizes:(Yn=((e,a)=>{for(var n in a||(a={}))Gn.call(a,n)&&Hn(e,n,a[n]);if(Nn)for(var n of Nn(a))zn.call(a,n)&&Hn(e,n,a[n]);return e})({},Un),Xn={.5:void 0,1:void 0,"0.5s":Un[.5],"1s":Un[1],full:"100%",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},Ln(Yn,Mn(Xn))),radii:{none:"0",sm:"0.125rem",default:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},shadows:{xs:"0 0 0 1px rgba(0, 0, 0, 0.05)",sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",default:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",md:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",xl:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)","2xl":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",inner:"inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)",outline:"0 0 0 3px rgba(66, 153, 225, 0.5)"},fontSizes:Kn,fontWeights:{hairline:"100",thin:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},fonts:{mono:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',serif:'ui-serif, Georgia, Cambria, "Times New Roman", Times, serif',sans:'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"'},letterSpacings:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeights:{none:1,tight:1.25,snug:1.375,normal:1.5,relaxed:1.625,loose:2,3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",xs:"1rem",sm:"1.25rem",default:"1.5rem",lg:"1.75rem",xl:"1.75rem","2xl":"2rem","3xl":"2.25rem","4xl":"2.5rem","5xl":1,"6xl":1,"7xl":1,"8xl":1,"9xl":1},gridTemplateColumns:{1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))"},borderWidths:{default:1},ringWidths:{default:3},borders:{default:"1px solid transparent"},texts:Vn,transitions:$n,transitionProperties:Wn,timingFunctions:qn,animations:{spin:"x-spin 1s linear infinite",ping:"x-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"x-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"x-bounce 1s infinite"},states:{_:null,motionSafe:"@media (prefers-reduced-motion: no-preference)",motionReduce:"@media (prefers-reduced-motion: reduce)",first:"&:first-child",last:"&:last-child",odd:"&:odd",even:"&:even",visited:"&:visited",checked:"&:checked",focusWithin:"&:focus-within",hover:"&:hover",focus:"&:focus",focusVisible:"&:focus-visible",active:"&:active",disabled:"&:disabled, &[aria-disabled=true]",placeholder:"&::placeholder"}};var Yn,Xn;const Jn=e=>"\n/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n*,::after,::before{box-sizing:border-box}:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}\n\n/* Role button pointer */\n[role=button], button {\n cursor: pointer;\n}\n\n/* Remove default margins */\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\n/* Remove headings styles */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/* Unstyle lists */\nol,\nul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/* Image are block-level */\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n vertical-align: middle;\n}\n\n/* Reset border styles */\n*,\n::before,\n::after {\n border-width: 0;\n border-style: solid;\n border-color: ".concat(En.color("default-border-color","currentColor")({theme:e}),";\n}\n\n* {\n --x-ring-color: ").concat(En.color("default-ring-color","rgba(59,130,246,0.5)")({theme:e}),";\n}\n\n/* Default outline on buttons */\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\n// Animations\n@keyframes x-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes x-ping {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@keyframes x-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: .5;\n }\n}\n\n@keyframes x-bounce {\n 0%, 100% {\n transform: translateY(-25%);\n animationTimingFunction: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: translateY(0);\n animationTimingFunction: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n")},83601:function(e,a,n){"use strict";n.d(a,{Gg:function(){return p},J:function(){return h},OK:function(){return r},TS:function(){return R},Yl:function(){return g},ZK:function(){return l},Z_:function(){return o},f0:function(){return u},is:function(){return t},j6:function(){return i},pd:function(){return s},u_:function(){return f}});const d=["__proto__","constructor","prototype"],t=e=>null!=e,r=e=>"number"==typeof e&&!Number.isNaN(e),o=e=>"string"==typeof e&&""!==e,i=e=>"object"==typeof e&&null!==e,g=e=>"function"==typeof e,s=e=>r(e)&&e<0,c=(e,a)=>{const n=String(a).split("."),d=n.length;let r=e;for(let o=0;o{if(!t(a))return e;for(const n in a)-1===d.indexOf(n)&&(e[n]=a[n]);return e},R=(e,a)=>{if(!t(a))return e;for(const n in a)-1===d.indexOf(n)&&(i(e[n])?e[n]=R(u({},e[n]),a[n]):e[n]=a[n]);return e},l=(e,a)=>{false};function p(e,a){return"function"==typeof e?p(e(a),a):e}const f=function(e,a){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.theme;return p(c(n,a),e)};function h(e){return e.reduce(((e,a)=>{const n=e.length-1,d=e[n];return"string"==typeof d&&"string"==typeof a?e[n]=d+a:e.push(a),e}),[])}},14920:function(e,a,n){"use strict";n.d(a,{Av:function(){return s},Jj:function(){return o},Me:function(){return r},Nq:function(){return d},eS:function(){return f},iK:function(){return c},oq:function(){return p},pn:function(){return l},r3:function(){return g},vY:function(){return i},wB:function(){return R}});const d="undefined"!=typeof window&&!(null==(t=window.document)||!t.createElement);var t;function r(e){return e?e.ownerDocument||e:document}function o(e){return r(e).defaultView||window}function i(e,a){void 0===a&&(a=!1);const{activeElement:n}=r(e);if(null==n||!n.nodeName)return null;if(s(n)&&n.contentDocument)return i(n.contentDocument.body,a);if(a){const e=n.getAttribute("aria-activedescendant");if(e){const a=r(n).getElementById(e);if(a)return a}}return n}function g(e,a){return e===a||e.contains(a)}function s(e){return"IFRAME"===e.tagName}function c(e){const a=e.tagName.toLowerCase();return"button"===a||!("input"!==a||!e.type)&&-1!==u.indexOf(e.type)}const u=["button","color","file","image","reset","submit"];function R(e,a){return"matches"in e?e.matches(a):"msMatchesSelector"in e?e.msMatchesSelector(a):e.webkitMatchesSelector(a)}function l(e){const a=e;return a.offsetWidth>0||a.offsetHeight>0||e.getClientRects().length>0}function p(e,a){if("closest"in e)return e.closest(a);do{if(R(e,a))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}function f(e){try{const a=e instanceof HTMLInputElement&&null!==e.selectionStart,n="TEXTAREA"===e.tagName;return a||n||!1}catch(a){return!1}}},99530:function(e,a,n){"use strict";n.d(a,{Ke:function(){return t},N:function(){return i},Ud:function(){return r},iN:function(){return s},lO:function(){return o},qx:function(){return g}});var d=n(14920);function t(e){return!(0,d.r3)(e.currentTarget,e.target)}function r(e){return e.target===e.currentTarget}function o(e,a){const n=new MouseEvent("click",a);return e.dispatchEvent(n)}function i(e,a){const n=a||e.currentTarget,t=e.relatedTarget;return!t||!(0,d.r3)(n,t)}function g(e,a,n){const d=requestAnimationFrame((()=>{e.removeEventListener(a,t,!0),n()})),t=()=>{cancelAnimationFrame(d),n()};return e.addEventListener(a,t,{once:!0,capture:!0}),d}function s(e,a,n,d){void 0===d&&(d=window);try{d.document.addEventListener(e,a,n)}catch(o){}const t=[];for(let i=0;i<(null==(r=d.frames)?void 0:r.length);i+=1){var r;const o=d.frames[i];o&&t.push(s(e,a,n,o))}return()=>{try{d.document.removeEventListener(e,a,n)}catch(o){}t.forEach((e=>e()))}}},73866:function(e,a,n){"use strict";n.d(a,{EB:function(){return r},H1:function(){return R},MN:function(){return f},Qw:function(){return l},SI:function(){return g},YC:function(){return s},e8:function(){return u},k0:function(){return c},ss:function(){return h}});var d=n(14920);const t="input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])";function r(e){return(0,d.wB)(e,t)&&(0,d.pn)(e)}function o(e){return r(e)&&!function(e){return parseInt(e.getAttribute("tabindex")||"0",10)<0}(e)}function i(e,a){const n=Array.from(e.querySelectorAll(t));a&&n.unshift(e);const o=n.filter(r);return o.forEach(((e,a)=>{if((0,d.Av)(e)&&e.contentDocument){const n=e.contentDocument.body;o.splice(a,1,...i(n))}})),o}function g(e,a,n){const r=Array.from(e.querySelectorAll(t)),i=r.filter(o);return a&&o(e)&&i.unshift(e),i.forEach(((e,a)=>{if((0,d.Av)(e)&&e.contentDocument){const d=g(e.contentDocument.body,!1,n);i.splice(a,1,...d)}})),!i.length&&n?r:i}function s(e,a,n){const[d]=g(e,a,n);return d||null}function c(e,a){return function(e,a,n,t){const r=(0,d.vY)(e),g=i(e,a),s=g.indexOf(r),c=g.slice(s+1);return c.find(o)||(n?g.find(o):null)||(t?c[0]:null)||null}(document.body,!1,e,a)}function u(e,a){return function(e,a,n,t){const r=(0,d.vY)(e),g=i(e,a).reverse(),s=g.indexOf(r),c=g.slice(s+1);return c.find(o)||(n?g.find(o):null)||(t?c[0]:null)||null}(document.body,!1,e,a)}function R(e){const a=(0,d.vY)(e);if(!a)return!1;if(a===e)return!0;const n=a.getAttribute("aria-activedescendant");return!!n&&n===e.id}function l(e){!function(e){const a=(0,d.vY)(e);if(!a)return!1;if((0,d.r3)(e,a))return!0;const n=a.getAttribute("aria-activedescendant");return!!n&&"id"in e&&(n===e.id||!!e.querySelector("#"+CSS.escape(n)))}(e)&&r(e)&&e.focus()}function p(e){var a;const n=null!=(a=e.getAttribute("tabindex"))?a:"";e.setAttribute("data-tabindex",n),e.setAttribute("tabindex","-1")}function f(e,a){g(e,a).forEach(p)}function h(e){const a=e.querySelectorAll("[data-tabindex]"),n=e=>{const a=e.getAttribute("data-tabindex");e.removeAttribute("data-tabindex"),a?e.setAttribute("tabindex",a):e.removeAttribute("tabindex")};e.hasAttribute("data-tabindex")&&n(e),a.forEach(n)}},55351:function(e,a,n){"use strict";var d;n.d(a,{Gw:function(){return s},Hw:function(){return E},Me:function(){return p},NW:function(){return v},O:function(){return f},OJ:function(){return S},cP:function(){return c},cR:function(){return l},yl:function(){return w},zP:function(){return u},zX:function(){return R},zk:function(){return m}});var t=n(27378),r=n(14920),o=n(95151);const i=(d||(d=n.t(t,2))).useId,g=((d||(d=n.t(t,2))).useDeferredValue,(d||(d=n.t(t,2))).useInsertionEffect),s=r.Nq?t.useLayoutEffect:t.useEffect;function c(e){const a=(0,t.useRef)(e);return s((()=>{a.current=e})),a}function u(e){const[a,n]=(0,t.useState)(e);return e!==a&&n(e),a}function R(e){const a=(0,t.useRef)((()=>{throw new Error("Cannot call an event handler while rendering.")}));return g?g((()=>{a.current=e})):a.current=e,(0,t.useCallback)((function(){for(var e=arguments.length,n=new Array(e),d=0;d{if(a.some(Boolean))return e=>{a.forEach((a=>{(0,o.k$)(a,e)}))}}),a)}function p(e){if(i){const a=i();return e||a}const[a,n]=(0,t.useState)(e);return s((()=>{if(e||a)return;const d=Math.random().toString(36).substr(2,6);n("id-"+d)}),[e,a]),e||a}function f(e,a){const[n,d]=(0,t.useState)((()=>h(a)));return s((()=>{var n;d((null==e||null==(n=e.current)?void 0:n.tagName.toLowerCase())||h(a))}),[e,a]),n}function h(e){if("string"==typeof e)return e}function m(e,a,n){const[d,r]=(0,t.useState)(e),i=void 0!==a?a:d,g=c(a),s=c(n),u=c(i),R=(0,t.useCallback)((e=>{const a=s.current;if(a)if(b(a))a(e);else{const n=(0,o.Ei)(e,u.current);u.current=n,a(n)}void 0===g.current&&r(e)}),[]);var l;return b(l=R)||Object.defineProperty(l,y,{value:!0}),[i,R]}const y=Symbol("setNextState");function b(e){return!0===e[y]}function v(){return(0,t.useReducer)((()=>[]),[])}function w(e){return R("function"==typeof e?e:()=>e)}function S(e,a,n){void 0===n&&(n=[]);const d=(0,t.useCallback)((n=>(e.wrapElement&&(n=e.wrapElement(n)),a(n))),[...n,e.wrapElement]);return{...e,wrapElement:d}}function E(e,a){void 0===e&&(e=!1);const[n,d]=(0,t.useState)(null);return{portalRef:l(d,a),portalNode:n,domReady:!e||n}}},95151:function(e,a,n){"use strict";function d(){}function t(e,a){if(function(e){return"function"==typeof e}(e)){return e(function(e){return"function"==typeof e}(a)?a():a)}return e}function r(e,a){"function"==typeof e?e(a):e&&(e.current=a)}function o(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function i(){for(var e=arguments.length,a=new Array(e),n=0;ne({ref:n,...a});return(0,d.forwardRef)(a)}function i(e,a){const{as:n,wrapElement:d,...t}=a;let o;if(n&&"string"!=typeof n)o=(0,r.jsx)(n,{...t});else if("function"==typeof a.children){const{children:e,...n}=t;o=a.children(n)}else o=n?(0,r.jsx)(n,{...t}):(0,r.jsx)(e,{...t});return d?d(o):o}function g(e){return function(a){void 0===a&&(a={});const n=e(a),d={};for(const e in n)(0,t.nr)(n,e)&&void 0!==n[e]&&(d[e]=n[e]);return d}}},87573:function(e,a,n){"use strict";n.d(a,{z:function(){return p},U:function(){return l}});var d=n(27378),t=n(14920),r=n(55351),o=n(73223),i=n(99530),g=n(95151),s=n(20678),c=n(60812);function u(e){if(!e.isTrusted)return!1;const a=e.currentTarget;return(0,t.iK)(a)||"SUMMARY"===a.tagName||"INPUT"===a.tagName||"TEXTAREA"===a.tagName||"A"===a.tagName||"SELECT"===a.tagName}const R=(0,o.Bi)((e=>{let{clickOnEnter:a=!0,clickOnSpace:n=!0,...o}=e;const R=(0,d.useRef)(null),l=(0,r.O)(R,o.as),[p,f]=(0,d.useState)((()=>!!l&&(0,t.iK)({tagName:l,type:o.type})));(0,d.useEffect)((()=>{R.current&&f((0,t.iK)(R.current))}),[]);const[h,m]=(0,d.useState)(!1),y=(0,d.useRef)(!1),b="data-command"in o,v=o.onKeyDown,w=(0,r.zX)((e=>{null==v||v(e);const d=e.currentTarget;if(e.defaultPrevented)return;if(b)return;if(o.disabled)return;if(!(0,i.Ud)(e))return;if((0,t.eS)(d))return;if(d.isContentEditable)return;const r=a&&"Enter"===e.key,c=n&&" "===e.key,R="Enter"===e.key&&!a,l=" "===e.key&&!n;if(R||l)e.preventDefault();else if(r||c){const a=u(e);if(r){if(!a){e.preventDefault();const{view:a,...n}=e,t=()=>(0,i.lO)(d,n);(0,s.vU)()?(0,i.qx)(d,"keyup",t):(0,g.YE)(t)}}else c&&(y.current=!0,a||(e.preventDefault(),m(!0)))}})),S=o.onKeyUp,E=(0,r.zX)((e=>{if(null==S||S(e),e.defaultPrevented)return;if(b)return;if(o.disabled)return;if(e.metaKey)return;const a=n&&" "===e.key;if(y.current&&a&&(y.current=!1,!u(e))){m(!1);const a=e.currentTarget,{view:n,...d}=e;(0,g.YE)((()=>(0,i.lO)(a,d)))}}));return o={"data-command":"","data-active":h?"":void 0,type:p?"button":void 0,...o,ref:(0,r.cR)(R,o.ref),onKeyDown:w,onKeyUp:E},o=(0,c.k)(o),o}));(0,o.LM)((e=>(e=R(e),(0,o.az)("button",e))));const l=(0,o.Bi)((e=>{const a=(0,d.useRef)(null),n=(0,r.O)(a,e.as||"button"),[o,i]=(0,d.useState)((()=>!!n&&(0,t.iK)({tagName:n,type:e.type})));return(0,d.useEffect)((()=>{a.current&&i((0,t.iK)(a.current))}),[]),e={role:o||"a"===n?void 0:"button",...e,ref:(0,r.cR)(a,e.ref)},e=R(e)})),p=(0,o.LM)((e=>{const a=l(e);return(0,o.az)("button",a)}))},60812:function(e,a,n){"use strict";n.d(a,{k:function(){return b}});var d=n(27378),t=n(14920),r=n(99530),o=n(73866),i=n(55351),g=n(95151),s=n(20678),c=n(73223);const u=(0,s.G6)(),R=["text","search","url","tel","email","password","number","date","month","week","time","datetime","datetime-local"];function l(e){return!("input"!==e.tagName.toLowerCase()||!e.type)&&("radio"===e.type||"checkbox"===e.type)}function p(e,a,n,d,t){return e?a?n&&!d?-1:void 0:n?t:t||0:t}function f(e,a){return(0,i.zX)((n=>{null==e||e(n),n.defaultPrevented||a&&(n.stopPropagation(),n.preventDefault())}))}let h=!0;function m(e){const a=e.target;a&&"hasAttribute"in a&&(a.hasAttribute("data-focus-visible")||(h=!1))}function y(e){e.metaKey||e.ctrlKey||(h=!0)}const b=(0,c.Bi)((e=>{let{focusable:a=!0,accessibleWhenDisabled:n,autoFocus:s,onFocusVisible:c,...b}=e;const v=(0,d.useRef)(null);(0,d.useEffect)((()=>{a&&((0,r.iN)("mousedown",m,!0),(0,r.iN)("keydown",y,!0))}),[a]),u&&(0,d.useEffect)((()=>{if(!a)return;const e=v.current;if(!e)return;if(!l(e))return;const n=function(e){return"labels"in e?e.labels:null}(e);if(!n)return;const d=()=>(0,g.YE)((()=>e.focus()));return n.forEach((e=>e.addEventListener("mouseup",d))),()=>{n.forEach((e=>e.removeEventListener("mouseup",d)))}}),[a]);const w=a&&b.disabled,S=!!w&&!n,[E,x]=(0,d.useState)(!1);(0,d.useEffect)((()=>{a&&S&&E&&x(!1)}),[a,S,E]),(0,d.useEffect)((()=>{if(!a)return;if(!E)return;const e=v.current;if(!e)return;if("undefined"==typeof IntersectionObserver)return;const n=new IntersectionObserver((()=>{(0,o.EB)(e)||x(!1)}));return n.observe(e),()=>n.disconnect()}),[a,E]);const _=f(b.onKeyPressCapture,w),C=f(b.onMouseDownCapture,w),D=f(b.onClickCapture,w),k=b.onMouseDown,O=(0,i.zX)((e=>{if(null==k||k(e),e.defaultPrevented)return;if(!a)return;const n=e.currentTarget;if(!u)return;if((0,r.Ke)(e))return;if(!(0,t.iK)(n)&&!l(n))return;let d=!1;const i=()=>{d=!0};n.addEventListener("focusin",i,{capture:!0,once:!0}),(0,r.qx)(n,"mouseup",(()=>{n.removeEventListener("focusin",i,!0),d||(0,o.Qw)(n)}))})),A=(e,n)=>{if(n&&(e.currentTarget=n),null==c||c(e),e.defaultPrevented)return;if(!a)return;const d=e.currentTarget;d&&(0,o.H1)(d)&&x(!0)},j=b.onKeyDownCapture,P=(0,i.zX)((e=>{if(null==j||j(e),e.defaultPrevented)return;if(!a)return;if(E)return;if(e.metaKey)return;if(e.altKey)return;if(e.ctrlKey)return;if(!(0,r.Ud)(e))return;const n=e.currentTarget;(0,g.YE)((()=>A(e,n)))})),I=b.onFocusCapture,T=(0,i.zX)((e=>{if(null==I||I(e),e.defaultPrevented)return;if(!a)return;if(!(0,r.Ud)(e))return void x(!1);const n=e.currentTarget,d=()=>A(e,n);h||function(e){const{tagName:a,readOnly:n,type:d}=e;return"TEXTAREA"===a&&!n||"SELECT"===a&&!n||("INPUT"!==a||n?!!e.isContentEditable:R.includes(d))}(e.target)?(0,g.YE)(d):!function(e){return"combobox"===e.getAttribute("role")}(e.target)?x(!1):(0,r.qx)(e.target,"focusout",d)})),F=b.onBlur,B=(0,i.zX)((e=>{null==F||F(e),a&&(0,r.N)(e)&&x(!1)}));(0,i.Gw)((()=>{var e;a&&(s&&(null==(e=v.current)||e.focus()))}),[a,s]);const L=(0,i.O)(v,b.as),M=a&&function(e){return!e||"button"===e||"input"===e||"select"===e||"textarea"===e||"a"===e}(L),N=a&&function(e){return!e||"button"===e||"input"===e||"select"===e||"textarea"===e}(L),G=S?{pointerEvents:"none",...b.style}:b.style;return b={"data-focus-visible":a&&E?"":void 0,"aria-disabled":!!w||void 0,...b,ref:(0,i.cR)(v,b.ref),style:G,tabIndex:p(a,S,M,N,b.tabIndex),disabled:!(!N||!S)||void 0,contentEditable:w?void 0:b.contentEditable,onKeyPressCapture:_,onClickCapture:D,onMouseDownCapture:C,onMouseDown:O,onKeyDownCapture:P,onFocusCapture:T,onBlur:B},b}));(0,c.LM)((e=>(e=b(e),(0,c.az)("div",e))))},80055:function(e,a,n){const d=n(82708)();d.addRange(0,127),e.exports=d},81731:function(e,a,n){const d=n(82708)();d.addRange(48,57).addRange(65,70).addRange(97,102),e.exports=d},75244:function(e,a,n){const d=n(82708)(170,181,186,748,750,837,895,902,908,1369,1471,1479,1791,2042,2482,2510,2519,2556,2641,2654,2768,2929,2972,3024,3031,3165,3406,3517,3542,3661,3716,3749,3782,3789,3840,4152,4295,4301,4696,4800,6103,6108,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43205,43259,43471,43712,43714,64318,67592,67644,69415,69826,70006,70106,70108,70199,70206,70280,70480,70487,70855,71232,71236,71352,71945,72161,72349,72768,73018,73027,73112,73648,94179,113822,119970,119995,120134,123214,125255,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1456,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1623).addRange(1625,1631).addRange(1646,1747).addRange(1749,1756).addRange(1761,1768).addRange(1773,1775).addRange(1786,1788).addRange(1808,1855).addRange(1869,1969).addRange(1994,2026).addRange(2036,2037).addRange(2048,2071).addRange(2074,2092).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2260,2271).addRange(2275,2281).addRange(2288,2363).addRange(2365,2380).addRange(2382,2384).addRange(2389,2403).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472),d.addRange(2474,2480).addRange(2486,2489).addRange(2493,2500).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2531).addRange(2544,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2636).addRange(2649,2652).addRange(2672,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2757).addRange(2759,2761).addRange(2763,2764).addRange(2784,2787).addRange(2809,2812).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2877,2884).addRange(2887,2888).addRange(2891,2892).addRange(2902,2903).addRange(2908,2909).addRange(2911,2915).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970),d.addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3020).addRange(3072,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3133,3140).addRange(3142,3144).addRange(3146,3148).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3268).addRange(3270,3272).addRange(3274,3276).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3386).addRange(3389,3396).addRange(3398,3400).addRange(3402,3404).addRange(3412,3415).addRange(3423,3427).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3585,3642).addRange(3648,3654).addRange(3713,3714),d.addRange(3718,3722).addRange(3724,3747).addRange(3751,3769).addRange(3771,3773).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3953,3969).addRange(3976,3991).addRange(3993,4028).addRange(4096,4150).addRange(4155,4159).addRange(4176,4239).addRange(4250,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5907).addRange(5919,5939).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6067).addRange(6070,6088).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430),d.addRange(6432,6443).addRange(6448,6456).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6683).addRange(6688,6750).addRange(6753,6772).addRange(6847,6848).addRange(6860,6862).addRange(6912,6963).addRange(6965,6979).addRange(6981,6988).addRange(7040,7081).addRange(7084,7087).addRange(7098,7141).addRange(7143,7153).addRange(7168,7222).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7655,7668).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521),d.addRange(8544,8584).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42612,42619).addRange(42623,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43013).addRange(43015,43047).addRange(43072,43123).addRange(43136,43203).addRange(43250,43255).addRange(43261,43263).addRange(43274,43306).addRange(43312,43346),d.addRange(43360,43388).addRange(43392,43442).addRange(43444,43455).addRange(43488,43503).addRange(43514,43518).addRange(43520,43574).addRange(43584,43597).addRange(43616,43638).addRange(43642,43710).addRange(43739,43741).addRange(43744,43759).addRange(43762,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613),d.addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295),d.addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69632,69701).addRange(69745,69749).addRange(69762,69816).addRange(69840,69864).addRange(69888,69938).addRange(69956,69959).addRange(69968,70002).addRange(70016,70079).addRange(70081,70084).addRange(70094,70095).addRange(70144,70161).addRange(70163,70196).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70376).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70461,70468).addRange(70471,70472).addRange(70475,70476).addRange(70493,70499).addRange(70656,70721).addRange(70723,70725).addRange(70727,70730).addRange(70751,70753).addRange(70784,70849).addRange(70852,70853),d.addRange(71040,71093).addRange(71096,71102).addRange(71128,71133).addRange(71168,71230).addRange(71296,71349).addRange(71424,71450).addRange(71453,71466).addRange(71488,71494).addRange(71680,71736).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,71996).addRange(71999,72002).addRange(72096,72103).addRange(72106,72151).addRange(72154,72159).addRange(72163,72164).addRange(72192,72242).addRange(72245,72254).addRange(72272,72343).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72766).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73025).addRange(73030,73031).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73110).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766),d.addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744),d.addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},25929:function(e,a,n){const d=n(82708)();d.addRange(0,1114111),e.exports=d},72573:function(e,a,n){const d=n(82708)(908,2142,2482,2519,2620,2641,2654,2768,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,4295,4301,4696,4800,6464,8025,8027,8029,11559,11565,42963,64318,64975,65279,65952,67592,67644,67903,69837,70280,70480,70487,71945,73018,73648,119970,119995,120134,123647,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008,917505);d.addRange(0,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(1536,1805).addRange(1807,1866).addRange(1869,1969).addRange(1984,2042).addRange(2045,2093).addRange(2096,2110).addRange(2112,2139).addRange(2144,2154).addRange(2160,2190).addRange(2192,2193).addRange(2200,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736),d.addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257),d.addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(3585,3642).addRange(3647,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4058).addRange(4096,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805),d.addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5909).addRange(5919,5942).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6683).addRange(6686,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829).addRange(6832,6862).addRange(6912,6988).addRange(6992,7038).addRange(7040,7155).addRange(7164,7223).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7376,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013),d.addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(8192,8292).addRange(8294,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8400,8432).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12288,12351).addRange(12353,12438).addRange(12441,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12784,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42743).addRange(42752,42954).addRange(42960,42961),d.addRange(42965,42969).addRange(42994,43052).addRange(43056,43065).addRange(43072,43127).addRange(43136,43205).addRange(43214,43225).addRange(43232,43347).addRange(43359,43388).addRange(43392,43469).addRange(43471,43481).addRange(43486,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43714).addRange(43739,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(55296,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65049).addRange(65056,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518),d.addRange(65529,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66045).addRange(66176,66204).addRange(66208,66256).addRange(66272,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867),d.addRange(67871,67897).addRange(67968,68023).addRange(68028,68047).addRange(68050,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68326).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68903).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297).addRange(69376,69415).addRange(69424,69465).addRange(69488,69513).addRange(69552,69579).addRange(69600,69622).addRange(69632,69709).addRange(69714,69749).addRange(69759,69826).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69959).addRange(69968,70006).addRange(70016,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70206).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70378),d.addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70747).addRange(70749,70753).addRange(70784,70855).addRange(70864,70873).addRange(71040,71093).addRange(71096,71133).addRange(71168,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71353).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71494).addRange(71680,71739).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164).addRange(72192,72263).addRange(72272,72354).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812).addRange(72816,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),d.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73464).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78894).addRange(78896,78904).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92917).addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788),d.addRange(113792,113800).addRange(113808,113817).addRange(113820,113827).addRange(118528,118573).addRange(118576,118598).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119274).addRange(119296,119365).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121483).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123566).addRange(123584,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125142),d.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660),d.addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917536,917631).addRange(917760,917999).addRange(983040,1048573).addRange(1048576,1114109),e.exports=d},83029:function(e,a,n){const d=n(82708)(1564);d.addRange(8206,8207).addRange(8234,8238).addRange(8294,8297),e.exports=d},50755:function(e,a,n){const d=n(82708)(60,62,91,93,123,125,171,187,8512,8721,8740,8742,8761,8802,8856,10176,10680,10697,10721,10788,10790,10793,10972,10974,10995,11005,11262,65308,65310,65339,65341,65371,65373,120539,120597,120655,120713,120771);d.addRange(40,41).addRange(3898,3901).addRange(5787,5788).addRange(8249,8250).addRange(8261,8262).addRange(8317,8318).addRange(8333,8334).addRange(8705,8708).addRange(8712,8717).addRange(8725,8726).addRange(8730,8733).addRange(8735,8738).addRange(8747,8755).addRange(8763,8780).addRange(8786,8789).addRange(8799,8800).addRange(8804,8811).addRange(8814,8844).addRange(8847,8850).addRange(8866,8867).addRange(8870,8888).addRange(8894,8895).addRange(8905,8909).addRange(8912,8913).addRange(8918,8941).addRange(8944,8959).addRange(8968,8971).addRange(8992,8993).addRange(9001,9002).addRange(10088,10101).addRange(10179,10182).addRange(10184,10185).addRange(10187,10189).addRange(10195,10198).addRange(10204,10206).addRange(10210,10223).addRange(10627,10648).addRange(10651,10656).addRange(10658,10671).addRange(10688,10693).addRange(10702,10706).addRange(10708,10709).addRange(10712,10716).addRange(10723,10725).addRange(10728,10729).addRange(10740,10745).addRange(10748,10749).addRange(10762,10780).addRange(10782,10785).addRange(10795,10798).addRange(10804,10805),d.addRange(10812,10814).addRange(10839,10840).addRange(10852,10853).addRange(10858,10861).addRange(10863,10864).addRange(10867,10868).addRange(10873,10915).addRange(10918,10925).addRange(10927,10966).addRange(10978,10982).addRange(10988,10990).addRange(10999,11003).addRange(11778,11781).addRange(11785,11786).addRange(11788,11789).addRange(11804,11805).addRange(11808,11817).addRange(11861,11868).addRange(12296,12305).addRange(12308,12315).addRange(65113,65118).addRange(65124,65125).addRange(65288,65289).addRange(65375,65376).addRange(65378,65379),e.exports=d},86317:function(e,a,n){const d=n(82708)(39,46,58,94,96,168,173,175,180,890,903,1369,1375,1471,1479,1524,1564,1600,1648,1807,1809,2042,2045,2184,2362,2364,2381,2417,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3782,3893,3895,3897,4038,4226,4237,4253,4348,6086,6103,6109,6211,6313,6450,6683,6742,6752,6754,6783,6823,6964,6972,6978,7142,7149,7405,7412,7544,8125,8228,8231,8305,8319,11631,11647,11823,12293,12347,40981,42508,42623,42864,43010,43014,43019,43052,43263,43443,43471,43587,43596,43632,43644,43696,43713,43741,43766,44005,44008,44013,64286,65043,65106,65109,65279,65287,65294,65306,65342,65344,65392,65507,66045,66272,68159,69633,69744,69821,69826,69837,70003,70095,70196,70206,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,121461,121476,123566,917505);d.addRange(183,184).addRange(688,879).addRange(884,885).addRange(900,901).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1536,1541).addRange(1552,1562).addRange(1611,1631).addRange(1750,1757).addRange(1759,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2070,2093).addRange(2137,2139).addRange(2192,2193).addRange(2200,2207).addRange(2249,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),d.addRange(3538,3540).addRange(3636,3642).addRange(3654,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6159).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7288,7293).addRange(7376,7378).addRange(7380,7392),d.addRange(7394,7400).addRange(7416,7417).addRange(7468,7530).addRange(7579,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8203,8207).addRange(8216,8217).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(8336,8348).addRange(8400,8432).addRange(11388,11389).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12337,12341).addRange(12441,12446).addRange(12540,12542).addRange(42232,42237).addRange(42607,42610).addRange(42612,42621).addRange(42652,42655).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(42994,42996).addRange(43e3,43001).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43493,43494).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(43763,43764).addRange(43867,43871).addRange(43881,43883),d.addRange(64434,64450).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(65529,65531).addRange(66422,66426).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467),d.addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(78896,78904).addRange(92912,92916).addRange(92976,92982).addRange(92992,92995).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(113821,113822).addRange(113824,113827).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119155,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),d.addRange(123184,123197).addRange(123628,123631).addRange(125136,125142).addRange(125252,125259).addRange(127995,127999).addRange(917536,917631).addRange(917760,917999),e.exports=d},78087:function(e,a,n){const d=n(82708)(170,181,186,837,895,902,908,4295,4301,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,67456,119970,119995,120134);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(880,883).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521),d.addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42653).addRange(42786,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42997,42998).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084),d.addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(125184,125251).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),e.exports=d},61587:function(e,a,n){const d=n(82708)(181,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,837,880,882,886,895,902,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);d.addRange(65,90).addRange(192,214).addRange(216,223).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,977).addRange(981,982).addRange(1008,1009).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116),d.addRange(8119,8124).addRange(8130,8132).addRange(8135,8140).addRange(8152,8155).addRange(8168,8172).addRange(8178,8180).addRange(8183,8188).addRange(8490,8491).addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),e.exports=d},62518:function(e,a,n){const d=n(82708)(181,447,601,611,623,629,637,640,658,837,895,902,908,4295,4301,7545,7549,7566,7838,8025,8027,8029,8126,8486,8498,8526,11559,11565,43859);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,311).addRange(313,396).addRange(398,410).addRange(412,425).addRange(428,441).addRange(444,445).addRange(452,544).addRange(546,563).addRange(570,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,977).addRange(981,1013).addRange(1015,1019).addRange(1021,1153).addRange(1162,1327).addRange(1329,1366).addRange(1377,1415).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7680,7835).addRange(7840,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124),d.addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8490,8491).addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11376).addRange(11378,11379).addRange(11381,11382).addRange(11390,11491).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42799).addRange(42802,42863).addRange(42873,42887).addRange(42891,42893).addRange(42896,42900).addRange(42902,42926).addRange(42928,42954).addRange(42960,42961).addRange(42966,42969).addRange(42997,42998).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(125184,125251),e.exports=d},50140:function(e,a,n){const d=n(82708)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);d.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8072,8079).addRange(8088,8095).addRange(8104,8111).addRange(8120,8124).addRange(8136,8140).addRange(8152,8155).addRange(8168,8172).addRange(8184,8188).addRange(8490,8491),d.addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),e.exports=d},97224:function(e,a,n){const d=n(82708)(160,168,170,173,175,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,310,313,315,317,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,847,880,882,884,886,890,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,1564,2527,2611,2614,2654,3635,3763,3852,3907,3917,3922,3927,3932,3945,3955,3969,3987,3997,4002,4007,4012,4025,4295,4301,4348,7544,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8049,8051,8053,8055,8057,8059,8061,8147,8163,8209,8215,8252,8254,8279,8360,8484,8486,8488,8579,8585,10764,10972,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,11631,11935,12019,12288,12342,12447,12543,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42864,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,43881,64016,64018,64032,64034,64285,64318,65140,65279,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,127376);d.addRange(65,90).addRange(178,181).addRange(184,186).addRange(188,190).addRange(192,214).addRange(216,223).addRange(306,308).addRange(319,321).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,461).addRange(497,500).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(688,696).addRange(728,733).addRange(736,740).addRange(832,833).addRange(835,837).addRange(894,895).addRange(900,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,982).addRange(1008,1010).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(1653,1656).addRange(2392,2399).addRange(2524,2525).addRange(2649,2651).addRange(2908,2909).addRange(3804,3805),d.addRange(3957,3961).addRange(4256,4293).addRange(4447,4448).addRange(5112,5117).addRange(6068,6069).addRange(6155,6159).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7468,7470).addRange(7472,7482).addRange(7484,7501).addRange(7503,7530).addRange(7579,7615).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116).addRange(8119,8132).addRange(8135,8143).addRange(8152,8155).addRange(8157,8159).addRange(8168,8175).addRange(8178,8180).addRange(8183,8190).addRange(8192,8207).addRange(8228,8230).addRange(8234,8239).addRange(8243,8244).addRange(8246,8247).addRange(8263,8265).addRange(8287,8305).addRange(8308,8334).addRange(8336,8348).addRange(8448,8451).addRange(8453,8455).addRange(8457,8467).addRange(8469,8470).addRange(8473,8477).addRange(8480,8482).addRange(8490,8493).addRange(8495,8505).addRange(8507,8512).addRange(8517,8521).addRange(8528,8575).addRange(8748,8749),d.addRange(8751,8752).addRange(9001,9002).addRange(9312,9450).addRange(10868,10870).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11388,11392).addRange(12032,12245).addRange(12344,12346).addRange(12443,12444).addRange(12593,12686).addRange(12690,12703).addRange(12800,12830).addRange(12832,12871).addRange(12880,12926).addRange(12928,13311).addRange(42652,42653).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42994,42997).addRange(43e3,43001).addRange(43868,43871).addRange(43888,43967).addRange(63744,64013).addRange(64021,64030).addRange(64037,64038).addRange(64042,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65020).addRange(65024,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65138).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479),d.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65520,65528).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(67457,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(113824,113827).addRange(119134,119140).addRange(119155,119162).addRange(119227,119232).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(125184,125217).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578),d.addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127232,127242).addRange(127248,127278).addRange(127280,127311).addRange(127338,127340).addRange(127488,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(130032,130041).addRange(194560,195101).addRange(917504,921599),e.exports=d},40835:function(e,a,n){const d=n(82708)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,452,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);d.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(454,455).addRange(457,458).addRange(476,477).addRange(495,497).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167).addRange(8178,8180),d.addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),e.exports=d},95428:function(e,a,n){const d=n(82708)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8124,8126,8140,8188,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);d.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(453,454).addRange(456,457).addRange(459,460).addRange(476,477).addRange(495,496).addRange(498,499).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167),d.addRange(8178,8180).addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),e.exports=d},78233:function(e,a,n){const d=n(82708)(45,1418,1470,5120,6150,8275,8315,8331,8722,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);d.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),e.exports=d},91357:function(e,a,n){const d=n(82708)(173,847,1564,12644,65279,65440);d.addRange(4447,4448).addRange(6068,6069).addRange(6155,6159).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(65024,65039).addRange(65520,65528).addRange(113824,113827).addRange(119155,119162).addRange(917504,921599),e.exports=d},18391:function(e,a,n){const d=n(82708)(329,1651,3959,3961,917505);d.addRange(6051,6052).addRange(8298,8303).addRange(9001,9002),e.exports=d},5198:function(e,a,n){const d=n(82708)(94,96,168,175,180,890,1369,1471,1476,2364,2381,2417,2492,2509,2620,2637,2748,2765,2876,2893,2901,3021,3132,3149,3260,3277,3405,3530,3662,3770,3893,3895,3897,4038,4151,4239,6109,6783,6964,6980,7405,7412,8125,11823,12540,42607,42623,43204,43347,43443,43456,43493,43766,64286,65342,65344,65392,65507,66272,69702,69744,70003,70080,70460,70477,70722,70726,71231,71467,72003,72160,72244,72263,72345,72767,73026,73111,123566);d.addRange(183,184).addRange(688,846).addRange(848,855).addRange(861,866).addRange(884,885).addRange(900,901).addRange(1155,1159).addRange(1425,1441).addRange(1443,1469).addRange(1473,1474).addRange(1611,1618).addRange(1623,1624).addRange(1759,1760).addRange(1765,1766).addRange(1770,1772).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2072,2073).addRange(2200,2207).addRange(2249,2258).addRange(2275,2302).addRange(2385,2388).addRange(2813,2815).addRange(3387,3388).addRange(3655,3660).addRange(3784,3788).addRange(3864,3865).addRange(3902,3903).addRange(3970,3972).addRange(3974,3975).addRange(4153,4154).addRange(4195,4196).addRange(4201,4205).addRange(4231,4237).addRange(4250,4251).addRange(4957,4959).addRange(5908,5909).addRange(6089,6099).addRange(6457,6459).addRange(6773,6780).addRange(6832,6846).addRange(6849,6859).addRange(7019,7027).addRange(7082,7083).addRange(7222,7223).addRange(7288,7293).addRange(7376,7400).addRange(7415,7417).addRange(7468,7530).addRange(7620,7631),d.addRange(7669,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(11503,11505).addRange(12330,12335).addRange(12441,12444).addRange(42620,42621).addRange(42652,42653).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(43e3,43001).addRange(43232,43249).addRange(43307,43310).addRange(43643,43645).addRange(43711,43714).addRange(43867,43871).addRange(43881,43883).addRange(44012,44013).addRange(65056,65071).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68325,68326).addRange(68898,68903).addRange(69446,69456).addRange(69506,69509).addRange(69817,69818).addRange(69939,69940).addRange(70090,70092).addRange(70197,70198).addRange(70377,70378).addRange(70502,70508).addRange(70512,70516).addRange(70850,70851).addRange(71103,71104).addRange(71350,71351).addRange(71737,71738).addRange(71997,71998).addRange(73028,73029).addRange(92912,92916).addRange(92976,92982).addRange(94095,94111).addRange(94192,94193).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590),d.addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125254).addRange(125256,125258),e.exports=d},42117:function(e,a,n){const d=n(82708)(35,42,169,174,8252,8265,8482,8505,9e3,9167,9410,9654,9664,9742,9745,9752,9757,9760,9766,9770,9792,9794,9827,9832,9851,9881,9895,9928,9937,9981,9986,9989,9999,10002,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,126980,127183,127374,127514,127535,128391,128400,128424,128444,128481,128483,128488,128495,128499,128745,128752,129008);d.addRange(48,57).addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9732).addRange(9748,9749).addRange(9762,9763).addRange(9774,9775).addRange(9784,9786).addRange(9800,9811).addRange(9823,9824).addRange(9829,9830).addRange(9854,9855).addRange(9874,9879).addRange(9883,9884).addRange(9888,9889).addRange(9898,9899).addRange(9904,9905).addRange(9917,9918).addRange(9924,9925).addRange(9934,9935).addRange(9939,9940).addRange(9961,9962).addRange(9968,9973).addRange(9975,9978).addRange(9992,9997).addRange(10035,10036).addRange(10067,10069).addRange(10083,10084).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(127344,127345).addRange(127358,127359).addRange(127377,127386).addRange(127462,127487).addRange(127489,127490).addRange(127538,127546).addRange(127568,127569).addRange(127744,127777).addRange(127780,127891).addRange(127894,127895).addRange(127897,127899).addRange(127902,127984).addRange(127987,127989).addRange(127991,128253),d.addRange(128255,128317).addRange(128329,128334).addRange(128336,128359).addRange(128367,128368).addRange(128371,128378).addRange(128394,128397).addRange(128405,128406).addRange(128420,128421).addRange(128433,128434).addRange(128450,128452).addRange(128465,128467).addRange(128476,128478).addRange(128506,128591).addRange(128640,128709).addRange(128715,128722).addRange(128725,128727).addRange(128733,128741).addRange(128747,128748).addRange(128755,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782),e.exports=d},97581:function(e,a,n){const d=n(82708)(35,42,8205,8419,65039);d.addRange(48,57).addRange(127462,127487).addRange(127995,127999).addRange(129456,129459).addRange(917536,917631),e.exports=d},39030:function(e,a,n){const d=n(82708)();d.addRange(127995,127999),e.exports=d},18618:function(e,a,n){const d=n(82708)(9757,9977,127877,127943,128124,128143,128145,128170,128378,128400,128675,128704,128716,129292,129295,129318,129399,129467);d.addRange(9994,9997).addRange(127938,127940).addRange(127946,127948).addRange(128066,128067).addRange(128070,128080).addRange(128102,128120).addRange(128129,128131).addRange(128133,128135).addRange(128372,128373).addRange(128405,128406).addRange(128581,128583).addRange(128587,128591).addRange(128692,128694).addRange(129304,129311).addRange(129328,129337).addRange(129340,129342).addRange(129461,129462).addRange(129464,129465).addRange(129485,129487).addRange(129489,129501).addRange(129731,129733).addRange(129776,129782),e.exports=d},29702:function(e,a,n){const d=n(82708)(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);d.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127462,127487).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128733,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782),e.exports=d},5667:function(e,a,n){const d=n(82708)(169,174,8252,8265,8482,8505,9e3,9096,9167,9410,9654,9664,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,127279,127374,127514,127535);d.addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9733).addRange(9735,9746).addRange(9748,9861).addRange(9872,9989).addRange(9992,10002).addRange(10035,10036).addRange(10067,10069).addRange(10083,10087).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(126976,127231).addRange(127245,127247).addRange(127340,127345).addRange(127358,127359).addRange(127377,127386).addRange(127405,127461).addRange(127489,127503).addRange(127538,127546).addRange(127548,127551).addRange(127561,127994).addRange(128e3,128317).addRange(128326,128591).addRange(128640,128767).addRange(128884,128895).addRange(128981,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129279).addRange(129292,129338).addRange(129340,129349).addRange(129351,129791).addRange(130048,131069),e.exports=d},9002:function(e,a,n){const d=n(82708)(183,1600,2042,2901,3654,3782,6154,6211,6823,7222,7291,12293,40981,42508,43471,43494,43632,43741,65392,70493,72344,94179);d.addRange(720,721).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(43763,43764).addRange(67457,67458).addRange(71110,71112).addRange(92994,92995).addRange(94176,94177).addRange(123196,123197).addRange(125252,125254),e.exports=d},96851:function(e,a,n){const d=n(82708)(908,1470,1472,1475,1478,1563,1758,1769,1808,1969,2074,2084,2088,2142,2363,2482,2493,2510,2563,2654,2678,2691,2761,2768,2809,2877,2880,2947,2972,3007,3024,3133,3165,3389,3517,3716,3749,3773,3782,3894,3896,3967,3973,4145,4152,4295,4301,4696,4800,5909,6070,6314,6464,6743,6753,6971,7082,7143,7150,7379,7393,7418,8025,8027,8029,11559,11565,42611,42963,43597,43697,43712,43714,64285,64318,64975,65952,67592,67644,67903,69293,69632,69749,69932,70197,70280,70461,70463,70480,70725,70749,70841,70846,70849,71102,71230,71340,71350,71462,71736,71739,71945,71997,72192,72272,72343,72766,72873,72881,72884,73030,73110,73112,73648,92917,113820,113823,119142,119365,119970,119995,120134,123647,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008);d.addRange(32,126).addRange(160,172).addRange(174,767).addRange(880,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1154).addRange(1162,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1488,1514).addRange(1519,1524).addRange(1542,1551).addRange(1565,1610).addRange(1632,1647).addRange(1649,1749).addRange(1765,1766).addRange(1774,1805).addRange(1810,1839).addRange(1869,1957).addRange(1984,2026).addRange(2036,2042).addRange(2046,2069).addRange(2096,2110).addRange(2112,2136).addRange(2144,2154).addRange(2160,2190).addRange(2208,2249).addRange(2307,2361).addRange(2365,2368).addRange(2377,2380).addRange(2382,2384).addRange(2392,2401).addRange(2404,2432).addRange(2434,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2495,2496).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2529).addRange(2534,2557).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600),d.addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2624).addRange(2649,2652).addRange(2662,2671).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2752).addRange(2763,2764).addRange(2784,2785).addRange(2790,2801).addRange(2818,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2887,2888).addRange(2891,2892).addRange(2908,2909).addRange(2911,2913).addRange(2918,2935).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3046,3066).addRange(3073,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3137,3140).addRange(3160,3162).addRange(3168,3169).addRange(3174,3183),d.addRange(3191,3200).addRange(3202,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3262).addRange(3264,3265).addRange(3267,3268).addRange(3271,3272).addRange(3274,3275).addRange(3293,3294).addRange(3296,3297).addRange(3302,3311).addRange(3313,3314).addRange(3330,3340).addRange(3342,3344).addRange(3346,3386).addRange(3391,3392).addRange(3398,3400).addRange(3402,3404).addRange(3406,3407).addRange(3412,3414).addRange(3416,3425).addRange(3430,3455).addRange(3458,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3536,3537).addRange(3544,3550).addRange(3558,3567).addRange(3570,3572).addRange(3585,3632).addRange(3634,3635).addRange(3647,3654).addRange(3663,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3792,3801).addRange(3804,3807).addRange(3840,3863).addRange(3866,3892).addRange(3898,3911).addRange(3913,3948).addRange(3976,3980),d.addRange(4030,4037).addRange(4039,4044).addRange(4046,4058).addRange(4096,4140).addRange(4155,4156).addRange(4159,4183).addRange(4186,4189).addRange(4193,4208).addRange(4213,4225).addRange(4227,4228).addRange(4231,4236).addRange(4238,4252).addRange(4254,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4960,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5905).addRange(5919,5937).addRange(5940,5942).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6078,6085).addRange(6087,6088).addRange(6100,6108).addRange(6112,6121).addRange(6128,6137).addRange(6144,6154).addRange(6160,6169).addRange(6176,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389),d.addRange(6400,6430).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6678).addRange(6681,6682).addRange(6686,6741).addRange(6755,6756).addRange(6765,6770).addRange(6784,6793).addRange(6800,6809).addRange(6816,6829).addRange(6916,6963).addRange(6973,6977).addRange(6979,6988).addRange(6992,7018).addRange(7028,7038).addRange(7042,7073).addRange(7078,7079).addRange(7086,7141).addRange(7146,7148).addRange(7154,7155).addRange(7164,7211).addRange(7220,7221).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190),d.addRange(8192,8202).addRange(8208,8231).addRange(8239,8287).addRange(8304,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11502).addRange(11506,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11776,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12288,12329).addRange(12336,12351).addRange(12353,12438).addRange(12443,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12784,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42606).addRange(42622,42653).addRange(42656,42735).addRange(42738,42743).addRange(42752,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013),d.addRange(43015,43018).addRange(43020,43044).addRange(43047,43051).addRange(43056,43065).addRange(43072,43127).addRange(43136,43203).addRange(43214,43225).addRange(43250,43262).addRange(43264,43301).addRange(43310,43334).addRange(43346,43347).addRange(43359,43388).addRange(43395,43442).addRange(43444,43445).addRange(43450,43451).addRange(43454,43469).addRange(43471,43481).addRange(43486,43492).addRange(43494,43518).addRange(43520,43560).addRange(43567,43568).addRange(43571,43572).addRange(43584,43586).addRange(43588,43595).addRange(43600,43609).addRange(43612,43643).addRange(43645,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43755).addRange(43758,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44004).addRange(44006,44007).addRange(44009,44012).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321),d.addRange(64323,64324).addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66044).addRange(66176,66204).addRange(66208,66256).addRange(66273,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965),d.addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867).addRange(67871,67897).addRange(67968,68023).addRange(68028,68047).addRange(68050,68096).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68160,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68324).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68899).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69296,69297).addRange(69376,69415).addRange(69424,69445).addRange(69457,69465).addRange(69488,69505).addRange(69510,69513).addRange(69552,69579),d.addRange(69600,69622).addRange(69634,69687).addRange(69703,69709).addRange(69714,69743).addRange(69745,69746).addRange(69762,69810).addRange(69815,69816).addRange(69819,69820).addRange(69822,69825).addRange(69840,69864).addRange(69872,69881).addRange(69891,69926).addRange(69942,69959).addRange(69968,70002).addRange(70004,70006).addRange(70018,70069).addRange(70079,70088).addRange(70093,70094).addRange(70096,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70190).addRange(70194,70195).addRange(70200,70205).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70366).addRange(70368,70370).addRange(70384,70393).addRange(70402,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70656,70711).addRange(70720,70721).addRange(70727,70747).addRange(70751,70753).addRange(70784,70831).addRange(70833,70834).addRange(70843,70844).addRange(70852,70855).addRange(70864,70873),d.addRange(71040,71086).addRange(71088,71089).addRange(71096,71099).addRange(71105,71131).addRange(71168,71218).addRange(71227,71228).addRange(71233,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71338).addRange(71342,71343).addRange(71352,71353).addRange(71360,71369).addRange(71424,71450).addRange(71456,71457).addRange(71472,71494).addRange(71680,71726).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(71985,71989).addRange(71991,71992).addRange(71999,72002).addRange(72004,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72147).addRange(72156,72159).addRange(72161,72164).addRange(72203,72242).addRange(72249,72250).addRange(72255,72262).addRange(72279,72280).addRange(72284,72329).addRange(72346,72354).addRange(72368,72440).addRange(72704,72712).addRange(72714,72751).addRange(72768,72773).addRange(72784,72812).addRange(72816,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73107,73108),d.addRange(73120,73129).addRange(73440,73458).addRange(73461,73464).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92928,92975).addRange(92983,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94032,94087).addRange(94099,94111).addRange(94176,94179).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119149).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274),d.addRange(119296,119361).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121483).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123565).addRange(123584,123627).addRange(123632,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125135).addRange(125184,125251).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543),d.addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791),d.addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},71054:function(e,a,n){const d=n(82708)(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2494,2509,2519,2558,2620,2641,2677,2748,2765,2817,2876,2893,2946,3006,3008,3021,3031,3072,3076,3132,3201,3260,3263,3266,3270,3390,3405,3415,3457,3530,3535,3542,3551,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6972,6978,7142,7149,7405,7412,8204,11647,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70367,70462,70464,70487,70726,70750,70832,70842,70845,71087,71229,71339,71341,71351,71984,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,94180,119141,121461,121476,123566);d.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2878,2879).addRange(2881,2884).addRange(2901,2903).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388),d.addRange(3393,3396).addRange(3426,3427).addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6964,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378),d.addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078),d.addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573),d.addRange(118576,118598).addRange(119143,119145).addRange(119150,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917536,917631).addRange(917760,917999),e.exports=d},80662:function(e,a,n){const d=n(82708)();d.addRange(48,57).addRange(65,70).addRange(97,102).addRange(65296,65305).addRange(65313,65318).addRange(65345,65350),e.exports=d},66910:function(e,a,n){const d=n(82708)();d.addRange(12272,12273).addRange(12276,12283),e.exports=d},31548:function(e,a,n){const d=n(82708)();d.addRange(12274,12275),e.exports=d},97301:function(e,a,n){const d=n(82708)(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70206,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,119970,119995,120134,121461,121476,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(890,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),d.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),d.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),d.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),d.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412).addRange(8421,8432),d.addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255).addRange(43261,43309),d.addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65136,65140).addRange(65142,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479),d.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023),d.addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416),d.addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969),d.addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113821,113822),d.addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566).addRange(123584,123641),d.addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917760,917999),e.exports=d},47818:function(e,a,n){const d=n(82708)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),d.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),d.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312),d.addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670),d.addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12443,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586),d.addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204),d.addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),d.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144),d.addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993),d.addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976),d.addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},82217:function(e,a,n){const d=n(82708)(94180);d.addRange(12294,12295).addRange(12321,12329).addRange(12344,12346).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110960,111355).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},15332:function(e,a,n){const d=n(82708)();d.addRange(8204,8205),e.exports=d},55780:function(e,a,n){const d=n(82708)(6586,43705);d.addRange(3648,3652).addRange(3776,3780).addRange(6581,6583).addRange(43701,43702).addRange(43707,43708),e.exports=d},61091:function(e,a,n){const d=n(82708)(170,181,186,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8305,8319,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,67456,119995,120779);d.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(890,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7615).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),d.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8336,8348).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11389).addRange(11491,11492).addRange(11520,11557).addRange(42651,42653).addRange(42799,42801).addRange(42863,42872).addRange(42899,42901).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327),d.addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654).addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(125218,125251),e.exports=d},7146:function(e,a,n){const d=n(82708)(43,94,124,126,172,177,215,247,981,8214,8256,8260,8274,8417,8450,8455,8469,8484,8523,8669,9084,9143,9168,9698,9700,9792,9794,64297,65128,65291,65340,65342,65372,65374,65506,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(60,62).addRange(976,978).addRange(1008,1009).addRange(1012,1014).addRange(1542,1544).addRange(8242,8244).addRange(8289,8292).addRange(8314,8318).addRange(8330,8334).addRange(8400,8412).addRange(8421,8422).addRange(8427,8431).addRange(8458,8467).addRange(8472,8477).addRange(8488,8489).addRange(8492,8493).addRange(8495,8497).addRange(8499,8504).addRange(8508,8521).addRange(8592,8615).addRange(8617,8622).addRange(8624,8625).addRange(8630,8631).addRange(8636,8667).addRange(8676,8677).addRange(8692,8959).addRange(8968,8971).addRange(8992,8993).addRange(9115,9141).addRange(9180,9186).addRange(9632,9633).addRange(9646,9655).addRange(9660,9665).addRange(9670,9671).addRange(9674,9675).addRange(9679,9683).addRange(9703,9708).addRange(9720,9727).addRange(9733,9734).addRange(9824,9827).addRange(9837,9839).addRange(10176,10239).addRange(10496,11007).addRange(11056,11076).addRange(11079,11084).addRange(65121,65126).addRange(65308,65310).addRange(65513,65516).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967),d.addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),e.exports=d},51752:function(e,a,n){const d=n(82708)();d.addRange(64976,65007).addRange(65534,65535).addRange(131070,131071).addRange(196606,196607).addRange(262142,262143).addRange(327678,327679).addRange(393214,393215).addRange(458750,458751).addRange(524286,524287).addRange(589822,589823).addRange(655358,655359).addRange(720894,720895).addRange(786430,786431).addRange(851966,851967).addRange(917502,917503).addRange(983038,983039).addRange(1048574,1048575).addRange(1114110,1114111),e.exports=d},76596:function(e,a,n){const d=n(82708)(96,169,174,182,187,191,215,247,12336);d.addRange(33,47).addRange(58,64).addRange(91,94).addRange(123,126).addRange(161,167).addRange(171,172).addRange(176,177).addRange(8208,8231).addRange(8240,8254).addRange(8257,8275).addRange(8277,8286).addRange(8592,9311).addRange(9472,10101).addRange(10132,11263).addRange(11776,11903).addRange(12289,12291).addRange(12296,12320).addRange(64830,64831).addRange(65093,65094),e.exports=d},86436:function(e,a,n){const d=n(82708)(32,133);d.addRange(9,13).addRange(8206,8207).addRange(8232,8233),e.exports=d},29467:function(e,a,n){const d=n(82708)(34,39,171,187,11842,65282,65287);d.addRange(8216,8223).addRange(8249,8250).addRange(12300,12303).addRange(12317,12319).addRange(65089,65092).addRange(65378,65379),e.exports=d},68163:function(e,a,n){const d=n(82708)();d.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245),e.exports=d},16412:function(e,a,n){const d=n(82708)();d.addRange(127462,127487),e.exports=d},25496:function(e,a,n){const d=n(82708)(33,46,63,1417,1748,2041,2103,2105,4962,5742,6147,6153,11822,11836,12290,42239,42739,42743,43311,44011,65106,65281,65294,65311,65377,70093,70313,72004,72006,92917,92996,93848,113823,121480);d.addRange(1565,1567).addRange(1792,1794).addRange(2109,2110).addRange(2404,2405).addRange(4170,4171).addRange(4967,4968).addRange(5941,5942).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7006,7007).addRange(7037,7038).addRange(7227,7228).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11859,11860).addRange(42510,42511).addRange(43126,43127).addRange(43214,43215).addRange(43464,43465).addRange(43613,43615).addRange(43760,43761).addRange(65110,65111).addRange(68182,68183).addRange(69461,69465).addRange(69510,69513).addRange(69703,69704).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70201).addRange(70203,70204).addRange(70731,70732).addRange(71106,71107).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72769,72770).addRange(73463,73464).addRange(92782,92783).addRange(92983,92984),e.exports=d},83045:function(e,a,n){const d=n(82708)(303,585,616,669,690,1011,1110,1112,7522,7574,7588,7592,7725,7883,8305,11388,122650);d.addRange(105,106).addRange(8520,8521).addRange(119842,119843).addRange(119894,119895).addRange(119946,119947).addRange(119998,119999).addRange(120050,120051).addRange(120102,120103).addRange(120154,120155).addRange(120206,120207).addRange(120258,120259).addRange(120310,120311).addRange(120362,120363).addRange(120414,120415).addRange(120466,120467),e.exports=d},20991:function(e,a,n){const d=n(82708)(33,44,46,63,894,903,1417,1475,1548,1563,1748,1804,2142,3848,5742,6106,11822,11836,11841,11852,43311,43743,44011,65281,65292,65294,65311,65377,65380,66463,66512,67671,67871,70093,70313,72004,72006,72817,92917,92996,113823);d.addRange(58,59).addRange(1565,1567).addRange(1792,1802).addRange(2040,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3853,3858).addRange(4170,4171).addRange(4961,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6146,6149).addRange(6152,6153).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7005,7007).addRange(7037,7038).addRange(7227,7231).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11854,11855).addRange(11859,11860).addRange(12289,12290).addRange(42238,42239).addRange(42509,42511).addRange(42739,42743).addRange(43126,43127).addRange(43214,43215).addRange(43463,43465).addRange(43613,43615).addRange(43760,43761).addRange(65104,65106).addRange(65108,65111).addRange(65306,65307).addRange(68182,68183).addRange(68336,68341).addRange(68410,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70204).addRange(70731,70733),d.addRange(70746,70747).addRange(71106,71109).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72353,72354).addRange(72769,72771).addRange(73463,73464).addRange(74864,74868).addRange(92782,92783).addRange(92983,92985).addRange(93847,93848).addRange(121479,121482),e.exports=d},15154:function(e,a,n){const d=n(82708)(64017,64031,64033);d.addRange(13312,19903).addRange(19968,40959).addRange(64014,64015).addRange(64019,64020).addRange(64035,64036).addRange(64039,64041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(196608,201546),e.exports=d},91909:function(e,a,n){const d=n(82708)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);d.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(8544,8559),d.addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),e.exports=d},64590:function(e,a,n){const d=n(82708)(6159);d.addRange(6155,6157).addRange(65024,65039).addRange(917760,917999),e.exports=d},42886:function(e,a,n){const d=n(82708)(32,133,160,5760,8239,8287,12288);d.addRange(9,13).addRange(8192,8202).addRange(8232,8233),e.exports=d},83067:function(e,a,n){const d=n(82708)(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65137,65139,65143,65145,65147,65149,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70206,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,119970,119995,120134,121461,121476,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(891,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),d.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),d.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),d.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),d.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412).addRange(8421,8432),d.addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12442).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255),d.addRange(43261,43309).addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65151,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470),d.addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897),d.addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412),d.addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),d.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817),d.addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566),d.addRange(123584,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917760,917999),e.exports=d},86524:function(e,a,n){const d=n(82708)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3634,3716,3749,3762,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,65137,65139,65143,65145,65147,65149,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),d.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),d.addRange(3585,3632).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312).addRange(6320,6389).addRange(6400,6430),d.addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694),d.addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43638),d.addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65151,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256),d.addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786),d.addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242),d.addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003),d.addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205),d.addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},94195:function(e,a,n){const d=n(82708)(181,895,902,908,4295,4301,8025,8027,8029,8126,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,43002,119970,119995,120134);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,687).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580),d.addRange(11264,11387).addRange(11390,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42863).addRange(42865,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42997,42998).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144),d.addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(125184,125251),e.exports=d},42549:function(e,a,n){const d=n(82708)(41,93,125,3899,3901,5788,8262,8318,8334,8969,8971,9002,10089,10091,10093,10095,10097,10099,10101,10182,10215,10217,10219,10221,10223,10628,10630,10632,10634,10636,10638,10640,10642,10644,10646,10648,10713,10715,10749,11811,11813,11815,11817,11862,11864,11866,11868,12297,12299,12301,12303,12305,12309,12311,12313,12315,64830,65048,65078,65080,65082,65084,65086,65088,65090,65092,65096,65114,65116,65118,65289,65341,65373,65376,65379);d.addRange(12318,12319),e.exports=d},72437:function(e,a,n){const d=n(82708)(95,8276,65343);d.addRange(8255,8256).addRange(65075,65076).addRange(65101,65103),e.exports=d},44467:function(e,a,n){const d=n(82708)();d.addRange(0,31).addRange(127,159),e.exports=d},75431:function(e,a,n){const d=n(82708)(36,1423,1547,2555,2801,3065,3647,6107,43064,65020,65129,65284,123647,126128);d.addRange(162,165).addRange(2046,2047).addRange(2546,2547).addRange(8352,8384).addRange(65504,65505).addRange(65509,65510).addRange(73693,73696),e.exports=d},86441:function(e,a,n){const d=n(82708)(45,1418,1470,5120,6150,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);d.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),e.exports=d},57965:function(e,a,n){const d=n(82708)();d.addRange(48,57).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(3046,3055).addRange(3174,3183).addRange(3302,3311).addRange(3430,3439).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3881).addRange(4160,4169).addRange(4240,4249).addRange(6112,6121).addRange(6160,6169).addRange(6470,6479).addRange(6608,6617).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(42528,42537).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(66720,66729).addRange(68912,68921).addRange(69734,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71481).addRange(71904,71913).addRange(72016,72025),d.addRange(72784,72793).addRange(73040,73049).addRange(73120,73129).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(125264,125273).addRange(130032,130041),e.exports=d},89586:function(e,a,n){const d=n(82708)(6846);d.addRange(1160,1161).addRange(8413,8416).addRange(8418,8420).addRange(42608,42610),e.exports=d},32965:function(e,a,n){const d=n(82708)(187,8217,8221,8250,11779,11781,11786,11789,11805,11809);e.exports=d},32277:function(e,a,n){const d=n(82708)(173,1564,1757,1807,2274,6158,65279,69821,69837,917505);d.addRange(1536,1541).addRange(2192,2193).addRange(8203,8207).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(65529,65531).addRange(78896,78904).addRange(113824,113827).addRange(119155,119162).addRange(917536,917631),e.exports=d},5900:function(e,a,n){const d=n(82708)(171,8216,8223,8249,11778,11780,11785,11788,11804,11808);d.addRange(8219,8220),e.exports=d},63764:function(e,a,n){const d=n(82708)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),d.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),d.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6276),d.addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557),d.addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12294).addRange(12337,12341).addRange(12347,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42725).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560),d.addRange(43584,43586).addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204),d.addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),d.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144),d.addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003),d.addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205),d.addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},43043:function(e,a,n){const d=n(82708)(12295,66369,66378);d.addRange(5870,5872).addRange(8544,8578).addRange(8581,8584).addRange(12321,12329).addRange(12344,12346).addRange(42726,42735).addRange(65856,65908).addRange(66513,66517).addRange(74752,74862),e.exports=d},19307:function(e,a,n){const d=n(82708)(8232);e.exports=d},45025:function(e,a,n){const d=n(82708)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,43002,119995,120779);d.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,687).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),d.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11387).addRange(11491,11492).addRange(11520,11557).addRange(42799,42801).addRange(42865,42872).addRange(42899,42901).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327).addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654),d.addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(125218,125251),e.exports=d},76197:function(e,a,n){const d=n(82708)(1471,1479,1648,1809,2045,2492,2519,2558,2620,2641,2677,2748,2876,2946,3031,3132,3260,3415,3530,3542,3633,3761,3893,3895,3897,4038,4239,6109,6159,6313,6783,7405,7412,11647,43010,43014,43019,43052,43263,43493,43587,43696,43713,64286,66045,66272,68159,69744,69826,70003,70206,70487,70750,72e3,72164,72263,73018,73031,94031,94180,121461,121476,123566);d.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2307).addRange(2362,2364).addRange(2366,2383).addRange(2385,2391).addRange(2402,2403).addRange(2433,2435).addRange(2494,2500).addRange(2503,2504).addRange(2507,2509).addRange(2530,2531).addRange(2561,2563).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2691).addRange(2750,2757).addRange(2759,2761).addRange(2763,2765).addRange(2786,2787).addRange(2810,2815).addRange(2817,2819).addRange(2878,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2914,2915).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021),d.addRange(3072,3076).addRange(3134,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3201,3203).addRange(3262,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3331).addRange(3387,3388).addRange(3390,3396).addRange(3398,3400).addRange(3402,3405).addRange(3426,3427).addRange(3457,3459).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3902,3903).addRange(3953,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4139,4158).addRange(4182,4185).addRange(4190,4192).addRange(4194,4196).addRange(4199,4205).addRange(4209,4212).addRange(4226,4237).addRange(4250,4253).addRange(4957,4959).addRange(5906,5909).addRange(5938,5940).addRange(5970,5971).addRange(6002,6003).addRange(6068,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6443).addRange(6448,6459).addRange(6679,6683),d.addRange(6741,6750).addRange(6752,6780).addRange(6832,6862).addRange(6912,6916).addRange(6964,6980).addRange(7019,7027).addRange(7040,7042).addRange(7073,7085).addRange(7142,7155).addRange(7204,7223).addRange(7376,7378).addRange(7380,7400).addRange(7415,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43043,43047).addRange(43136,43137).addRange(43188,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43347).addRange(43392,43395).addRange(43443,43456).addRange(43561,43574).addRange(43596,43597).addRange(43643,43645).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43755,43759).addRange(43765,43766).addRange(44003,44010).addRange(44012,44013).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292),d.addRange(69446,69456).addRange(69506,69509).addRange(69632,69634).addRange(69688,69702).addRange(69747,69748).addRange(69759,69762).addRange(69808,69818).addRange(69888,69890).addRange(69927,69940).addRange(69957,69958).addRange(70016,70018).addRange(70067,70080).addRange(70089,70092).addRange(70094,70095).addRange(70188,70199).addRange(70367,70378).addRange(70400,70403).addRange(70459,70460).addRange(70462,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70502,70508).addRange(70512,70516).addRange(70709,70726).addRange(70832,70851).addRange(71087,71093).addRange(71096,71104).addRange(71132,71133).addRange(71216,71232).addRange(71339,71351).addRange(71453,71467).addRange(71724,71738).addRange(71984,71989).addRange(71991,71992).addRange(71995,71998).addRange(72002,72003).addRange(72145,72151).addRange(72154,72160).addRange(72193,72202).addRange(72243,72249).addRange(72251,72254).addRange(72273,72283).addRange(72330,72345).addRange(72751,72758).addRange(72760,72767).addRange(72850,72871).addRange(72873,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029),d.addRange(73098,73102).addRange(73104,73105).addRange(73107,73111).addRange(73459,73462).addRange(92912,92916).addRange(92976,92982).addRange(94033,94087).addRange(94095,94098).addRange(94192,94193).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),e.exports=d},21803:function(e,a,n){const d=n(82708)(43,124,126,172,177,215,247,1014,8260,8274,8472,8523,8608,8611,8614,8622,8658,8660,9084,9655,9665,9839,64297,65122,65291,65372,65374,65506,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771);d.addRange(60,62).addRange(1542,1544).addRange(8314,8316).addRange(8330,8332).addRange(8512,8516).addRange(8592,8596).addRange(8602,8603).addRange(8654,8655).addRange(8692,8959).addRange(8992,8993).addRange(9115,9139).addRange(9180,9185).addRange(9720,9727).addRange(10176,10180).addRange(10183,10213).addRange(10224,10239).addRange(10496,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11007).addRange(11056,11076).addRange(11079,11084).addRange(65124,65126).addRange(65308,65310).addRange(65513,65516).addRange(126704,126705),e.exports=d},31022:function(e,a,n){const d=n(82708)(748,750,884,890,1369,1600,2042,2074,2084,2088,2249,2417,3654,3782,4348,6103,6211,6823,7544,8305,8319,11631,11823,12293,12347,40981,42508,42623,42864,42888,43471,43494,43632,43741,43881,65392,94179,125259);d.addRange(688,705).addRange(710,721).addRange(736,740).addRange(1765,1766).addRange(2036,2037).addRange(7288,7293).addRange(7468,7530).addRange(7579,7615).addRange(8336,8348).addRange(11388,11389).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(42232,42237).addRange(42652,42653).addRange(42775,42783).addRange(42994,42996).addRange(43e3,43001).addRange(43763,43764).addRange(43868,43871).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(92992,92995).addRange(94099,94111).addRange(94176,94177).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(123191,123197),e.exports=d},46858:function(e,a,n){const d=n(82708)(94,96,168,175,180,184,749,885,2184,8125,43867,65342,65344,65507);d.addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(12443,12444).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43882,43883).addRange(64434,64450).addRange(127995,127999),e.exports=d},85948:function(e,a,n){const d=n(82708)(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6964,6972,6978,7142,7149,7405,7412,8417,11647,42607,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,94180,121461,121476,123566);d.addRange(768,879).addRange(1155,1159).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),d.addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6845).addRange(6847,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378).addRange(7380,7392),d.addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8412).addRange(8421,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12441,12442).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193),d.addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145),d.addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),e.exports=d},78861:function(e,a,n){const d=n(82708)(185,8304,11517,12295,66369,66378);d.addRange(48,57).addRange(178,179).addRange(188,190).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2548,2553).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(2930,2935).addRange(3046,3058).addRange(3174,3183).addRange(3192,3198).addRange(3302,3311).addRange(3416,3422).addRange(3430,3448).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3891).addRange(4160,4169).addRange(4240,4249).addRange(4969,4988).addRange(5870,5872).addRange(6112,6121).addRange(6128,6137).addRange(6160,6169).addRange(6470,6479).addRange(6608,6618).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(8308,8313).addRange(8320,8329).addRange(8528,8578).addRange(8581,8585).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12321,12329).addRange(12344,12346).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895),d.addRange(12928,12937).addRange(12977,12991).addRange(42528,42537).addRange(42726,42735).addRange(43056,43061).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(65799,65843).addRange(65856,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(66513,66517).addRange(66720,66729).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(68912,68921).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70113,70132).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71483),d.addRange(71904,71922).addRange(72016,72025).addRange(72784,72812).addRange(73040,73049).addRange(73120,73129).addRange(73664,73684).addRange(74752,74862).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(93019,93025).addRange(93824,93846).addRange(119520,119539).addRange(119648,119672).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(125127,125135).addRange(125264,125273).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244).addRange(130032,130041),e.exports=d},38999:function(e,a,n){const d=n(82708)(40,91,123,3898,3900,5787,8218,8222,8261,8317,8333,8968,8970,9001,10088,10090,10092,10094,10096,10098,10100,10181,10214,10216,10218,10220,10222,10627,10629,10631,10633,10635,10637,10639,10641,10643,10645,10647,10712,10714,10748,11810,11812,11814,11816,11842,11861,11863,11865,11867,12296,12298,12300,12302,12304,12308,12310,12312,12314,12317,64831,65047,65077,65079,65081,65083,65085,65087,65089,65091,65095,65113,65115,65117,65288,65339,65371,65375,65378);e.exports=d},30567:function(e,a,n){const d=n(82708)(173,907,909,930,1328,1424,1564,1757,2111,2143,2274,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6158,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69821,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129939);d.addRange(0,31).addRange(127,159).addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1541).addRange(1806,1807).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2191,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957),d.addRange(2966,2968).addRange(2976,2978).addRange(2981,2983).addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3315,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3790,3791).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119),d.addRange(5789,5791).addRange(5881,5887).addRange(5910,5918).addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279),d.addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12284,12287).addRange(12439,12440).addRange(12544,12548).addRange(12772,12783).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,63743).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007),d.addRange(65050,65055).addRange(65132,65135).addRange(65277,65280).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503).addRange(65519,65531).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158),d.addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69375).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70207,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247),d.addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78895,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191),d.addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575).addRange(110883,110927).addRange(110931,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113824,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119155,119162).addRange(119275,119295).addRange(119366,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122879).addRange(122905,122906).addRange(122923,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502),d.addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128732).addRange(128749,128751).addRange(128765,128767).addRange(128884,128895).addRange(128985,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129653,129655).addRange(129661,129663).addRange(129671,129679).addRange(129709,129711).addRange(129723,129727).addRange(129734,129743).addRange(129754,129759).addRange(129768,129775).addRange(129783,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177977,177983).addRange(178206,178207).addRange(183970,183983).addRange(191457,194559).addRange(195102,196607).addRange(201547,917759).addRange(918e3,1114111),e.exports=d},52093:function(e,a,n){const d=n(82708)(170,186,443,660,1749,1791,1808,1969,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3840,4159,4193,4238,4696,4800,6108,6314,7418,12294,12348,12447,12543,42606,42895,42999,43259,43642,43697,43712,43714,43762,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,122634,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(448,451).addRange(1488,1514).addRange(1519,1522).addRange(1568,1599).addRange(1601,1610).addRange(1646,1647).addRange(1649,1747).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2248).addRange(2308,2361).addRange(2392,2401).addRange(2418,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873),d.addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3585,3632).addRange(3634,3635).addRange(3648,3653).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198),d.addRange(4206,4208).addRange(4213,4225).addRange(4352,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6210).addRange(6212,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7287).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414),d.addRange(8501,8504).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12353,12438).addRange(12449,12538).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,40980).addRange(40982,42124).addRange(42192,42231).addRange(42240,42507).addRange(42512,42527).addRange(42538,42539).addRange(42656,42725).addRange(43003,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43495,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43631).addRange(43633,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43740).addRange(43744,43754).addRange(43777,43782),d.addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43968,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65382,65391).addRange(65393,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66640,66717).addRange(66816,66855).addRange(66864,66915).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),d.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448),d.addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(93027,93047).addRange(93053,93071).addRange(93952,94026).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110592,110882),d.addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(123136,123180).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},80180:function(e,a,n){const d=n(82708)(185,6618,8304,8585,11517);d.addRange(178,179).addRange(188,190).addRange(2548,2553).addRange(2930,2935).addRange(3056,3058).addRange(3192,3198).addRange(3416,3422).addRange(3440,3448).addRange(3882,3891).addRange(4969,4988).addRange(6128,6137).addRange(8308,8313).addRange(8320,8329).addRange(8528,8543).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895).addRange(12928,12937).addRange(12977,12991).addRange(43056,43061).addRange(65799,65843).addRange(65909,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69733).addRange(70113,70132),d.addRange(71482,71483).addRange(71914,71922).addRange(72794,72812).addRange(73664,73684).addRange(93019,93025).addRange(93824,93846).addRange(119520,119539).addRange(119648,119672).addRange(125127,125135).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244),e.exports=d},72919:function(e,a,n){const d=n(82708)(42,44,92,161,167,191,894,903,1417,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5742,7379,8275,11632,11787,11803,11841,12349,12539,42611,42622,43260,43359,44011,65049,65072,65128,65290,65292,65340,65377,66463,66512,66927,67671,67871,67903,68223,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);d.addRange(33,35).addRange(37,39).addRange(46,47).addRange(58,59).addRange(63,64).addRange(182,183).addRange(1370,1375).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6149).addRange(6151,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8214,8215).addRange(8224,8231).addRange(8240,8248).addRange(8251,8254).addRange(8257,8259).addRange(8263,8273).addRange(8277,8286).addRange(11513,11516).addRange(11518,11519).addRange(11776,11777).addRange(11782,11784).addRange(11790,11798).addRange(11800,11801),d.addRange(11806,11807).addRange(11818,11822).addRange(11824,11833).addRange(11836,11839).addRange(11843,11855).addRange(11858,11860).addRange(12289,12291).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(65040,65046).addRange(65093,65094).addRange(65097,65100).addRange(65104,65106).addRange(65108,65111).addRange(65119,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65287).addRange(65294,65295).addRange(65306,65307).addRange(65311,65312).addRange(65380,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205).addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235),d.addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),e.exports=d},57481:function(e,a,n){const d=n(82708)(166,169,174,176,1154,1758,1769,2038,2554,2928,3066,3199,3407,3449,3859,3892,3894,3896,5741,6464,8468,8485,8487,8489,8494,8522,8527,8659,12292,12320,12880,43065,64975,65508,65512,65952,68296,71487,92997,113820,119365,123215,126124,126254,129008);d.addRange(1421,1422).addRange(1550,1551).addRange(1789,1790).addRange(3059,3064).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8471).addRange(8478,8483).addRange(8506,8507).addRange(8524,8525).addRange(8586,8587).addRange(8597,8601).addRange(8604,8607).addRange(8609,8610).addRange(8612,8613).addRange(8615,8621).addRange(8623,8653).addRange(8656,8657).addRange(8661,8691).addRange(8960,8967).addRange(8972,8991).addRange(8994,9e3).addRange(9003,9083).addRange(9085,9114).addRange(9140,9179).addRange(9186,9254).addRange(9280,9290).addRange(9372,9449).addRange(9472,9654).addRange(9656,9664).addRange(9666,9719).addRange(9728,9838).addRange(9840,10087).addRange(10132,10175).addRange(10240,10495).addRange(11008,11055).addRange(11077,11078).addRange(11085,11123),d.addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(43048,43051).addRange(43062,43063).addRange(43639,43641).addRange(64832,64847).addRange(65021,65023).addRange(65517,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73692).addRange(73697,73713).addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475),d.addRange(121477,121478).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,127994).addRange(128e3,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994),e.exports=d},26400:function(e,a,n){const d=n(82708)(8233);e.exports=d},55205:function(e,a,n){const d=n(82708)();d.addRange(57344,63743).addRange(983040,1048573).addRange(1048576,1114109),e.exports=d},78350:function(e,a,n){const d=n(82708)(95,123,125,161,167,171,187,191,894,903,1470,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5120,5742,7379,11632,12336,12349,12448,12539,42611,42622,43260,43359,44011,65123,65128,65343,65371,65373,66463,66512,66927,67671,67871,67903,68223,69293,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);d.addRange(33,35).addRange(37,42).addRange(44,47).addRange(58,59).addRange(63,64).addRange(91,93).addRange(182,183).addRange(1370,1375).addRange(1417,1418).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(3898,3901).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5787,5788).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8208,8231).addRange(8240,8259).addRange(8261,8273).addRange(8275,8286).addRange(8317,8318).addRange(8333,8334).addRange(8968,8971).addRange(9001,9002).addRange(10088,10101).addRange(10181,10182),d.addRange(10214,10223).addRange(10627,10648).addRange(10712,10715).addRange(10748,10749).addRange(11513,11516).addRange(11518,11519).addRange(11776,11822).addRange(11824,11855).addRange(11858,11869).addRange(12289,12291).addRange(12296,12305).addRange(12308,12319).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65290).addRange(65292,65295).addRange(65306,65307).addRange(65311,65312).addRange(65339,65341).addRange(65375,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205),d.addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235).addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),e.exports=d},66827:function(e,a,n){const d=n(82708)(32,160,5760,8239,8287,12288);d.addRange(8192,8202).addRange(8232,8233),e.exports=d},29909:function(e,a,n){const d=n(82708)(32,160,5760,8239,8287,12288);d.addRange(8192,8202),e.exports=d},67089:function(e,a,n){const d=n(82708)(2307,2363,2519,2563,2691,2761,2878,2880,2903,3031,3262,3415,3967,4145,4152,4239,5909,5940,6070,6741,6743,6753,6916,6965,6971,7042,7073,7082,7143,7150,7393,7415,43047,43395,43597,43643,43645,43755,43765,44012,69632,69634,69762,69932,70018,70094,70197,70487,70725,70841,70849,71102,71230,71340,71350,71462,71736,71997,72e3,72002,72164,72249,72343,72751,72766,72873,72881,72884,73110);d.addRange(2366,2368).addRange(2377,2380).addRange(2382,2383).addRange(2434,2435).addRange(2494,2496).addRange(2503,2504).addRange(2507,2508).addRange(2622,2624).addRange(2750,2752).addRange(2763,2764).addRange(2818,2819).addRange(2887,2888).addRange(2891,2892).addRange(3006,3007).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3073,3075).addRange(3137,3140).addRange(3202,3203).addRange(3264,3268).addRange(3271,3272).addRange(3274,3275).addRange(3285,3286).addRange(3330,3331).addRange(3390,3392).addRange(3398,3400).addRange(3402,3404).addRange(3458,3459).addRange(3535,3537).addRange(3544,3551).addRange(3570,3571).addRange(3902,3903).addRange(4139,4140).addRange(4155,4156).addRange(4182,4183).addRange(4194,4196).addRange(4199,4205).addRange(4227,4228).addRange(4231,4236).addRange(4250,4252).addRange(6078,6085).addRange(6087,6088).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6681,6682).addRange(6755,6756).addRange(6765,6770).addRange(6973,6977),d.addRange(6979,6980).addRange(7078,7079).addRange(7146,7148).addRange(7154,7155).addRange(7204,7211).addRange(7220,7221).addRange(12334,12335).addRange(43043,43044).addRange(43136,43137).addRange(43188,43203).addRange(43346,43347).addRange(43444,43445).addRange(43450,43451).addRange(43454,43456).addRange(43567,43568).addRange(43571,43572).addRange(43758,43759).addRange(44003,44004).addRange(44006,44007).addRange(44009,44010).addRange(69808,69810).addRange(69815,69816).addRange(69957,69958).addRange(70067,70069).addRange(70079,70080).addRange(70188,70190).addRange(70194,70195).addRange(70368,70370).addRange(70402,70403).addRange(70462,70463).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70709,70711).addRange(70720,70721).addRange(70832,70834).addRange(70843,70846).addRange(71087,71089).addRange(71096,71099).addRange(71216,71218).addRange(71227,71228).addRange(71342,71343).addRange(71456,71457).addRange(71724,71726).addRange(71984,71989).addRange(71991,71992).addRange(72145,72147).addRange(72156,72159).addRange(72279,72280).addRange(73098,73102),d.addRange(73107,73108).addRange(73461,73462).addRange(94033,94087).addRange(94192,94193).addRange(119141,119142).addRange(119149,119154),e.exports=d},38703:function(e,a,n){const d=n(82708)();d.addRange(55296,57343),e.exports=d},34345:function(e,a,n){const d=n(82708)(36,43,94,96,124,126,172,180,184,215,247,749,885,1014,1154,1547,1758,1769,2038,2184,2801,2928,3199,3407,3449,3647,3859,3892,3894,3896,5741,6107,6464,8125,8260,8274,8468,8485,8487,8489,8494,8527,12292,12320,12880,43867,64297,64975,65122,65129,65284,65291,65342,65344,65372,65374,65952,68296,71487,92997,113820,119365,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771,123215,123647,126124,126128,126254,129008);d.addRange(60,62).addRange(162,166).addRange(168,169).addRange(174,177).addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(1421,1423).addRange(1542,1544).addRange(1550,1551).addRange(1789,1790).addRange(2046,2047).addRange(2546,2547).addRange(2554,2555).addRange(3059,3066).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8314,8316).addRange(8330,8332).addRange(8352,8384).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8472).addRange(8478,8483).addRange(8506,8507).addRange(8512,8516).addRange(8522,8525).addRange(8586,8587).addRange(8592,8967).addRange(8972,9e3).addRange(9003,9254).addRange(9280,9290).addRange(9372,9449),d.addRange(9472,10087).addRange(10132,10180).addRange(10183,10213).addRange(10224,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11123).addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12443,12444).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43048,43051).addRange(43062,43065).addRange(43639,43641).addRange(43882,43883).addRange(64434,64450).addRange(64832,64847).addRange(65020,65023).addRange(65124,65126).addRange(65308,65310).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73713),d.addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121478).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767),d.addRange(129776,129782).addRange(129792,129938).addRange(129940,129994),e.exports=d},87135:function(e,a,n){const d=n(82708)(453,456,459,498,8124,8140,8188);d.addRange(8072,8079).addRange(8088,8095).addRange(8104,8111),e.exports=d},48068:function(e,a,n){const d=n(82708)(907,909,930,1328,1424,1806,2111,2143,2191,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8293,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65280,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,74863,78895,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129939);d.addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1535).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2194,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957).addRange(2966,2968).addRange(2976,2978).addRange(2981,2983),d.addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3315,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3790,3791).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887).addRange(5910,5918),d.addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279).addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630),d.addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12284,12287).addRange(12439,12440).addRange(12544,12548).addRange(12772,12783).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,55295).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65278).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489),d.addRange(65496,65497).addRange(65501,65503).addRange(65519,65528).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408),d.addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69375).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69836).addRange(69838,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70207,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71423).addRange(71451,71452),d.addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78905,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575).addRange(110883,110927),d.addRange(110931,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113828,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119275,119295).addRange(119366,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122879).addRange(122905,122906).addRange(122923,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703),d.addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128732).addRange(128749,128751).addRange(128765,128767).addRange(128884,128895).addRange(128985,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129653,129655).addRange(129661,129663).addRange(129671,129679).addRange(129709,129711).addRange(129723,129727).addRange(129734,129743).addRange(129754,129759).addRange(129768,129775).addRange(129783,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177977,177983).addRange(178206,178207).addRange(183970,183983).addRange(191457,194559).addRange(195102,196607).addRange(201547,917504).addRange(917506,917535).addRange(917632,917759).addRange(918e3,983039).addRange(1048574,1048575).addRange(1114110,1114111),e.exports=d},54508:function(e,a,n){const d=n(82708)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);d.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(11264,11311),d.addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217),e.exports=d},67309:function(e,a,n){const d=n(82708)();d.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),e.exports=d},21824:function(e,a,n){const d=n(82708)();d.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),e.exports=d},44251:function(e,a,n){const d=n(82708)();d.addRange(82944,83526),e.exports=d},93703:function(e,a,n){const d=n(82708)(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(1536,1540).addRange(1542,1547).addRange(1549,1562).addRange(1564,1566).addRange(1568,1599).addRange(1601,1610).addRange(1622,1647).addRange(1649,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64829).addRange(64832,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(69216,69246).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),e.exports=d},52003:function(e,a,n){const d=n(82708)();d.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),e.exports=d},91194:function(e,a,n){const d=n(82708)();d.addRange(68352,68405).addRange(68409,68415),e.exports=d},97148:function(e,a,n){const d=n(82708)();d.addRange(6912,6988).addRange(6992,7038),e.exports=d},92508:function(e,a,n){const d=n(82708)();d.addRange(42656,42743).addRange(92160,92728),e.exports=d},87398:function(e,a,n){const d=n(82708)();d.addRange(92880,92909).addRange(92912,92917),e.exports=d},70403:function(e,a,n){const d=n(82708)();d.addRange(7104,7155).addRange(7164,7167),e.exports=d},60285:function(e,a,n){const d=n(82708)(2482,2519);d.addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558),e.exports=d},10143:function(e,a,n){const d=n(82708)();d.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),e.exports=d},25500:function(e,a,n){const d=n(82708)();d.addRange(746,747).addRange(12549,12591).addRange(12704,12735),e.exports=d},69672:function(e,a,n){const d=n(82708)(69759);d.addRange(69632,69709).addRange(69714,69749),e.exports=d},67008:function(e,a,n){const d=n(82708)();d.addRange(10240,10495),e.exports=d},32055:function(e,a,n){const d=n(82708)();d.addRange(6656,6683).addRange(6686,6687),e.exports=d},90141:function(e,a,n){const d=n(82708)();d.addRange(5952,5971),e.exports=d},40912:function(e,a,n){const d=n(82708)();d.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),e.exports=d},68653:function(e,a,n){const d=n(82708)();d.addRange(66208,66256),e.exports=d},47231:function(e,a,n){const d=n(82708)(66927);d.addRange(66864,66915),e.exports=d},38234:function(e,a,n){const d=n(82708)();d.addRange(69888,69940).addRange(69942,69959),e.exports=d},29076:function(e,a,n){const d=n(82708)();d.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),e.exports=d},47242:function(e,a,n){const d=n(82708)();d.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),e.exports=d},91466:function(e,a,n){const d=n(82708)();d.addRange(69552,69579),e.exports=d},2325:function(e,a,n){const d=n(82708)(215,247,884,894,901,903,1541,1548,1563,1567,1600,1757,2274,3647,4347,6149,7379,7393,7418,12294,12448,13055,43310,43471,43867,65279,65392,119970,119995,120134,129008,917505);d.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(2404,2405).addRange(4053,4056).addRange(5867,5869).addRange(5941,5942).addRange(6146,6147).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(8192,8203).addRange(8206,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11869).addRange(12272,12283).addRange(12288,12292).addRange(12296,12320).addRange(12336,12343).addRange(12348,12351).addRange(12443,12444).addRange(12539,12540).addRange(12688,12703).addRange(12736,12771).addRange(12832,12895).addRange(12927,13007).addRange(13144,13311).addRange(19904,19967).addRange(42752,42785).addRange(42888,42890).addRange(43056,43065),d.addRange(43882,43883).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65381).addRange(65438,65439).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(65936,65948).addRange(66e3,66044).addRange(66273,66299).addRange(113824,113827).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269),d.addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),e.exports=d},4957:function(e,a,n){const d=n(82708)();d.addRange(994,1007).addRange(11392,11507).addRange(11513,11519),e.exports=d},51215:function(e,a,n){const d=n(82708)();d.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),e.exports=d},94221:function(e,a,n){const d=n(82708)(67592,67644,67647);d.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),e.exports=d},77004:function(e,a,n){const d=n(82708)();d.addRange(77712,77810),e.exports=d},49326:function(e,a,n){const d=n(82708)(7467,7544);d.addRange(1024,1156).addRange(1159,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071),e.exports=d},2436:function(e,a,n){const d=n(82708)();d.addRange(66560,66639),e.exports=d},76224:function(e,a,n){const d=n(82708)();d.addRange(2304,2384).addRange(2389,2403).addRange(2406,2431).addRange(43232,43263),e.exports=d},28156:function(e,a,n){const d=n(82708)(71945);d.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),e.exports=d},19019:function(e,a,n){const d=n(82708)();d.addRange(71680,71739),e.exports=d},11233:function(e,a,n){const d=n(82708)();d.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113823),e.exports=d},82904:function(e,a,n){const d=n(82708)();d.addRange(77824,78894).addRange(78896,78904),e.exports=d},50651:function(e,a,n){const d=n(82708)();d.addRange(66816,66855),e.exports=d},63404:function(e,a,n){const d=n(82708)();d.addRange(69600,69622),e.exports=d},42249:function(e,a,n){const d=n(82708)(4696,4800);d.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),e.exports=d},77113:function(e,a,n){const d=n(82708)(4295,4301,11559,11565);d.addRange(4256,4293).addRange(4304,4346).addRange(4348,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),e.exports=d},84922:function(e,a,n){const d=n(82708)();d.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),e.exports=d},8047:function(e,a,n){const d=n(82708)();d.addRange(66352,66378),e.exports=d},31338:function(e,a,n){const d=n(82708)(70480,70487);d.addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70460,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516),e.exports=d},74214:function(e,a,n){const d=n(82708)(895,900,902,908,7615,8025,8027,8029,8486,43877,65952);d.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),e.exports=d},51130:function(e,a,n){const d=n(82708)(2768);d.addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815),e.exports=d},60046:function(e,a,n){const d=n(82708)();d.addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),e.exports=d},37307:function(e,a,n){const d=n(82708)(2620,2641,2654);d.addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678),e.exports=d},77439:function(e,a,n){const d=n(82708)(12293,12295);d.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12321,12329).addRange(12344,12347).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94178,94179).addRange(94192,94193).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},73296:function(e,a,n){const d=n(82708)();d.addRange(4352,4607).addRange(12334,12335).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),e.exports=d},67439:function(e,a,n){const d=n(82708)();d.addRange(68864,68903).addRange(68912,68921),e.exports=d},71394:function(e,a,n){const d=n(82708)();d.addRange(5920,5940),e.exports=d},68092:function(e,a,n){const d=n(82708)();d.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),e.exports=d},24189:function(e,a,n){const d=n(82708)(64318);d.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),e.exports=d},84371:function(e,a,n){const d=n(82708)(127488);d.addRange(12353,12438).addRange(12445,12447).addRange(110593,110879).addRange(110928,110930),e.exports=d},10780:function(e,a,n){const d=n(82708)();d.addRange(67648,67669).addRange(67671,67679),e.exports=d},71122:function(e,a,n){const d=n(82708)(1648,7405,7412,66045,66272,70459);d.addRange(768,879).addRange(1157,1158).addRange(1611,1621).addRange(2385,2388).addRange(6832,6862).addRange(7376,7378).addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8204,8205).addRange(8400,8432).addRange(12330,12333).addRange(12441,12442).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),e.exports=d},53431:function(e,a,n){const d=n(82708)();d.addRange(68448,68466).addRange(68472,68479),e.exports=d},580:function(e,a,n){const d=n(82708)();d.addRange(68416,68437).addRange(68440,68447),e.exports=d},37174:function(e,a,n){const d=n(82708)();d.addRange(43392,43469).addRange(43472,43481).addRange(43486,43487),e.exports=d},77983:function(e,a,n){const d=n(82708)(69837);d.addRange(69760,69826),e.exports=d},29485:function(e,a,n){const d=n(82708)();d.addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314),e.exports=d},3962:function(e,a,n){const d=n(82708)(110592);d.addRange(12449,12538).addRange(12541,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65382,65391).addRange(65393,65437).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),e.exports=d},88425:function(e,a,n){const d=n(82708)(43311);d.addRange(43264,43309),e.exports=d},11648:function(e,a,n){const d=n(82708)();d.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),e.exports=d},67968:function(e,a,n){const d=n(82708)(94180);d.addRange(101120,101589),e.exports=d},21205:function(e,a,n){const d=n(82708)();d.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),e.exports=d},5794:function(e,a,n){const d=n(82708)();d.addRange(70144,70161).addRange(70163,70206),e.exports=d},95492:function(e,a,n){const d=n(82708)();d.addRange(70320,70378).addRange(70384,70393),e.exports=d},29088:function(e,a,n){const d=n(82708)(3716,3749,3782);d.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807),e.exports=d},59992:function(e,a,n){const d=n(82708)(170,186,8305,8319,8498,8526,42963);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654),e.exports=d},66891:function(e,a,n){const d=n(82708)();d.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),e.exports=d},33324:function(e,a,n){const d=n(82708)(6464);d.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),e.exports=d},74596:function(e,a,n){const d=n(82708)();d.addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),e.exports=d},1620:function(e,a,n){const d=n(82708)();d.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786),e.exports=d},42747:function(e,a,n){const d=n(82708)(73648);d.addRange(42192,42239),e.exports=d},1657:function(e,a,n){const d=n(82708)();d.addRange(66176,66204),e.exports=d},79038:function(e,a,n){const d=n(82708)(67903);d.addRange(67872,67897),e.exports=d},58990:function(e,a,n){const d=n(82708)();d.addRange(69968,70006),e.exports=d},31935:function(e,a,n){const d=n(82708)();d.addRange(73440,73464),e.exports=d},15666:function(e,a,n){const d=n(82708)();d.addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455),e.exports=d},81458:function(e,a,n){const d=n(82708)(2142);d.addRange(2112,2139),e.exports=d},49002:function(e,a,n){const d=n(82708)();d.addRange(68288,68326).addRange(68331,68342),e.exports=d},38394:function(e,a,n){const d=n(82708)();d.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),e.exports=d},13910:function(e,a,n){const d=n(82708)(73018);d.addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),e.exports=d},91850:function(e,a,n){const d=n(82708)();d.addRange(93760,93850),e.exports=d},43034:function(e,a,n){const d=n(82708)();d.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),e.exports=d},51271:function(e,a,n){const d=n(82708)();d.addRange(124928,125124).addRange(125127,125142),e.exports=d},70039:function(e,a,n){const d=n(82708)();d.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),e.exports=d},28978:function(e,a,n){const d=n(82708)();d.addRange(67968,67999),e.exports=d},41801:function(e,a,n){const d=n(82708)();d.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),e.exports=d},28146:function(e,a,n){const d=n(82708)();d.addRange(71168,71236).addRange(71248,71257),e.exports=d},34848:function(e,a,n){const d=n(82708)(6148);d.addRange(6144,6145).addRange(6150,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),e.exports=d},75485:function(e,a,n){const d=n(82708)();d.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),e.exports=d},45988:function(e,a,n){const d=n(82708)(70280);d.addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),e.exports=d},76042:function(e,a,n){const d=n(82708)();d.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),e.exports=d},81263:function(e,a,n){const d=n(82708)();d.addRange(67712,67742).addRange(67751,67759),e.exports=d},16087:function(e,a,n){const d=n(82708)();d.addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),e.exports=d},93938:function(e,a,n){const d=n(82708)();d.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),e.exports=d},12645:function(e,a,n){const d=n(82708)();d.addRange(70656,70747).addRange(70749,70753),e.exports=d},41687:function(e,a,n){const d=n(82708)();d.addRange(1984,2042).addRange(2045,2047),e.exports=d},19566:function(e,a,n){const d=n(82708)(94177);d.addRange(110960,111355),e.exports=d},57324:function(e,a,n){const d=n(82708)();d.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),e.exports=d},28054:function(e,a,n){const d=n(82708)();d.addRange(5760,5788),e.exports=d},50326:function(e,a,n){const d=n(82708)();d.addRange(7248,7295),e.exports=d},89704:function(e,a,n){const d=n(82708)();d.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),e.exports=d},81737:function(e,a,n){const d=n(82708)();d.addRange(66304,66339).addRange(66349,66351),e.exports=d},60623:function(e,a,n){const d=n(82708)();d.addRange(68224,68255),e.exports=d},84547:function(e,a,n){const d=n(82708)();d.addRange(66384,66426),e.exports=d},4062:function(e,a,n){const d=n(82708)();d.addRange(66464,66499).addRange(66504,66517),e.exports=d},91435:function(e,a,n){const d=n(82708)();d.addRange(69376,69415),e.exports=d},17744:function(e,a,n){const d=n(82708)();d.addRange(68192,68223),e.exports=d},85004:function(e,a,n){const d=n(82708)();d.addRange(68608,68680),e.exports=d},56299:function(e,a,n){const d=n(82708)();d.addRange(69488,69513),e.exports=d},61702:function(e,a,n){const d=n(82708)();d.addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),e.exports=d},66820:function(e,a,n){const d=n(82708)();d.addRange(66736,66771).addRange(66776,66811),e.exports=d},68741:function(e,a,n){const d=n(82708)();d.addRange(66688,66717).addRange(66720,66729),e.exports=d},43421:function(e,a,n){const d=n(82708)();d.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),e.exports=d},71540:function(e,a,n){const d=n(82708)();d.addRange(67680,67711),e.exports=d},1646:function(e,a,n){const d=n(82708)();d.addRange(72384,72440),e.exports=d},79532:function(e,a,n){const d=n(82708)();d.addRange(43072,43127),e.exports=d},17297:function(e,a,n){const d=n(82708)(67871);d.addRange(67840,67867),e.exports=d},59563:function(e,a,n){const d=n(82708)();d.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),e.exports=d},15670:function(e,a,n){const d=n(82708)(43359);d.addRange(43312,43347),e.exports=d},15180:function(e,a,n){const d=n(82708)();d.addRange(5792,5866).addRange(5870,5880),e.exports=d},85123:function(e,a,n){const d=n(82708)();d.addRange(2048,2093).addRange(2096,2110),e.exports=d},40061:function(e,a,n){const d=n(82708)();d.addRange(43136,43205).addRange(43214,43225),e.exports=d},72487:function(e,a,n){const d=n(82708)();d.addRange(70016,70111),e.exports=d},59504:function(e,a,n){const d=n(82708)();d.addRange(66640,66687),e.exports=d},565:function(e,a,n){const d=n(82708)();d.addRange(71040,71093).addRange(71096,71133),e.exports=d},19877:function(e,a,n){const d=n(82708)();d.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),e.exports=d},66662:function(e,a,n){const d=n(82708)(3517,3530,3542);d.addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),e.exports=d},11761:function(e,a,n){const d=n(82708)();d.addRange(69424,69465),e.exports=d},35055:function(e,a,n){const d=n(82708)();d.addRange(69840,69864).addRange(69872,69881),e.exports=d},62187:function(e,a,n){const d=n(82708)();d.addRange(72272,72354),e.exports=d},78461:function(e,a,n){const d=n(82708)();d.addRange(7040,7103).addRange(7360,7367),e.exports=d},74405:function(e,a,n){const d=n(82708)();d.addRange(43008,43052),e.exports=d},15815:function(e,a,n){const d=n(82708)();d.addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),e.exports=d},2333:function(e,a,n){const d=n(82708)(5919);d.addRange(5888,5909),e.exports=d},38249:function(e,a,n){const d=n(82708)();d.addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),e.exports=d},29852:function(e,a,n){const d=n(82708)();d.addRange(6480,6509).addRange(6512,6516),e.exports=d},59997:function(e,a,n){const d=n(82708)();d.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),e.exports=d},92465:function(e,a,n){const d=n(82708)();d.addRange(43648,43714).addRange(43739,43743),e.exports=d},95234:function(e,a,n){const d=n(82708)();d.addRange(71296,71353).addRange(71360,71369),e.exports=d},59527:function(e,a,n){const d=n(82708)(2972,3024,3031,73727);d.addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(73664,73713),e.exports=d},946:function(e,a,n){const d=n(82708)();d.addRange(92784,92862).addRange(92864,92873),e.exports=d},86011:function(e,a,n){const d=n(82708)(94176);d.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),e.exports=d},4866:function(e,a,n){const d=n(82708)(3165);d.addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),e.exports=d},36876:function(e,a,n){const d=n(82708)();d.addRange(1920,1969),e.exports=d},71517:function(e,a,n){const d=n(82708)();d.addRange(3585,3642).addRange(3648,3675),e.exports=d},49897:function(e,a,n){const d=n(82708)();d.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),e.exports=d},71384:function(e,a,n){const d=n(82708)(11647);d.addRange(11568,11623).addRange(11631,11632),e.exports=d},51862:function(e,a,n){const d=n(82708)();d.addRange(70784,70855).addRange(70864,70873),e.exports=d},79830:function(e,a,n){const d=n(82708)();d.addRange(123536,123566),e.exports=d},92019:function(e,a,n){const d=n(82708)(66463);d.addRange(66432,66461),e.exports=d},57677:function(e,a,n){const d=n(82708)();d.addRange(42240,42539),e.exports=d},10301:function(e,a,n){const d=n(82708)();d.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),e.exports=d},12679:function(e,a,n){const d=n(82708)(123647);d.addRange(123584,123641),e.exports=d},79917:function(e,a,n){const d=n(82708)(71935);d.addRange(71840,71922),e.exports=d},33172:function(e,a,n){const d=n(82708)();d.addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),e.exports=d},94344:function(e,a,n){const d=n(82708)();d.addRange(40960,42124).addRange(42128,42182),e.exports=d},90753:function(e,a,n){const d=n(82708)();d.addRange(72192,72263),e.exports=d},38937:function(e,a,n){const d=n(82708)(1567,1600);d.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),e.exports=d},9811:function(e,a,n){const d=n(82708)();d.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),e.exports=d},11878:function(e,a,n){const d=n(82708)();d.addRange(82944,83526),e.exports=d},98988:function(e,a,n){const d=n(82708)(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);d.addRange(1536,1540).addRange(1542,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(66272,66299).addRange(69216,69246).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),e.exports=d},50944:function(e,a,n){const d=n(82708)();d.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),e.exports=d},96478:function(e,a,n){const d=n(82708)();d.addRange(68352,68405).addRange(68409,68415),e.exports=d},28898:function(e,a,n){const d=n(82708)();d.addRange(6912,6988).addRange(6992,7038),e.exports=d},42809:function(e,a,n){const d=n(82708)();d.addRange(42656,42743).addRange(92160,92728),e.exports=d},36382:function(e,a,n){const d=n(82708)();d.addRange(92880,92909).addRange(92912,92917),e.exports=d},18210:function(e,a,n){const d=n(82708)();d.addRange(7104,7155).addRange(7164,7167),e.exports=d},39762:function(e,a,n){const d=n(82708)(2482,2519,7376,7378,7384,7393,7402,7405,7410,43249);d.addRange(2385,2386).addRange(2404,2405).addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(7381,7382).addRange(7413,7415),e.exports=d},69666:function(e,a,n){const d=n(82708)();d.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),e.exports=d},87754:function(e,a,n){const d=n(82708)(12336,12343,12539);d.addRange(746,747).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12330,12333).addRange(12549,12591).addRange(12704,12735).addRange(65093,65094).addRange(65377,65381),e.exports=d},94830:function(e,a,n){const d=n(82708)(69759);d.addRange(69632,69709).addRange(69714,69749),e.exports=d},65528:function(e,a,n){const d=n(82708)();d.addRange(10240,10495),e.exports=d},3789:function(e,a,n){const d=n(82708)(43471);d.addRange(6656,6683).addRange(6686,6687),e.exports=d},53126:function(e,a,n){const d=n(82708)();d.addRange(5941,5942).addRange(5952,5971),e.exports=d},61228:function(e,a,n){const d=n(82708)();d.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),e.exports=d},26604:function(e,a,n){const d=n(82708)();d.addRange(66208,66256),e.exports=d},68874:function(e,a,n){const d=n(82708)(66927);d.addRange(66864,66915),e.exports=d},57717:function(e,a,n){const d=n(82708)();d.addRange(2534,2543).addRange(4160,4169).addRange(69888,69940).addRange(69942,69959),e.exports=d},50272:function(e,a,n){const d=n(82708)();d.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),e.exports=d},48334:function(e,a,n){const d=n(82708)();d.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),e.exports=d},61166:function(e,a,n){const d=n(82708)();d.addRange(69552,69579),e.exports=d},73219:function(e,a,n){const d=n(82708)(215,247,884,894,901,903,1541,1757,2274,3647,12288,12292,12306,12320,12342,12927,13311,43867,65279,119970,119995,120134,129008,917505);d.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(4053,4056).addRange(5867,5869).addRange(8192,8203).addRange(8206,8238).addRange(8240,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11842).addRange(11844,11869).addRange(12272,12283).addRange(12872,12895).addRange(12977,12991).addRange(13004,13007).addRange(13169,13178).addRange(13184,13279).addRange(19904,19967).addRange(42760,42785).addRange(42888,42890).addRange(43882,43883).addRange(65040,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65376).addRange(65504,65510).addRange(65512,65518),d.addRange(65529,65533).addRange(65936,65948).addRange(66e3,66044).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119520,119539).addRange(119552,119638).addRange(119666,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984),d.addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),e.exports=d},33538:function(e,a,n){const d=n(82708)();d.addRange(994,1007).addRange(11392,11507).addRange(11513,11519).addRange(66272,66299),e.exports=d},59678:function(e,a,n){const d=n(82708)();d.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),e.exports=d},45995:function(e,a,n){const d=n(82708)(67592,67644,67647);d.addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),e.exports=d},19536:function(e,a,n){const d=n(82708)();d.addRange(65792,65793).addRange(77712,77810),e.exports=d},18638:function(e,a,n){const d=n(82708)(7467,7544,7672,11843);d.addRange(1024,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071),e.exports=d},77756:function(e,a,n){const d=n(82708)();d.addRange(66560,66639),e.exports=d},85640:function(e,a,n){const d=n(82708)(8432);d.addRange(2304,2386).addRange(2389,2431).addRange(7376,7414).addRange(7416,7417).addRange(43056,43065).addRange(43232,43263),e.exports=d},97606:function(e,a,n){const d=n(82708)(71945);d.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),e.exports=d},80650:function(e,a,n){const d=n(82708)();d.addRange(2404,2415).addRange(43056,43065).addRange(71680,71739),e.exports=d},4539:function(e,a,n){const d=n(82708)();d.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113827),e.exports=d},41585:function(e,a,n){const d=n(82708)();d.addRange(77824,78894).addRange(78896,78904),e.exports=d},40751:function(e,a,n){const d=n(82708)();d.addRange(66816,66855),e.exports=d},8933:function(e,a,n){const d=n(82708)();d.addRange(69600,69622),e.exports=d},56370:function(e,a,n){const d=n(82708)(4696,4800);d.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),e.exports=d},60656:function(e,a,n){const d=n(82708)(4295,4301,11559,11565);d.addRange(4256,4293).addRange(4304,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),e.exports=d},22125:function(e,a,n){const d=n(82708)(1156,1159,11843,42607);d.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),e.exports=d},56298:function(e,a,n){const d=n(82708)();d.addRange(66352,66378),e.exports=d},86631:function(e,a,n){const d=n(82708)(7376,8432,70480,70487,73683);d.addRange(2385,2386).addRange(2404,2405).addRange(3046,3059).addRange(7378,7379).addRange(7410,7412).addRange(7416,7417).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(73680,73681),e.exports=d},80161:function(e,a,n){const d=n(82708)(834,837,895,900,902,908,8025,8027,8029,8486,43877,65952);d.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7615,7617).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),e.exports=d},41962:function(e,a,n){const d=n(82708)(2768);d.addRange(2385,2386).addRange(2404,2405).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(43056,43065),e.exports=d},46189:function(e,a,n){const d=n(82708)();d.addRange(2404,2405).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),e.exports=d},8194:function(e,a,n){const d=n(82708)(2620,2641,2654);d.addRange(2385,2386).addRange(2404,2405).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(43056,43065),e.exports=d},5545:function(e,a,n){const d=n(82708)(12336,12539,13055);d.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12289,12291).addRange(12293,12305).addRange(12307,12319).addRange(12321,12333).addRange(12343,12351).addRange(12688,12703).addRange(12736,12771).addRange(12832,12871).addRange(12928,12976).addRange(12992,13003).addRange(13144,13168).addRange(13179,13183).addRange(13280,13310).addRange(13312,19903).addRange(19968,40959).addRange(42752,42759).addRange(63744,64109).addRange(64112,64217).addRange(65093,65094).addRange(65377,65381).addRange(94178,94179).addRange(94192,94193).addRange(119648,119665).addRange(127568,127569).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),e.exports=d},94337:function(e,a,n){const d=n(82708)(12343,12539);d.addRange(4352,4607).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12334,12336).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65093,65094).addRange(65377,65381).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),e.exports=d},25890:function(e,a,n){const d=n(82708)(1548,1563,1567,1600,1748);d.addRange(68864,68903).addRange(68912,68921),e.exports=d},54191:function(e,a,n){const d=n(82708)();d.addRange(5920,5942),e.exports=d},62640:function(e,a,n){const d=n(82708)();d.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),e.exports=d},26210:function(e,a,n){const d=n(82708)(64318);d.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),e.exports=d},4645:function(e,a,n){const d=n(82708)(12343,65392,127488);d.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12353,12438).addRange(12441,12448).addRange(12539,12540).addRange(65093,65094).addRange(65377,65381).addRange(65438,65439).addRange(110593,110879).addRange(110928,110930),e.exports=d},47790:function(e,a,n){const d=n(82708)();d.addRange(67648,67669).addRange(67671,67679),e.exports=d},65719:function(e,a,n){const d=n(82708)(7673,66045);d.addRange(768,833).addRange(835,836).addRange(838,866).addRange(2387,2388).addRange(6832,6862).addRange(7618,7671).addRange(7675,7679).addRange(8204,8205).addRange(8400,8431).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),e.exports=d},58626:function(e,a,n){const d=n(82708)();d.addRange(68448,68466).addRange(68472,68479),e.exports=d},50167:function(e,a,n){const d=n(82708)();d.addRange(68416,68437).addRange(68440,68447),e.exports=d},29743:function(e,a,n){const d=n(82708)();d.addRange(43392,43469).addRange(43471,43481).addRange(43486,43487),e.exports=d},11958:function(e,a,n){const d=n(82708)(69837);d.addRange(2406,2415).addRange(43056,43065).addRange(69760,69826),e.exports=d},26161:function(e,a,n){const d=n(82708)(7376,7378,7386,7410,7412);d.addRange(2385,2386).addRange(2404,2405).addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(43056,43061),e.exports=d},58831:function(e,a,n){const d=n(82708)(12343,110592);d.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12441,12444).addRange(12448,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65093,65094).addRange(65377,65439).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),e.exports=d},65916:function(e,a,n){const d=n(82708)();d.addRange(43264,43311),e.exports=d},97319:function(e,a,n){const d=n(82708)();d.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),e.exports=d},82273:function(e,a,n){const d=n(82708)(94180);d.addRange(101120,101589),e.exports=d},21654:function(e,a,n){const d=n(82708)();d.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),e.exports=d},60840:function(e,a,n){const d=n(82708)();d.addRange(2790,2799).addRange(43056,43065).addRange(70144,70161).addRange(70163,70206),e.exports=d},84937:function(e,a,n){const d=n(82708)();d.addRange(2404,2405).addRange(43056,43065).addRange(70320,70378).addRange(70384,70393),e.exports=d},3895:function(e,a,n){const d=n(82708)(3716,3749,3782);d.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807),e.exports=d},34462:function(e,a,n){const d=n(82708)(170,186,4347,8239,8305,8319,8432,8498,8526,42963,43310);d.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(867,879).addRange(1157,1158).addRange(2385,2386).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42752,42759).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654),e.exports=d},55753:function(e,a,n){const d=n(82708)();d.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),e.exports=d},82970:function(e,a,n){const d=n(82708)(2405,6464);d.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),e.exports=d},61456:function(e,a,n){const d=n(82708)();d.addRange(65799,65843).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),e.exports=d},7475:function(e,a,n){const d=n(82708)();d.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855),e.exports=d},82841:function(e,a,n){const d=n(82708)(73648);d.addRange(42192,42239),e.exports=d},25245:function(e,a,n){const d=n(82708)();d.addRange(66176,66204),e.exports=d},40610:function(e,a,n){const d=n(82708)(67903);d.addRange(67872,67897),e.exports=d},71461:function(e,a,n){const d=n(82708)();d.addRange(2404,2415).addRange(43056,43065).addRange(69968,70006),e.exports=d},90995:function(e,a,n){const d=n(82708)();d.addRange(73440,73464),e.exports=d},4201:function(e,a,n){const d=n(82708)(7386);d.addRange(2385,2386).addRange(2404,2405).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(43056,43058),e.exports=d},85976:function(e,a,n){const d=n(82708)(1600,2142);d.addRange(2112,2139),e.exports=d},61361:function(e,a,n){const d=n(82708)(1600);d.addRange(68288,68326).addRange(68331,68342),e.exports=d},51089:function(e,a,n){const d=n(82708)();d.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),e.exports=d},75850:function(e,a,n){const d=n(82708)(73018);d.addRange(2404,2405).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),e.exports=d},35394:function(e,a,n){const d=n(82708)();d.addRange(93760,93850),e.exports=d},65222:function(e,a,n){const d=n(82708)();d.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),e.exports=d},56734:function(e,a,n){const d=n(82708)();d.addRange(124928,125124).addRange(125127,125142),e.exports=d},48438:function(e,a,n){const d=n(82708)();d.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),e.exports=d},63315:function(e,a,n){const d=n(82708)();d.addRange(67968,67999),e.exports=d},89426:function(e,a,n){const d=n(82708)();d.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),e.exports=d},56126:function(e,a,n){const d=n(82708)();d.addRange(43056,43065).addRange(71168,71236).addRange(71248,71257),e.exports=d},48441:function(e,a,n){const d=n(82708)(8239);d.addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),e.exports=d},96237:function(e,a,n){const d=n(82708)();d.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),e.exports=d},12152:function(e,a,n){const d=n(82708)(70280);d.addRange(2662,2671).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),e.exports=d},88384:function(e,a,n){const d=n(82708)(43310);d.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),e.exports=d},22445:function(e,a,n){const d=n(82708)();d.addRange(67712,67742).addRange(67751,67759),e.exports=d},54947:function(e,a,n){const d=n(82708)(7401,7410,7418);d.addRange(2404,2405).addRange(3302,3311).addRange(43056,43061).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),e.exports=d},25650:function(e,a,n){const d=n(82708)();d.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),e.exports=d},997:function(e,a,n){const d=n(82708)();d.addRange(70656,70747).addRange(70749,70753),e.exports=d},35334:function(e,a,n){const d=n(82708)(1548,1563,1567);d.addRange(1984,2042).addRange(2045,2047).addRange(64830,64831),e.exports=d},38408:function(e,a,n){const d=n(82708)(94177);d.addRange(110960,111355),e.exports=d},53615:function(e,a,n){const d=n(82708)();d.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),e.exports=d},72435:function(e,a,n){const d=n(82708)();d.addRange(5760,5788),e.exports=d},6286:function(e,a,n){const d=n(82708)();d.addRange(7248,7295),e.exports=d},10512:function(e,a,n){const d=n(82708)();d.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),e.exports=d},7259:function(e,a,n){const d=n(82708)();d.addRange(66304,66339).addRange(66349,66351),e.exports=d},79715:function(e,a,n){const d=n(82708)();d.addRange(68224,68255),e.exports=d},84513:function(e,a,n){const d=n(82708)(1155);d.addRange(66384,66426),e.exports=d},29058:function(e,a,n){const d=n(82708)();d.addRange(66464,66499).addRange(66504,66517),e.exports=d},22883:function(e,a,n){const d=n(82708)();d.addRange(69376,69415),e.exports=d},25750:function(e,a,n){const d=n(82708)();d.addRange(68192,68223),e.exports=d},38028:function(e,a,n){const d=n(82708)();d.addRange(68608,68680),e.exports=d},82038:function(e,a,n){const d=n(82708)(1600,68338);d.addRange(69488,69513),e.exports=d},93543:function(e,a,n){const d=n(82708)(7386,7410);d.addRange(2385,2386).addRange(2404,2405).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),e.exports=d},55599:function(e,a,n){const d=n(82708)();d.addRange(66736,66771).addRange(66776,66811),e.exports=d},6499:function(e,a,n){const d=n(82708)();d.addRange(66688,66717).addRange(66720,66729),e.exports=d},87093:function(e,a,n){const d=n(82708)();d.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),e.exports=d},33203:function(e,a,n){const d=n(82708)();d.addRange(67680,67711),e.exports=d},32175:function(e,a,n){const d=n(82708)();d.addRange(72384,72440),e.exports=d},80475:function(e,a,n){const d=n(82708)(6149);d.addRange(6146,6147).addRange(43072,43127),e.exports=d},88683:function(e,a,n){const d=n(82708)(67871);d.addRange(67840,67867),e.exports=d},13132:function(e,a,n){const d=n(82708)(1600);d.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),e.exports=d},10643:function(e,a,n){const d=n(82708)(43359);d.addRange(43312,43347),e.exports=d},92370:function(e,a,n){const d=n(82708)();d.addRange(5792,5866).addRange(5870,5880),e.exports=d},62803:function(e,a,n){const d=n(82708)();d.addRange(2048,2093).addRange(2096,2110),e.exports=d},69504:function(e,a,n){const d=n(82708)();d.addRange(43136,43205).addRange(43214,43225),e.exports=d},57957:function(e,a,n){const d=n(82708)(2385,7383,7385,7392);d.addRange(7388,7389).addRange(70016,70111),e.exports=d},15581:function(e,a,n){const d=n(82708)();d.addRange(66640,66687),e.exports=d},45898:function(e,a,n){const d=n(82708)();d.addRange(71040,71093).addRange(71096,71133),e.exports=d},73338:function(e,a,n){const d=n(82708)();d.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),e.exports=d},54400:function(e,a,n){const d=n(82708)(3517,3530,3542);d.addRange(2404,2405).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),e.exports=d},69554:function(e,a,n){const d=n(82708)(1600);d.addRange(69424,69465),e.exports=d},82168:function(e,a,n){const d=n(82708)();d.addRange(69840,69864).addRange(69872,69881),e.exports=d},55339:function(e,a,n){const d=n(82708)();d.addRange(72272,72354),e.exports=d},17361:function(e,a,n){const d=n(82708)();d.addRange(7040,7103).addRange(7360,7367),e.exports=d},7453:function(e,a,n){const d=n(82708)();d.addRange(2404,2405).addRange(2534,2543).addRange(43008,43052),e.exports=d},49190:function(e,a,n){const d=n(82708)(1548,1567,1600,1648,7672,7674);d.addRange(1563,1564).addRange(1611,1621).addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),e.exports=d},78050:function(e,a,n){const d=n(82708)(5919);d.addRange(5888,5909).addRange(5941,5942),e.exports=d},6896:function(e,a,n){const d=n(82708)();d.addRange(5941,5942).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),e.exports=d},30486:function(e,a,n){const d=n(82708)();d.addRange(4160,4169).addRange(6480,6509).addRange(6512,6516),e.exports=d},43272:function(e,a,n){const d=n(82708)();d.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),e.exports=d},2338:function(e,a,n){const d=n(82708)();d.addRange(43648,43714).addRange(43739,43743),e.exports=d},15222:function(e,a,n){const d=n(82708)();d.addRange(2404,2405).addRange(43056,43065).addRange(71296,71353).addRange(71360,71369),e.exports=d},25234:function(e,a,n){const d=n(82708)(2972,3024,3031,7386,43251,70401,70403,73727);d.addRange(2385,2386).addRange(2404,2405).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(70459,70460).addRange(73664,73713),e.exports=d},14113:function(e,a,n){const d=n(82708)();d.addRange(92784,92862).addRange(92864,92873),e.exports=d},12606:function(e,a,n){const d=n(82708)(94176);d.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),e.exports=d},60209:function(e,a,n){const d=n(82708)(3165,7386,7410);d.addRange(2385,2386).addRange(2404,2405).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),e.exports=d},34190:function(e,a,n){const d=n(82708)(1548,1567,65010,65021);d.addRange(1563,1564).addRange(1632,1641).addRange(1920,1969),e.exports=d},24815:function(e,a,n){const d=n(82708)();d.addRange(3585,3642).addRange(3648,3675),e.exports=d},65333:function(e,a,n){const d=n(82708)();d.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),e.exports=d},98578:function(e,a,n){const d=n(82708)(11647);d.addRange(11568,11623).addRange(11631,11632),e.exports=d},25740:function(e,a,n){const d=n(82708)(7410);d.addRange(2385,2386).addRange(2404,2405).addRange(43056,43065).addRange(70784,70855).addRange(70864,70873),e.exports=d},20190:function(e,a,n){const d=n(82708)();d.addRange(123536,123566),e.exports=d},41418:function(e,a,n){const d=n(82708)(66463);d.addRange(66432,66461),e.exports=d},95619:function(e,a,n){const d=n(82708)();d.addRange(42240,42539),e.exports=d},4862:function(e,a,n){const d=n(82708)();d.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),e.exports=d},80134:function(e,a,n){const d=n(82708)(123647);d.addRange(123584,123641),e.exports=d},61158:function(e,a,n){const d=n(82708)(71935);d.addRange(71840,71922),e.exports=d},25:function(e,a,n){const d=n(82708)(1548,1563,1567);d.addRange(1632,1641).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),e.exports=d},47685:function(e,a,n){const d=n(82708)(12539);d.addRange(12289,12290).addRange(12296,12305).addRange(12308,12315).addRange(40960,42124).addRange(42128,42182).addRange(65377,65381),e.exports=d},92290:function(e,a,n){const d=n(82708)();d.addRange(72192,72263),e.exports=d},31714:function(e){e.exports=new Map([["General_Category",["Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Number","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Symbol","Titlecase_Letter","Unassigned","Uppercase_Letter"]],["Script",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Script_Extensions",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Binary_Property",["ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]]])},35362:function(e){e.exports="14.0.0"},39555:function(e,a,n){"use strict";const d=n(82708);a.REGULAR=new Map([["d",d().addRange(48,57)],["D",d().addRange(0,47).addRange(58,65535)],["s",d(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",d().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535)],["w",d(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",d(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)]]),a.UNICODE=new Map([["d",d().addRange(48,57)],["D",d().addRange(0,47).addRange(58,1114111)],["s",d(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",d().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",d(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",d(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)]]),a.UNICODE_IGNORE_CASE=new Map([["d",d().addRange(48,57)],["D",d().addRange(0,47).addRange(58,1114111)],["s",d(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",d().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",d(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122)],["W",d(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,382).addRange(384,8489).addRange(8491,1114111)]])},94900:function(e){e.exports=new Map([[75,8490],[83,383],[107,8490],[115,383],[181,924],[197,8491],[223,7838],[229,8491],[383,83],[452,453],[453,452],[455,456],[456,455],[458,459],[459,458],[497,498],[498,497],[837,8126],[914,976],[917,1013],[920,1012],[921,8126],[922,1008],[924,181],[928,982],[929,1009],[931,962],[934,981],[937,8486],[952,1012],[962,931],[969,8486],[976,914],[977,1012],[981,934],[982,928],[1008,922],[1009,929],[1012,[920,977,952]],[1013,917],[1042,7296],[1044,7297],[1054,7298],[1057,7299],[1058,7301],[1066,7302],[1122,7303],[7296,1042],[7297,1044],[7298,1054],[7299,1057],[7300,7301],[7301,[1058,7300]],[7302,1066],[7303,1122],[7304,42570],[7776,7835],[7835,7776],[7838,223],[8064,8072],[8065,8073],[8066,8074],[8067,8075],[8068,8076],[8069,8077],[8070,8078],[8071,8079],[8072,8064],[8073,8065],[8074,8066],[8075,8067],[8076,8068],[8077,8069],[8078,8070],[8079,8071],[8080,8088],[8081,8089],[8082,8090],[8083,8091],[8084,8092],[8085,8093],[8086,8094],[8087,8095],[8088,8080],[8089,8081],[8090,8082],[8091,8083],[8092,8084],[8093,8085],[8094,8086],[8095,8087],[8096,8104],[8097,8105],[8098,8106],[8099,8107],[8100,8108],[8101,8109],[8102,8110],[8103,8111],[8104,8096],[8105,8097],[8106,8098],[8107,8099],[8108,8100],[8109,8101],[8110,8102],[8111,8103],[8115,8124],[8124,8115],[8126,[837,921]],[8131,8140],[8140,8131],[8179,8188],[8188,8179],[8486,[937,969]],[8490,75],[8491,[197,229]],[11311,11359],[11359,11311],[42570,7304],[42944,42945],[42945,42944],[42960,42961],[42961,42960],[42966,42967],[42967,42966],[42968,42969],[42969,42968],[66560,66600],[66561,66601],[66562,66602],[66563,66603],[66564,66604],[66565,66605],[66566,66606],[66567,66607],[66568,66608],[66569,66609],[66570,66610],[66571,66611],[66572,66612],[66573,66613],[66574,66614],[66575,66615],[66576,66616],[66577,66617],[66578,66618],[66579,66619],[66580,66620],[66581,66621],[66582,66622],[66583,66623],[66584,66624],[66585,66625],[66586,66626],[66587,66627],[66588,66628],[66589,66629],[66590,66630],[66591,66631],[66592,66632],[66593,66633],[66594,66634],[66595,66635],[66596,66636],[66597,66637],[66598,66638],[66599,66639],[66600,66560],[66601,66561],[66602,66562],[66603,66563],[66604,66564],[66605,66565],[66606,66566],[66607,66567],[66608,66568],[66609,66569],[66610,66570],[66611,66571],[66612,66572],[66613,66573],[66614,66574],[66615,66575],[66616,66576],[66617,66577],[66618,66578],[66619,66579],[66620,66580],[66621,66581],[66622,66582],[66623,66583],[66624,66584],[66625,66585],[66626,66586],[66627,66587],[66628,66588],[66629,66589],[66630,66590],[66631,66591],[66632,66592],[66633,66593],[66634,66594],[66635,66595],[66636,66596],[66637,66597],[66638,66598],[66639,66599],[66736,66776],[66737,66777],[66738,66778],[66739,66779],[66740,66780],[66741,66781],[66742,66782],[66743,66783],[66744,66784],[66745,66785],[66746,66786],[66747,66787],[66748,66788],[66749,66789],[66750,66790],[66751,66791],[66752,66792],[66753,66793],[66754,66794],[66755,66795],[66756,66796],[66757,66797],[66758,66798],[66759,66799],[66760,66800],[66761,66801],[66762,66802],[66763,66803],[66764,66804],[66765,66805],[66766,66806],[66767,66807],[66768,66808],[66769,66809],[66770,66810],[66771,66811],[66776,66736],[66777,66737],[66778,66738],[66779,66739],[66780,66740],[66781,66741],[66782,66742],[66783,66743],[66784,66744],[66785,66745],[66786,66746],[66787,66747],[66788,66748],[66789,66749],[66790,66750],[66791,66751],[66792,66752],[66793,66753],[66794,66754],[66795,66755],[66796,66756],[66797,66757],[66798,66758],[66799,66759],[66800,66760],[66801,66761],[66802,66762],[66803,66763],[66804,66764],[66805,66765],[66806,66766],[66807,66767],[66808,66768],[66809,66769],[66810,66770],[66811,66771],[66928,66967],[66929,66968],[66930,66969],[66931,66970],[66932,66971],[66933,66972],[66934,66973],[66935,66974],[66936,66975],[66937,66976],[66938,66977],[66940,66979],[66941,66980],[66942,66981],[66943,66982],[66944,66983],[66945,66984],[66946,66985],[66947,66986],[66948,66987],[66949,66988],[66950,66989],[66951,66990],[66952,66991],[66953,66992],[66954,66993],[66956,66995],[66957,66996],[66958,66997],[66959,66998],[66960,66999],[66961,67e3],[66962,67001],[66964,67003],[66965,67004],[66967,66928],[66968,66929],[66969,66930],[66970,66931],[66971,66932],[66972,66933],[66973,66934],[66974,66935],[66975,66936],[66976,66937],[66977,66938],[66979,66940],[66980,66941],[66981,66942],[66982,66943],[66983,66944],[66984,66945],[66985,66946],[66986,66947],[66987,66948],[66988,66949],[66989,66950],[66990,66951],[66991,66952],[66992,66953],[66993,66954],[66995,66956],[66996,66957],[66997,66958],[66998,66959],[66999,66960],[67e3,66961],[67001,66962],[67003,66964],[67004,66965],[68736,68800],[68737,68801],[68738,68802],[68739,68803],[68740,68804],[68741,68805],[68742,68806],[68743,68807],[68744,68808],[68745,68809],[68746,68810],[68747,68811],[68748,68812],[68749,68813],[68750,68814],[68751,68815],[68752,68816],[68753,68817],[68754,68818],[68755,68819],[68756,68820],[68757,68821],[68758,68822],[68759,68823],[68760,68824],[68761,68825],[68762,68826],[68763,68827],[68764,68828],[68765,68829],[68766,68830],[68767,68831],[68768,68832],[68769,68833],[68770,68834],[68771,68835],[68772,68836],[68773,68837],[68774,68838],[68775,68839],[68776,68840],[68777,68841],[68778,68842],[68779,68843],[68780,68844],[68781,68845],[68782,68846],[68783,68847],[68784,68848],[68785,68849],[68786,68850],[68800,68736],[68801,68737],[68802,68738],[68803,68739],[68804,68740],[68805,68741],[68806,68742],[68807,68743],[68808,68744],[68809,68745],[68810,68746],[68811,68747],[68812,68748],[68813,68749],[68814,68750],[68815,68751],[68816,68752],[68817,68753],[68818,68754],[68819,68755],[68820,68756],[68821,68757],[68822,68758],[68823,68759],[68824,68760],[68825,68761],[68826,68762],[68827,68763],[68828,68764],[68829,68765],[68830,68766],[68831,68767],[68832,68768],[68833,68769],[68834,68770],[68835,68771],[68836,68772],[68837,68773],[68838,68774],[68839,68775],[68840,68776],[68841,68777],[68842,68778],[68843,68779],[68844,68780],[68845,68781],[68846,68782],[68847,68783],[68848,68784],[68849,68785],[68850,68786],[71840,71872],[71841,71873],[71842,71874],[71843,71875],[71844,71876],[71845,71877],[71846,71878],[71847,71879],[71848,71880],[71849,71881],[71850,71882],[71851,71883],[71852,71884],[71853,71885],[71854,71886],[71855,71887],[71856,71888],[71857,71889],[71858,71890],[71859,71891],[71860,71892],[71861,71893],[71862,71894],[71863,71895],[71864,71896],[71865,71897],[71866,71898],[71867,71899],[71868,71900],[71869,71901],[71870,71902],[71871,71903],[71872,71840],[71873,71841],[71874,71842],[71875,71843],[71876,71844],[71877,71845],[71878,71846],[71879,71847],[71880,71848],[71881,71849],[71882,71850],[71883,71851],[71884,71852],[71885,71853],[71886,71854],[71887,71855],[71888,71856],[71889,71857],[71890,71858],[71891,71859],[71892,71860],[71893,71861],[71894,71862],[71895,71863],[71896,71864],[71897,71865],[71898,71866],[71899,71867],[71900,71868],[71901,71869],[71902,71870],[71903,71871],[93760,93792],[93761,93793],[93762,93794],[93763,93795],[93764,93796],[93765,93797],[93766,93798],[93767,93799],[93768,93800],[93769,93801],[93770,93802],[93771,93803],[93772,93804],[93773,93805],[93774,93806],[93775,93807],[93776,93808],[93777,93809],[93778,93810],[93779,93811],[93780,93812],[93781,93813],[93782,93814],[93783,93815],[93784,93816],[93785,93817],[93786,93818],[93787,93819],[93788,93820],[93789,93821],[93790,93822],[93791,93823],[93792,93760],[93793,93761],[93794,93762],[93795,93763],[93796,93764],[93797,93765],[93798,93766],[93799,93767],[93800,93768],[93801,93769],[93802,93770],[93803,93771],[93804,93772],[93805,93773],[93806,93774],[93807,93775],[93808,93776],[93809,93777],[93810,93778],[93811,93779],[93812,93780],[93813,93781],[93814,93782],[93815,93783],[93816,93784],[93817,93785],[93818,93786],[93819,93787],[93820,93788],[93821,93789],[93822,93790],[93823,93791],[125184,125218],[125185,125219],[125186,125220],[125187,125221],[125188,125222],[125189,125223],[125190,125224],[125191,125225],[125192,125226],[125193,125227],[125194,125228],[125195,125229],[125196,125230],[125197,125231],[125198,125232],[125199,125233],[125200,125234],[125201,125235],[125202,125236],[125203,125237],[125204,125238],[125205,125239],[125206,125240],[125207,125241],[125208,125242],[125209,125243],[125210,125244],[125211,125245],[125212,125246],[125213,125247],[125214,125248],[125215,125249],[125216,125250],[125217,125251],[125218,125184],[125219,125185],[125220,125186],[125221,125187],[125222,125188],[125223,125189],[125224,125190],[125225,125191],[125226,125192],[125227,125193],[125228,125194],[125229,125195],[125230,125196],[125231,125197],[125232,125198],[125233,125199],[125234,125200],[125235,125201],[125236,125202],[125237,125203],[125238,125204],[125239,125205],[125240,125206],[125241,125207],[125242,125208],[125243,125209],[125244,125210],[125245,125211],[125246,125212],[125247,125213],[125248,125214],[125249,125215],[125250,125216],[125251,125217]])},16165:function(e,a,n){"use strict";const d=n(35187).generate,t=n(36216).parse,r=n(82708),o=n(60020),i=n(13314),g=n(94900),s=n(39555),c=r().addRange(0,1114111),u=(r().addRange(0,65535),c.clone().remove(10,13,8232,8233)),R=(e,a,n)=>a?n?s.UNICODE_IGNORE_CASE.get(e):s.UNICODE.get(e):s.REGULAR.get(e),l=(e,a)=>{const d=a?"".concat(e,"/").concat(a):"Binary_Property/".concat(e);try{return n(38531)("./".concat(d,".js"))}catch(t){throw new Error("Failed to recognize value `".concat(a,"` for property ")+"`".concat(e,"`."))}},p=(e,a)=>{const n=e.split("="),d=n[0];let t;if(1==n.length)t=(e=>{try{const a="General_Category",n=i(a,e);return l(a,n)}catch(n){}const a=o(e);return l(a)})(d);else{const e=o(d),a=i(e,n[1]);t=l(e,a)}return a?c.clone().remove(t):t.clone()};r.prototype.iuAddRange=function(e,a){const n=this;do{const a=m(e);a&&n.add(a)}while(++e<=a);return n};const f=(e,a)=>{let n=t(a,v.useUnicodeFlag?"u":"");switch(n.type){case"characterClass":case"group":case"value":break;default:n=h(n,a)}Object.assign(e,n)},h=(e,a)=>({type:"group",behavior:"ignore",body:[e],raw:"(?:".concat(a,")")}),m=e=>g.get(e)||!1,y=(e,a)=>{delete e.name,e.matchIndex=a},b=(e,a,n)=>{switch(e.type){case"dot":if(v.useDotAllFlag)break;v.unicode?f(e,(d=v.dotAll,d?c:u).toString(a)):v.dotAll&&f(e,"[\\s\\S]");break;case"characterClass":e=((e,a)=>{const n=r();for(const d of e.body)switch(d.type){case"value":if(n.add(d.codePoint),v.ignoreCase&&v.unicode&&!v.useUnicodeFlag){const e=m(d.codePoint);e&&n.add(e)}break;case"characterClassRange":const e=d.min.codePoint,a=d.max.codePoint;n.addRange(e,a),v.ignoreCase&&v.unicode&&!v.useUnicodeFlag&&n.iuAddRange(e,a);break;case"characterClassEscape":n.add(R(d.value,v.unicode,v.ignoreCase));break;case"unicodePropertyEscape":n.add(p(d.value,d.negative));break;default:throw new Error("Unknown term type: ".concat(d.type))}return e.negative?f(e,"(?!".concat(n.toString(a),")[\\s\\S]")):f(e,n.toString(a)),e})(e,a);break;case"unicodePropertyEscape":v.unicodePropertyEscape&&f(e,p(e.value,e.negative).toString(a));break;case"characterClassEscape":f(e,R(e.value,v.unicode,v.ignoreCase).toString(a));break;case"group":if("normal"==e.behavior&&n.lastIndex++,e.name&&v.namedGroup){const a=e.name.value;if(n.names[a])throw new Error("Multiple groups with the same name (".concat(a,") are not allowed."));const d=n.lastIndex;delete e.name,n.names[a]=d,n.onNamedGroup&&n.onNamedGroup.call(null,a,d),n.unmatchedReferences[a]&&(n.unmatchedReferences[a].forEach((e=>{y(e,d)})),delete n.unmatchedReferences[a])}case"alternative":case"disjunction":case"quantifier":e.body=e.body.map((e=>b(e,a,n)));break;case"value":const t=e.codePoint,o=r(t);if(v.ignoreCase&&v.unicode&&!v.useUnicodeFlag){const e=m(t);e&&o.add(e)}f(e,o.toString(a));break;case"reference":if(e.name){const a=e.name.value,d=n.names[a];if(d){y(e,d);break}n.unmatchedReferences[a]||(n.unmatchedReferences[a]=[]),n.unmatchedReferences[a].push(e)}break;case"anchor":case"empty":case"group":break;default:throw new Error("Unknown term type: ".concat(e.type))}var d;return e},v={ignoreCase:!1,unicode:!1,dotAll:!1,useDotAllFlag:!1,useUnicodeFlag:!1,unicodePropertyEscape:!1,namedGroup:!1};e.exports=(e,a,n)=>{v.unicode=a&&a.includes("u");const r={unicodePropertyEscape:v.unicode,namedGroups:!0,lookbehind:n&&n.lookbehind};v.ignoreCase=a&&a.includes("i");const o=n&&n.dotAllFlag;if(v.dotAll=o&&a&&a.includes("s"),v.namedGroup=n&&n.namedGroup,v.useDotAllFlag=n&&n.useDotAllFlag,v.useUnicodeFlag=n&&n.useUnicodeFlag,v.unicodePropertyEscape=n&&n.unicodePropertyEscape,o&&v.useDotAllFlag)throw new Error("`useDotAllFlag` and `dotAllFlag` cannot both be true!");const i={hasUnicodeFlag:v.useUnicodeFlag,bmpOnly:!v.unicode},g={onNamedGroup:n&&n.onNamedGroup,lastIndex:0,names:Object.create(null),unmatchedReferences:Object.create(null)},s=t(e,a,r);return b(s,i,g),(e=>{const a=Object.keys(e.unmatchedReferences);if(a.length>0)throw new Error("Unknown group names: ".concat(a))})(g),d(s)}},35187:function(e,a,n){var d;e=n.nmd(e),function(){"use strict";var t={function:!0,object:!0},r=t[typeof window]&&window||this,o=t[typeof a]&&a&&!a.nodeType&&a,i=t.object&&e&&!e.nodeType,g=o&&i&&"object"==typeof n.g&&n.g;!g||g.global!==g&&g.window!==g&&g.self!==g||(r=g);var s=Object.prototype.hasOwnProperty;function c(){var e=Number(arguments[0]);if(!isFinite(e)||e<0||e>1114111||Math.floor(e)!=e)throw RangeError("Invalid code point: "+e);if(e<=65535)return String.fromCharCode(e);var a=55296+((e-=65536)>>10),n=e%1024+56320;return String.fromCharCode(a,n)}var u={};function R(e,a){if(-1==a.indexOf("|")){if(e==a)return;throw Error("Invalid node type: "+e+"; expected type: "+a)}if(!(a=s.call(u,a)?u[a]:u[a]=RegExp("^(?:"+a+")$")).test(e))throw Error("Invalid node type: "+e+"; expected types: "+a)}function l(e){var a=e.type;if(s.call(y,a))return y[a](e);throw Error("Invalid node type: "+a)}function p(e,a){for(var n,d=-1,t=a.length,r="";++d=48&&a[d+1].codePoint<=57?r+="\\000":r+=e(n);return r}function f(e){return R(e.type,"anchor|characterClassEscape|characterClassRange|dot|value"),l(e)}function h(e){return R(e.type,"identifier"),e.value}function m(e){return R(e.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|unicodePropertyEscape|value|dot"),l(e)}var y={alternative:function(e){return R(e.type,"alternative"),p(m,e.body)},anchor:function(e){switch(R(e.type,"anchor"),e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}},characterClass:function(e){return R(e.type,"characterClass"),"["+(e.negative?"^":"")+p(f,e.body)+"]"},characterClassEscape:function(e){return R(e.type,"characterClassEscape"),"\\"+e.value},characterClassRange:function(e){R(e.type,"characterClassRange");var a=e.min,n=e.max;if("characterClassRange"==a.type||"characterClassRange"==n.type)throw Error("Invalid character class range");return f(a)+"-"+f(n)},disjunction:function(e){R(e.type,"disjunction");for(var a=e.body,n=-1,d=a.length,t="";++n");break;case"ignore":a+="?:";break;case"lookahead":a+="?=";break;case"negativeLookahead":a+="?!";break;case"lookbehind":a+="?<=";break;case"negativeLookbehind":a+="?";throw new Error("Unknown reference type")},unicodePropertyEscape:function(e){return R(e.type,"unicodePropertyEscape"),"\\"+(e.negative?"P":"p")+"{"+e.value+"}"},value:function(e){R(e.type,"value");var a=e.kind,n=e.codePoint;if("number"!=typeof n)throw new Error("Invalid code point: "+n);switch(a){case"controlLetter":return"\\c"+c(n+64);case"hexadecimalEscape":return"\\x"+("00"+n.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+c(n);case"null":return"\\"+n;case"octal":return"\\"+("000"+n.toString(8)).slice(-3);case"singleEscape":switch(n){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";case 45:return"\\-";default:throw Error("Invalid code point: "+n)}case"symbol":return c(n);case"unicodeEscape":return"\\u"+("0000"+n.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+n.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+a)}}},b={generate:l};void 0===(d=function(){return b}.call(a,n,a,e))||(e.exports=d),r.regjsgen=b}.call(this)},36216:function(e){var a,n,d,t;d=String.fromCodePoint||(a=String.fromCharCode,n=Math.floor,function(){var e,d,t=16384,r=[],o=-1,i=arguments.length;if(!i)return"";for(var g="";++o1114111||n(s)!=s)throw RangeError("Invalid code point: "+s);s<=65535?r.push(s):(e=55296+((s-=65536)>>10),d=s%1024+56320,r.push(e,d)),(o+1==i||r.length>t)&&(g+=a.apply(null,r),r.length=0)}return g}),t={parse:function(e,a,n){function t(a){return a.raw=e.substring(a.range[0],a.range[1]),a}function r(e,a){return e.range[0]=a,t(e)}function o(e,a){return t({type:"anchor",kind:e,range:[J-a,J]})}function i(e,a,n,d){return t({type:"value",kind:e,codePoint:a,range:[n,d]})}function g(e,a,n,d){return d=d||0,i(e,a,J-(n.length+d),J)}function s(e){var a,n=e[0],d=n.charCodeAt(0);return Y&&1===n.length&&d>=55296&&d<=56319&&(a=m().charCodeAt(0))>=56320&&a<=57343?i("symbol",1024*(d-55296)+a-56320+65536,++J-2,J):i("symbol",d,J-1,J)}function c(e,a,n,d){return null==d&&(n=J-1,d=J),t({type:"quantifier",min:e,max:a,greedy:!0,body:null,range:[n,d]})}function u(e,a,n,d){return t({type:"characterClass",kind:e.kind,body:e.body,negative:a,range:[n,d]})}function R(e,a,n,d){return e.codePoint>a.codePoint&&$("invalid range in character class",e.raw+"-"+a.raw,n,d),t({type:"characterClassRange",min:e,max:a,range:[n,d]})}function l(e){return"alternative"===e.type?e.body:[e]}function p(a){a=a||1;var n=e.substring(J,J+a);return J+=a||1,n}function f(e){h(e)||$("character",e)}function h(a){if(e.indexOf(a,J)===J)return p(a.length)}function m(){return e[J]}function y(a){return e.indexOf(a,J)===J}function b(a){return e[J+1]===a}function v(a){var n=e.substring(J).match(a);return n&&(n.range=[],n.range[0]=J,p(n[0].length),n.range[1]=J),n}function w(){var e=[],a=J;for(e.push(S());h("|");)e.push(S());return 1===e.length?e[0]:function(e,a,n){return t({type:"disjunction",body:e,range:[a,n]})}(e,a,J)}function S(){for(var e,a=[],n=J;e=E();)a.push(e);return 1===a.length?a[0]:function(e,a,n){return t({type:"alternative",body:e,range:[a,n]})}(a,n,J)}function E(){if(J>=e.length||y("|")||y(")"))return null;var a=h("^")?o("start",1):h("$")?o("end",1):h("\\b")?o("boundary",2):h("\\B")?o("not-boundary",2):x("(?=","lookahead","(?!","negativeLookahead");if(a)return a;var d,g=function(){var e;if(e=v(/^[^^$\\.*+?()[\]{}|]/))return s(e);if(!Y&&(e=v(/^(?:]|})/)))return s(e);if(h("."))return t({type:"dot",range:[J-1,J]});if(h("\\")){if(!(e=O())){if(!Y&&"c"==m())return i("symbol",92,J-1,J);$("atomEscape")}return e}if(e=L())return e;if(n.lookbehind&&(e=x("(?<=","lookbehind","(?");var d=_("normal",a.range[0]-3);return d.name=a,d}return x("(?:","ignore","(","normal")}();return g||(pos_backup=J,(d=C()||!1)&&(J=pos_backup,$("Expected atom")),!Y&&(res=v(/^{/))?g=s(res):$("Expected atom")),(d=C()||!1)?(d.body=l(g),r(d,g.range[0]),d):g}function x(e,a,n,d){var t=null,r=J;if(h(e))t=a;else{if(!h(n))return!1;t=d}return _(t,r)}function _(e,a){var n=w();n||$("Expected disjunction"),f(")");var d=function(e,a,n,d){return t({type:"group",behavior:e,body:a,range:[n,d]})}(e,l(n),a,J);return"normal"==e&&Z&&V++,d}function C(){var e,a,n,d,t=J;return h("*")?a=c(0):h("+")?a=c(1):h("?")?a=c(0,1):(e=v(/^\{([0-9]+)\}/))?a=c(n=parseInt(e[1],10),n,e.range[0],e.range[1]):(e=v(/^\{([0-9]+),\}/))?a=c(n=parseInt(e[1],10),void 0,e.range[0],e.range[1]):(e=v(/^\{([0-9]+),([0-9]+)\}/))&&((n=parseInt(e[1],10))>(d=parseInt(e[2],10))&&$("numbers out of order in {} quantifier","",t,J),a=c(n,d,e.range[0],e.range[1])),a&&h("?")&&(a.greedy=!1,a.range[1]+=1),a}function D(e){var a,n;if(Y&&"unicodeEscape"==e.kind&&(a=e.codePoint)>=55296&&a<=56319&&y("\\")&&b("u")){var d=J;J++;var r=k();"unicodeEscape"==r.kind&&(n=r.codePoint)>=56320&&n<=57343?(e.range[1]=r.range[1],e.codePoint=1024*(a-55296)+n-56320+65536,e.type="value",e.kind="unicodeCodePointEscape",t(e)):J=d}return e}function k(){return O(!0)}function O(e){var a,d=J;if(a=function(){var e,a,n;if(e=v(/^(?!0)\d+/)){a=e[0];var d=parseInt(e[0],10);return d<=V?(n=e[0],t({type:"reference",matchIndex:parseInt(n,10),range:[J-1-n.length,J]})):(K.push(d),p(-e[0].length),(e=v(/^[0-7]{1,3}/))?g("octal",parseInt(e[0],8),e[0],1):r(e=s(v(/^[89]/)),e.range[0]-1))}return!!(e=v(/^[0-7]{1,3}/))&&(a=e[0],/^0{1,3}$/.test(a)?g("null",0,"0",a.length):g("octal",parseInt(a,8),a,1))}()||function(){if(n.namedGroups&&v(/^k<(?=.*?>)/)){var e=T();return f(">"),function(e){return t({type:"reference",name:e,range:[e.range[0]-3,J]})}(e)}}(),a)return a;if(e){if(h("b"))return g("singleEscape",8,"\\b");if(h("B"))$("\\B not possible inside of CharacterClass","",d);else{if(!Y&&(a=v(/^c([0-9])/)))return g("controlLetter",a[1]+16,a[1],2);if(!Y&&(a=v(/^c_/)))return g("controlLetter",31,"_",2)}if(Y&&h("-"))return g("singleEscape",45,"\\-")}return a=A()||P()}function A(){var e;return(e=v(/^[dDsSwW]/))?t({type:"characterClassEscape",value:e[0],range:[J-2,J]}):!(!n.unicodePropertyEscape||!Y&&!X||!(e=v(/^([pP])\{([^\}]+)\}/)))&&t({type:"unicodePropertyEscape",negative:"P"===e[1],value:e[2],range:[e.range[0]-1,e.range[1]],raw:e[0]})}function j(){var e;return(e=v(/^u([0-9a-fA-F]{4})/))?D(g("unicodeEscape",parseInt(e[1],16),e[1],2)):Y&&(e=v(/^u\{([0-9a-fA-F]+)\}/))?g("unicodeCodePointEscape",parseInt(e[1],16),e[1],4):void 0}function P(){var e,a,d,t=J;if(e=v(/^[fnrtv]/)){var r=0;switch(e[0]){case"t":r=9;break;case"n":r=10;break;case"v":r=11;break;case"f":r=12;break;case"r":r=13}return g("singleEscape",r,"\\"+e[0])}return(e=v(/^c([a-zA-Z])/))?g("controlLetter",e[1].charCodeAt(0)%32,e[1],2):(e=v(/^x([0-9a-fA-F]{2})/))?g("hexadecimalEscape",parseInt(e[1],16),e[1],2):(e=j())?((!e||e.codePoint>1114111)&&$("Invalid escape sequence",null,t,J),e):(d=m(),Y&&/[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/.test(d)||!Y&&"c"!==d?"k"===d&&n.lookbehind?null:g("identifier",(a=p()).charCodeAt(0),a,1):null)}function I(a){var n=m(),t=J;if("\\"===n){p();var r=j();return r&&a(r.codePoint)||$("Invalid escape sequence",null,t,J),d(r.codePoint)}var o=n.charCodeAt(0);if(o>=55296&&o<=56319){var i=(n+=e[J+1]).charCodeAt(1);i>=56320&&i<=57343&&(o=1024*(o-55296)+i-56320+65536)}if(a(o))return p(),o>65535&&p(),n}function T(){var e,a=J,n=I(F);for(n||$("Invalid identifier");e=I(B);)n+=e;return t({type:"identifier",value:n,range:[a,J]})}function F(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=128&&/[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/.test(d(e))}function B(e){return F(e)||e>=48&&e<=57||e>=128&&/[0-9_\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC6F\uDC7F-\uDC82\uDCB0-\uDCBA\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDD0-\uDDD9\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6]|\uD81A[\uDE60-\uDE69\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uDB40[\uDD00-\uDDEF]/.test(d(e))}function L(){var e,a=J;return(e=v(/^\[\^/))?(e=M(),f("]"),u(e,!0,a,J)):h("[")?(e=M(),f("]"),u(e,!1,a,J)):null}function M(){var e,a;return y("]")?{kind:"union",body:[]}:X?function(){var e,a=[],n=z(!0);for(a.push(n),e="classRange"===n.type?"union":y("&")?"intersection":y("-")?"subtraction":"union";!y("]");)"intersection"===e?(f("&"),f("&"),y("&")&&$("&& cannot be followed by &. Wrap it in parentheses: &&(&).")):"subtraction"===e&&(f("-"),f("-")),n=z("union"===e),a.push(n);return{kind:e,body:a}}():((a=G())||$("classAtom"),(e=y("]")?[a]:N(a))||$("nonEmptyClassRanges"),{kind:"union",body:e})}function N(e){var a,n,d,t,r;if(y("-")&&!b("]")){a=e.range[0],r=s(h("-")),(t=G())||$("classAtom"),n=J;var o=M();return o||$("classRanges"),"codePoint"in e&&"codePoint"in t?d=[R(e,t,a,n)]:Y?$("invalid character class"):d=[e,r,t],"empty"===o.type?d:d.concat(o.body)}return(d=function(){var e=G();return e||$("classAtom"),y("]")?e:N(e)}())||$("nonEmptyClassRangesNoDash"),[e].concat(d)}function G(){return h("-")?s("-"):function(){var e;return(e=v(/^[^\\\]-]/))?s(e[0]):h("\\")?((e=k())||$("classEscape"),D(e)):void 0}()}function z(e){var a,n,d=J;if(h("\\"))if(n=A())a=n;else{if(n=q())return n;$("Invalid escape","\\"+m(),d)}else if(n=U())a=n;else{if(n=function(){var e=[],a=J;if(!h("("))return null;do{e.push(W())}while(h("|"));return f(")"),function(e,a,n){return t({type:"classStrings",strings:e,range:[a,n]})}(e,a,J)}()||L())return n;$("Invalid character",m())}if(e&&y("-")&&!b("-")){if(f("-"),n=H())return R(a,n,d,J);$("Invalid range end",m())}return a}function H(){if(h("\\")){if(res=q())return res;$("Invalid escape","\\"+m(),from)}return U()}function U(){var e;if(e=v(/^[^()[\]{}/\-\\|]/))return s(e)}function q(){return h("b")?g("singleEscape",8,"\\b"):h("B")?void $("\\B not possible inside of ClassContents","",J-2):(res=v(/^[&\-!#%,:;<=>@_`~]/))?g("identifier",res[0].codePointAt(0),res[0]):(res=P())?res:null}function W(){for(var e,a=[],n=J;e=H();)a.push(e);return function(e,a,n){return t({type:"classString",characters:e,range:[a,n]})}(a,n,J)}function $(a,n,d,t){d=null==d?J:d,t=null==t?d:t;var r=Math.max(0,d-10),o=Math.min(t+10,e.length),i=" "+e.substring(r,o),g=" "+new Array(d-r+1).join(" ")+"^";throw SyntaxError(a+" at position "+d+(n?": "+n:"")+"\n"+i+"\n"+g)}n||(n={});var K=[],V=0,Z=!0,Y=-1!==(a||"").indexOf("u"),X=-1!==(a||"").indexOf("v"),J=0;if(X&&!n.unicodeSet)throw new Error('The "v" flag is only supported when the .unicodeSet option is enabled.');if(Y&&X)throw new Error('The "u" and "v" flags are mutually exclusive.');""===(e=String(e))&&(e="(?:)");var Q=w();Q.range[1]!==e.length&&$("Could not parse entire input - got stuck","",Q.range[1]);for(var ee=0;ee1&&void 0!==arguments[1]?arguments[1]:"legacy";const n=e.endsWith(".html"),d=e.endsWith(".xml"),t=e.endsWith(".pdf");return"/"===e?e:((n||d||t)&&(a="never"),"always"===a?e.endsWith("/")?e:"".concat(e,"/"):"never"===a&&e.endsWith("/")?e.slice(0,-1):e)}},39557:function(e,a,n){"use strict";n.r(a),n.d(a,{onClientEntry:function(){return s}});var d=n(80858),t=n(70997),r=n.n(t);const o=e=>"/"===e[0]?e:"/".concat(e),i=(e,a)=>n=>{if(window.___failedResources)return!0;if((e=>0!==e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)(n))return!0;if((e=>e.defaultPrevented)(n))return!0;const t=(e=>{for(;e.parentNode;e=e.parentNode)if("a"===e.nodeName.toLowerCase())return e;return null})(n.target);if(null==t)return!0;if(!0===(i=t).hasAttribute("download")||!1===(e=>!1===e.hasAttribute("target")||null==e.target||["_self",""].includes(e.target)||"_parent"===e.target&&(!e.ownerDocument.defaultView.parent||e.ownerDocument.defaultView.parent===e.ownerDocument.defaultView)||"_top"===e.target&&(!e.ownerDocument.defaultView.top||e.ownerDocument.defaultView.top===e.ownerDocument.defaultView))(i))return!0;var i;const g=document.createElement("a");""!==t.href&&(g.href=t.href),"SVGAnimatedString"in window&&t.href instanceof SVGAnimatedString&&(g.href=t.href.animVal);const s=document.createElement("a");if(s.href=window.location.href,!1===((e,a)=>e.protocol===a.protocol&&e.host===a.host)(s,g))return!0;const c=new RegExp("^".concat(r()((0,d.withPrefix)("/"))));if(((e,a)=>!1===a.test(o(e.pathname))||-1!==e.pathname.search(/^.*\.((?!htm)[a-z0-9]{1,5})$/i))(g,c))return!0;if(((e,a)=>""!==a.hash&&(""===a.pathname||a.pathname===e.pathname))(s,g))return!0;if(a.excludePattern){if(new RegExp(a.excludePattern).test(g.pathname))return!0}n.preventDefault();const u=o(g.pathname).replace(c,"/");return e("".concat(u).concat(g.search).concat(g.hash)),!1};function g(e,a,n){const d=i(n,a);return e.addEventListener("click",d),()=>e.removeEventListener("click",d)}const s=function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};g(window,a,(e=>{(0,d.navigate)(e)}))}},70997:function(e){"use strict";var a=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(a,"\\$&")}},57828:function(e,a,n){"use strict";n.r(a),n.d(a,{onRouteUpdate:function(){return d}});n(80858),n(99969);const d=function(e,a){let{location:n}=e}},99969:function(e,a,n){"use strict";var d=n(80858)},24821:function(e,a,n){"use strict";a.wrapPageElement=n(52462)},52462:function(e,a,n){"use strict";var d=n(27378),t=n(47326).Helmet,r={noTrailingSlash:!1,nopQueryString:!1,nopHash:!1};e.exports=function(e,a){var n=e.element,o=e.props.location;void 0===a&&(a={});var i=Object.assign({},r,a);if(i.siteUrl&&!function(e,a){return!!Array.isArray(e)&&(a=a.replace(/\/+$/,""),e.some((function(e){return e instanceof RegExp?a.match(e):e.includes(a)})))}(i.exclude,o.pathname)){var g=o.pathname||"/";i.noTrailingSlash&&g.endsWith("/")&&(g=g.substring(0,g.length-1));var s=""+i.siteUrl+g;return i.noQueryString||(s+=o.search),i.noHash||(s+=o.hash),d.createElement(d.Fragment,null,d.createElement(t,{link:[{rel:"canonical",key:s,href:s}]}),n)}return n}},78863:function(e,a,n){"use strict";var d=n(73203)(n(27378)),t=n(59882);a.wrapRootElement=function(e,a){var n=e.element;return d.default.createElement(t.StyleSheetManager,{disableVendorPrefixes:!0===(null==a?void 0:a.disableVendorPrefixes)},n)}},33855:function(e,a){"use strict";var n=0,d=function(e){var a=window.decodeURI(e.replace("#",""));if(""!==a){var d=document.getElementById(a);if(d){var t=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,r=document.documentElement.clientTop||document.body.clientTop||0,o=window.getComputedStyle(d),i=o.getPropertyValue("scroll-margin-top")||o.getPropertyValue("scroll-snap-margin-top")||"0px";return d.getBoundingClientRect().top+t-parseInt(i,10)-r-n}}return null};a.onInitialClientRender=function(e,a){a.offsetY&&(n=a.offsetY),requestAnimationFrame((function(){var e=d(window.location.hash);null!==e&&window.scrollTo(0,e)}))},a.shouldUpdateScroll=function(e){var a=e.routerProps.location,n=d(a.hash);return null===n||[0,n]}},18788:function(e,a){"use strict";a.DEFAULT_OPTIONS={maxWidth:650,wrapperStyle:"",backgroundColor:"white",linkImagesToOriginal:!0,showCaptions:!1,markdownCaptions:!1,withWebp:!1,withAvif:!1,tracedSVG:!1,loading:"lazy",decoding:"async",disableBgImageOnAlpha:!1,disableBgImage:!1},a.EMPTY_ALT="GATSBY_EMPTY_ALT",a.imageClass="gatsby-resp-image-image",a.imageWrapperClass="gatsby-resp-image-wrapper",a.imageBackgroundClass="gatsby-resp-image-background-image"},91658:function(e,a,n){"use strict";var d=n(18788),t=d.DEFAULT_OPTIONS,r=d.imageClass,o=d.imageBackgroundClass,i=d.imageWrapperClass;a.onRouteUpdate=function(e,a){for(var n=Object.assign({},t,a),d=document.querySelectorAll("."+i),g=function(e){var a=d[e],t=a.querySelector("."+o),i=a.querySelector("."+r),g=function(){t.style.transition="opacity 0.5s 0.5s",i.style.transition="opacity 0.5s",s()},s=function e(){t.style.opacity=0,i.style.opacity=1,i.style.color="inherit",i.style.boxShadow="inset 0px 0px 0px 400px "+n.backgroundColor,i.removeEventListener("load",g),i.removeEventListener("error",e)};i.style.opacity=0,i.addEventListener("load",g),i.addEventListener("error",s),i.complete&&s()},s=0;s{}},77842:function(e,a,n){"use strict";n(83315),a.__esModule=!0,a.getForwards=function(e){return null==e?void 0:e.flatMap((e=>(null==e?void 0:e.forward)||[]))}},99740:function(e,a,n){"use strict";a.__esModule=!0,a.injectPartytownSnippet=function(e){if(!e.length)return;const a=document.querySelector("script[data-partytown]"),n=document.querySelector('iframe[src*="~partytown/partytown-sandbox-sw"]');a&&a.remove();n&&n.remove();const r=(0,t.getForwards)(e),o=document.createElement("script");o.dataset.partytown="",o.innerHTML=(0,d.partytownSnippet)({forward:r}),document.head.appendChild(o)};var d=n(9059),t=n(77842)},5466:function(e,a,n){"use strict";var d=n(65884),t={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function g(e){return d.isMemo(e)?o:i[e.$$typeof]||t}i[d.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[d.Memo]=o;var s=Object.defineProperty,c=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,R=Object.getOwnPropertyDescriptor,l=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(a,n,d){if("string"!=typeof n){if(p){var t=l(n);t&&t!==p&&e(a,t,d)}var o=c(n);u&&(o=o.concat(u(n)));for(var i=g(a),f=g(n),h=0;h>>=5)>0&&(n|=32),a+=t[n]}while(e>0);return a}var i=function e(a){this.bits=a instanceof e?a.bits.slice():[]};i.prototype.add=function(e){this.bits[e>>5]|=1<<(31&e)},i.prototype.has=function(e){return!!(this.bits[e>>5]&1<<(31&e))};var g=function(e,a,n){this.start=e,this.end=a,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,Object.defineProperties(this,{previous:{writable:!0,value:null},next:{writable:!0,value:null}})};g.prototype.appendLeft=function(e){this.outro+=e},g.prototype.appendRight=function(e){this.intro=this.intro+e},g.prototype.clone=function(){var e=new g(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e},g.prototype.contains=function(e){return this.start0&&(r+=";"),0!==g.length){for(var s=0,c=[],u=0,R=g;u1&&(p+=o(l[1]-a)+o(l[2]-n)+o(l[3]-d),a=l[1],n=l[2],d=l[3]),5===l.length&&(p+=o(l[4]-t),t=l[4]),c.push(p)}r+=c.join(",")}}return r}(e.mappings)};function u(e){var a=e.split("\n"),n=a.filter((function(e){return/^\t+/.test(e)})),d=a.filter((function(e){return/^ {2,}/.test(e)}));if(0===n.length&&0===d.length)return null;if(n.length>=d.length)return"\t";var t=d.reduce((function(e,a){var n=/^ +/.exec(a)[0].length;return Math.min(n,e)}),1/0);return new Array(t+1).join(" ")}function R(e,a){var n=e.split(/[/\\]/),d=a.split(/[/\\]/);for(n.pop();n[0]===d[0];)n.shift(),d.shift();if(n.length)for(var t=n.length;t--;)n[t]="..";return n.concat(d).join("/")}c.prototype.toString=function(){return JSON.stringify(this)},c.prototype.toUrl=function(){return"data:application/json;charset=utf-8;base64,"+s(this.toString())};var l=Object.prototype.toString;function p(e){return"[object Object]"===l.call(e)}function f(e){for(var a=e.split("\n"),n=[],d=0,t=0;d>1;e=0&&t.push(d),this.rawSegments.push(t)}else this.pending&&this.rawSegments.push(this.pending);this.advance(a),this.pending=null},h.prototype.addUneditedChunk=function(e,a,n,d,t){for(var r=a.start,o=!0;r1){for(var n=0;n=e&&n<=a)throw new Error("Cannot move a selection inside itself");this._split(e),this._split(a),this._split(n);var d=this.byStart[e],t=this.byEnd[a],r=d.previous,o=t.next,i=this.byStart[n];if(!i&&t===this.lastChunk)return this;var g=i?i.previous:this.lastChunk;return r&&(r.next=o),o&&(o.previous=r),g&&(g.next=d),i&&(i.previous=t),d.previous||(this.firstChunk=t.next),t.next||(this.lastChunk=d.previous,this.lastChunk.next=null),d.previous=g,t.next=i||null,g||(this.firstChunk=d),i||(this.lastChunk=t),this},b.prototype.overwrite=function(e,a,n,d){if("string"!=typeof n)throw new TypeError("replacement content must be a string");for(;e<0;)e+=this.original.length;for(;a<0;)a+=this.original.length;if(a>this.original.length)throw new Error("end is out of bounds");if(e===a)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e),this._split(a),!0===d&&(y.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),y.storeName=!0),d={storeName:!0});var t=void 0!==d&&d.storeName,r=void 0!==d&&d.contentOnly;if(t){var o=this.original.slice(e,a);Object.defineProperty(this.storedNames,o,{writable:!0,value:!0,enumerable:!0})}var i=this.byStart[e],s=this.byEnd[a];if(i){for(var c=i;c!==s;){if(c.next!==this.byStart[c.end])throw new Error("Cannot overwrite across a split point");(c=c.next).edit("",!1)}i.edit(n,t,r)}else{var u=new g(e,a,"").edit(n,t);s.next=u,u.previous=s}return this},b.prototype.prepend=function(e){if("string"!=typeof e)throw new TypeError("outro content must be a string");return this.intro=e+this.intro,this},b.prototype.prependLeft=function(e,a){if("string"!=typeof a)throw new TypeError("inserted content must be a string");this._split(e);var n=this.byEnd[e];return n?n.prependLeft(a):this.intro=a+this.intro,this},b.prototype.prependRight=function(e,a){if("string"!=typeof a)throw new TypeError("inserted content must be a string");this._split(e);var n=this.byStart[e];return n?n.prependRight(a):this.outro=a+this.outro,this},b.prototype.remove=function(e,a){for(;e<0;)e+=this.original.length;for(;a<0;)a+=this.original.length;if(e===a)return this;if(e<0||a>this.original.length)throw new Error("Character is out of bounds");if(e>a)throw new Error("end must be greater than start");this._split(e),this._split(a);for(var n=this.byStart[e];n;)n.intro="",n.outro="",n.edit(""),n=a>n.end?this.byStart[n.end]:null;return this},b.prototype.lastChar=function(){if(this.outro.length)return this.outro[this.outro.length-1];var e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:""},b.prototype.lastLine=function(){var e=this.outro.lastIndexOf(m);if(-1!==e)return this.outro.substr(e+1);var a=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(-1!==(e=n.outro.lastIndexOf(m)))return n.outro.substr(e+1)+a;a=n.outro+a}if(n.content.length>0){if(-1!==(e=n.content.lastIndexOf(m)))return n.content.substr(e+1)+a;a=n.content+a}if(n.intro.length>0){if(-1!==(e=n.intro.lastIndexOf(m)))return n.intro.substr(e+1)+a;a=n.intro+a}}while(n=n.previous);return-1!==(e=this.intro.lastIndexOf(m))?this.intro.substr(e+1)+a:this.intro+a},b.prototype.slice=function(e,a){for(void 0===e&&(e=0),void 0===a&&(a=this.original.length);e<0;)e+=this.original.length;for(;a<0;)a+=this.original.length;for(var n="",d=this.firstChunk;d&&(d.start>e||d.end<=e);){if(d.start=a)return n;d=d.next}if(d&&d.edited&&d.start!==e)throw new Error("Cannot use replaced character "+e+" as slice start anchor.");for(var t=d;d;){!d.intro||t===d&&d.start!==e||(n+=d.intro);var r=d.start=a;if(r&&d.edited&&d.end!==a)throw new Error("Cannot use replaced character "+a+" as slice end anchor.");var o=t===d?e-d.start:0,i=r?d.content.length+a-d.end:d.content.length;if(n+=d.content.slice(o,i),!d.outro||r&&d.end!==a||(n+=d.outro),r)break;d=d.next}return n},b.prototype.snip=function(e,a){var n=this.clone();return n.remove(0,e),n.remove(a,n.original.length),n},b.prototype._split=function(e){if(!this.byStart[e]&&!this.byEnd[e])for(var a=this.lastSearchedChunk,n=e>a.end;a;){if(a.contains(e))return this._splitChunk(a,e);a=n?this.byStart[a.end]:this.byEnd[a.start]}},b.prototype._splitChunk=function(e,a){if(e.edited&&e.content.length){var n=f(this.original)(a);throw new Error("Cannot split a chunk that has already been edited ("+n.line+":"+n.column+' – "'+e.original+'")')}var d=e.split(a);return this.byEnd[a]=e,this.byStart[a]=d,this.byEnd[d.end]=d,e===this.lastChunk&&(this.lastChunk=d),this.lastSearchedChunk=e,!0},b.prototype.toString=function(){for(var e=this.intro,a=this.firstChunk;a;)e+=a.toString(),a=a.next;return e+this.outro},b.prototype.isEmpty=function(){var e=this.firstChunk;do{if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1}while(e=e.next);return!0},b.prototype.length=function(){var e=this.firstChunk,a=0;do{a+=e.intro.length+e.content.length+e.outro.length}while(e=e.next);return a},b.prototype.trimLines=function(){return this.trim("[\\r\\n]")},b.prototype.trim=function(e){return this.trimStart(e).trimEnd(e)},b.prototype.trimEndAborted=function(e){var a=new RegExp((e||"\\s")+"+$");if(this.outro=this.outro.replace(a,""),this.outro.length)return!0;var n=this.lastChunk;do{var d=n.end,t=n.trimEnd(a);if(n.end!==d&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),t)return!0;n=n.previous}while(n);return!1},b.prototype.trimEnd=function(e){return this.trimEndAborted(e),this},b.prototype.trimStartAborted=function(e){var a=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(a,""),this.intro.length)return!0;var n=this.firstChunk;do{var d=n.end,t=n.trimStart(a);if(n.end!==d&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),t)return!0;n=n.next}while(n);return!1},b.prototype.trimStart=function(e){return this.trimStartAborted(e),this};var v=Object.prototype.hasOwnProperty,w=function(e){void 0===e&&(e={}),this.intro=e.intro||"",this.separator=void 0!==e.separator?e.separator:"\n",this.sources=[],this.uniqueSources=[],this.uniqueSourceIndexByFilename={}};w.prototype.addSource=function(e){if(e instanceof b)return this.addSource({content:e,filename:e.filename,separator:this.separator});if(!p(e)||!e.content)throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");if(["filename","indentExclusionRanges","separator"].forEach((function(a){v.call(e,a)||(e[a]=e.content[a])})),void 0===e.separator&&(e.separator=this.separator),e.filename)if(v.call(this.uniqueSourceIndexByFilename,e.filename)){var a=this.uniqueSources[this.uniqueSourceIndexByFilename[e.filename]];if(e.content.original!==a.content)throw new Error("Illegal source: same filename ("+e.filename+"), different contents")}else this.uniqueSourceIndexByFilename[e.filename]=this.uniqueSources.length,this.uniqueSources.push({filename:e.filename,content:e.content.original});return this.sources.push(e),this},w.prototype.append=function(e,a){return this.addSource({content:new b(e),separator:a&&a.separator||""}),this},w.prototype.clone=function(){var e=new w({intro:this.intro,separator:this.separator});return this.sources.forEach((function(a){e.addSource({filename:a.filename,content:a.content.clone(),separator:a.separator})})),e},w.prototype.generateDecodedMap=function(e){var a=this;void 0===e&&(e={});var n=[];this.sources.forEach((function(e){Object.keys(e.content.storedNames).forEach((function(e){~n.indexOf(e)||n.push(e)}))}));var d=new h(e.hires);return this.intro&&d.advance(this.intro),this.sources.forEach((function(e,t){t>0&&d.advance(a.separator);var r=e.filename?a.uniqueSourceIndexByFilename[e.filename]:-1,o=e.content,i=f(o.original);o.intro&&d.advance(o.intro),o.firstChunk.eachNext((function(a){var t=i(a.start);a.intro.length&&d.advance(a.intro),e.filename?a.edited?d.addEdit(r,a.content,t,a.storeName?n.indexOf(a.original):-1):d.addUneditedChunk(r,a,o.original,t,o.sourcemapLocations):d.advance(a.content),a.outro.length&&d.advance(a.outro)})),o.outro&&d.advance(o.outro)})),{file:e.file?e.file.split(/[/\\]/).pop():null,sources:this.uniqueSources.map((function(a){return e.file?R(e.file,a.filename):a.filename})),sourcesContent:this.uniqueSources.map((function(a){return e.includeContent?a.content:null})),names:n,mappings:d.raw}},w.prototype.generateMap=function(e){return new c(this.generateDecodedMap(e))},w.prototype.getIndentString=function(){var e={};return this.sources.forEach((function(a){var n=a.content.indentStr;null!==n&&(e[n]||(e[n]=0),e[n]+=1)})),Object.keys(e).sort((function(a,n){return e[a]-e[n]}))[0]||"\t"},w.prototype.indent=function(e){var a=this;if(arguments.length||(e=this.getIndentString()),""===e)return this;var n=!this.intro||"\n"===this.intro.slice(-1);return this.sources.forEach((function(d,t){var r=void 0!==d.separator?d.separator:a.separator,o=n||t>0&&/\r?\n$/.test(r);d.content.indent(e,{exclude:d.indentExclusionRanges,indentStart:o}),n="\n"===d.content.lastChar()})),this.intro&&(this.intro=e+this.intro.replace(/^[^\n]/gm,(function(a,n){return n>0?e+a:a}))),this},w.prototype.prepend=function(e){return this.intro=e+this.intro,this},w.prototype.toString=function(){var e=this,a=this.sources.map((function(a,n){var d=void 0!==a.separator?a.separator:e.separator;return(n>0?d:"")+a.content.toString()})).join("");return this.intro+a},w.prototype.isEmpty=function(){return(!this.intro.length||!this.intro.trim())&&!this.sources.some((function(e){return!e.content.isEmpty()}))},w.prototype.length=function(){return this.sources.reduce((function(e,a){return e+a.content.length()}),this.intro.length)},w.prototype.trimLines=function(){return this.trim("[\\r\\n]")},w.prototype.trim=function(e){return this.trimStart(e).trimEnd(e)},w.prototype.trimStart=function(e){var a=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(a,""),!this.intro){var n,d=0;do{if(!(n=this.sources[d++]))break}while(!n.content.trimStartAborted(e))}return this},w.prototype.trimEnd=function(e){var a,n=new RegExp((e||"\\s")+"+$"),d=this.sources.length-1;do{if(!(a=this.sources[d--])){this.intro=this.intro.replace(n,"");break}}while(!a.content.trimEndAborted(e));return this}},58277:function(e){var a="undefined"!=typeof Element,n="function"==typeof Map,d="function"==typeof Set,t="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function r(e,o){if(e===o)return!0;if(e&&o&&"object"==typeof e&&"object"==typeof o){if(e.constructor!==o.constructor)return!1;var i,g,s,c;if(Array.isArray(e)){if((i=e.length)!=o.length)return!1;for(g=i;0!=g--;)if(!r(e[g],o[g]))return!1;return!0}if(n&&e instanceof Map&&o instanceof Map){if(e.size!==o.size)return!1;for(c=e.entries();!(g=c.next()).done;)if(!o.has(g.value[0]))return!1;for(c=e.entries();!(g=c.next()).done;)if(!r(g.value[1],o.get(g.value[0])))return!1;return!0}if(d&&e instanceof Set&&o instanceof Set){if(e.size!==o.size)return!1;for(c=e.entries();!(g=c.next()).done;)if(!o.has(g.value[0]))return!1;return!0}if(t&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(o)){if((i=e.length)!=o.length)return!1;for(g=i;0!=g--;)if(e[g]!==o[g])return!1;return!0}if(e.constructor===RegExp)return e.source===o.source&&e.flags===o.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===o.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===o.toString();if((i=(s=Object.keys(e)).length)!==Object.keys(o).length)return!1;for(g=i;0!=g--;)if(!Object.prototype.hasOwnProperty.call(o,s[g]))return!1;if(a&&e instanceof Element)return!1;for(g=i;0!=g--;)if(("_owner"!==s[g]&&"__v"!==s[g]&&"__o"!==s[g]||!e.$$typeof)&&!r(e[s[g]],o[s[g]]))return!1;return!0}return e!=e&&o!=o}e.exports=function(e,a){try{return r(e,a)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},47326:function(e,a,n){"use strict";n.r(a),n.d(a,{Helmet:function(){return ue}});var d,t=n(23615),r=n.n(t),o=n(78473),i=n.n(o),g=n(58277),s=n.n(g),c=n(27378),u=n(61468),R=n.n(u),l="bodyAttributes",p="htmlAttributes",f="titleAttributes",h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},m=(Object.keys(h).map((function(e){return h[e]})),"charset"),y="cssText",b="href",v="http-equiv",w="innerHTML",S="itemprop",E="name",x="property",_="rel",C="src",D="target",k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},O="defaultTitle",A="defer",j="encodeSpecialCharacters",P="onChangeClientState",I="titleTemplate",T=Object.keys(k).reduce((function(e,a){return e[k[a]]=a,e}),{}),F=[h.NOSCRIPT,h.SCRIPT,h.STYLE],B="data-react-helmet",L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},M=function(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")},N=function(){function e(e,a){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,d)&&(n[d]=e[d]);return n},H=function(e,a){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!a||"object"!=typeof a&&"function"!=typeof a?e:a},U=function(e){var a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!1===a?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},q=function(e){var a=Z(e,h.TITLE),n=Z(e,I);if(n&&a)return n.replace(/%s/g,(function(){return Array.isArray(a)?a.join(""):a}));var d=Z(e,O);return a||d||void 0},W=function(e){return Z(e,P)||function(){}},$=function(e,a){return a.filter((function(a){return void 0!==a[e]})).map((function(a){return a[e]})).reduce((function(e,a){return G({},e,a)}),{})},K=function(e,a){return a.filter((function(e){return void 0!==e[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(a,n){if(!a.length)for(var d=Object.keys(n),t=0;t=0;n--){var d=e[n];if(d.hasOwnProperty(a))return d[a]}return null},Y=(d=Date.now(),function(e){var a=Date.now();a-d>16?(d=a,e(a)):setTimeout((function(){Y(e)}),0)}),X=function(e){return clearTimeout(e)},J="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||Y:n.g.requestAnimationFrame||Y,Q="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||X:n.g.cancelAnimationFrame||X,ee=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},ae=null,ne=function(e,a){var n=e.baseTag,d=e.bodyAttributes,t=e.htmlAttributes,r=e.linkTags,o=e.metaTags,i=e.noscriptTags,g=e.onChangeClientState,s=e.scriptTags,c=e.styleTags,u=e.title,R=e.titleAttributes;re(h.BODY,d),re(h.HTML,t),te(u,R);var l={baseTag:oe(h.BASE,n),linkTags:oe(h.LINK,r),metaTags:oe(h.META,o),noscriptTags:oe(h.NOSCRIPT,i),scriptTags:oe(h.SCRIPT,s),styleTags:oe(h.STYLE,c)},p={},f={};Object.keys(l).forEach((function(e){var a=l[e],n=a.newTags,d=a.oldTags;n.length&&(p[e]=n),d.length&&(f[e]=l[e].oldTags)})),a&&a(),g(e,p,f)},de=function(e){return Array.isArray(e)?e.join(""):e},te=function(e,a){void 0!==e&&document.title!==e&&(document.title=de(e)),re(h.TITLE,a)},re=function(e,a){var n=document.getElementsByTagName(e)[0];if(n){for(var d=n.getAttribute(B),t=d?d.split(","):[],r=[].concat(t),o=Object.keys(a),i=0;i=0;u--)n.removeAttribute(r[u]);t.length===r.length?n.removeAttribute(B):n.getAttribute(B)!==o.join(",")&&n.setAttribute(B,o.join(","))}},oe=function(e,a){var n=document.head||document.querySelector(h.HEAD),d=n.querySelectorAll(e+"["+"data-react-helmet]"),t=Array.prototype.slice.call(d),r=[],o=void 0;return a&&a.length&&a.forEach((function(a){var n=document.createElement(e);for(var d in a)if(a.hasOwnProperty(d))if(d===w)n.innerHTML=a.innerHTML;else if(d===y)n.styleSheet?n.styleSheet.cssText=a.cssText:n.appendChild(document.createTextNode(a.cssText));else{var i=void 0===a[d]?"":a[d];n.setAttribute(d,i)}n.setAttribute(B,"true"),t.some((function(e,a){return o=a,n.isEqualNode(e)}))?t.splice(o,1):r.push(n)})),t.forEach((function(e){return e.parentNode.removeChild(e)})),r.forEach((function(e){return n.appendChild(e)})),{oldTags:t,newTags:r}},ie=function(e){return Object.keys(e).reduce((function(a,n){var d=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return a?a+" "+d:d}),"")},ge=function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(a,n){return a[k[n]||n]=e[n],a}),a)},se=function(e,a,n){switch(e){case h.TITLE:return{toComponent:function(){return e=a.title,n=a.titleAttributes,(d={key:e})[B]=!0,t=ge(n,d),[c.createElement(h.TITLE,t,e)];var e,n,d,t},toString:function(){return function(e,a,n,d){var t=ie(n),r=de(a);return t?"<"+e+' data-react-helmet="true" '+t+">"+U(r,d)+"":"<"+e+' data-react-helmet="true">'+U(r,d)+""}(e,a.title,a.titleAttributes,n)}};case l:case p:return{toComponent:function(){return ge(a)},toString:function(){return ie(a)}};default:return{toComponent:function(){return function(e,a){return a.map((function(a,n){var d,t=((d={key:n})[B]=!0,d);return Object.keys(a).forEach((function(e){var n=k[e]||e;if(n===w||n===y){var d=a.innerHTML||a.cssText;t.dangerouslySetInnerHTML={__html:d}}else t[n]=a[e]})),c.createElement(e,t)}))}(e,a)},toString:function(){return function(e,a,n){return a.reduce((function(a,d){var t=Object.keys(d).filter((function(e){return!(e===w||e===y)})).reduce((function(e,a){var t=void 0===d[a]?a:a+'="'+U(d[a],n)+'"';return e?e+" "+t:t}),""),r=d.innerHTML||d.cssText||"",o=-1===F.indexOf(e);return a+"<"+e+' data-react-helmet="true" '+t+(o?"/>":">"+r+"")}),"")}(e,a,n)}}}},ce=function(e){var a=e.baseTag,n=e.bodyAttributes,d=e.encode,t=e.htmlAttributes,r=e.linkTags,o=e.metaTags,i=e.noscriptTags,g=e.scriptTags,s=e.styleTags,c=e.title,u=void 0===c?"":c,R=e.titleAttributes;return{base:se(h.BASE,a,d),bodyAttributes:se(l,n,d),htmlAttributes:se(p,t,d),link:se(h.LINK,r,d),meta:se(h.META,o,d),noscript:se(h.NOSCRIPT,i,d),script:se(h.SCRIPT,g,d),style:se(h.STYLE,s,d),title:se(h.TITLE,{title:u,titleAttributes:R},d)}},ue=function(e){var a,n;return n=a=function(a){function n(){return M(this,n),H(this,a.apply(this,arguments))}return function(e,a){if("function"!=typeof a&&null!==a)throw new TypeError("Super expression must either be null or a function, not "+typeof a);e.prototype=Object.create(a&&a.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),a&&(Object.setPrototypeOf?Object.setPrototypeOf(e,a):e.__proto__=a)}(n,a),n.prototype.shouldComponentUpdate=function(e){return!s()(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,a){if(!a)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:a};case h.STYLE:return{cssText:a}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},n.prototype.flattenArrayTypeChildren=function(e){var a,n=e.child,d=e.arrayTypeChildren,t=e.newChildProps,r=e.nestedChildren;return G({},d,((a={})[n.type]=[].concat(d[n.type]||[],[G({},t,this.mapNestedChildrenToProps(n,r))]),a))},n.prototype.mapObjectTypeChildren=function(e){var a,n,d=e.child,t=e.newProps,r=e.newChildProps,o=e.nestedChildren;switch(d.type){case h.TITLE:return G({},t,((a={})[d.type]=o,a.titleAttributes=G({},r),a));case h.BODY:return G({},t,{bodyAttributes:G({},r)});case h.HTML:return G({},t,{htmlAttributes:G({},r)})}return G({},t,((n={})[d.type]=G({},r),n))},n.prototype.mapArrayTypeChildrenToProps=function(e,a){var n=G({},a);return Object.keys(e).forEach((function(a){var d;n=G({},n,((d={})[a]=e[a],d))})),n},n.prototype.warnOnInvalidChildren=function(e,a){return!0},n.prototype.mapChildrenToProps=function(e,a){var n=this,d={};return c.Children.forEach(e,(function(e){if(e&&e.props){var t=e.props,r=t.children,o=function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(a,n){return a[T[n]||n]=e[n],a}),a)}(z(t,["children"]));switch(n.warnOnInvalidChildren(e,r),e.type){case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:d=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:d,newChildProps:o,nestedChildren:r});break;default:a=n.mapObjectTypeChildren({child:e,newProps:a,newChildProps:o,nestedChildren:r})}}})),a=this.mapArrayTypeChildrenToProps(d,a)},n.prototype.render=function(){var a=this.props,n=a.children,d=z(a,["children"]),t=G({},d);return n&&(t=this.mapChildrenToProps(n,t)),c.createElement(e,t)},N(n,null,[{key:"canUseDOM",set:function(a){e.canUseDOM=a}}]),n}(c.Component),a.propTypes={base:r().object,bodyAttributes:r().object,children:r().oneOfType([r().arrayOf(r().node),r().node]),defaultTitle:r().string,defer:r().bool,encodeSpecialCharacters:r().bool,htmlAttributes:r().object,link:r().arrayOf(r().object),meta:r().arrayOf(r().object),noscript:r().arrayOf(r().object),onChangeClientState:r().func,script:r().arrayOf(r().object),style:r().arrayOf(r().object),title:r().string,titleAttributes:r().object,titleTemplate:r().string},a.defaultProps={defer:!0,encodeSpecialCharacters:!0},a.peek=e.peek,a.rewind=function(){var a=e.rewind();return a||(a=ce({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),a},n}(i()((function(e){return{baseTag:K([b,D],e),bodyAttributes:$(l,e),defer:Z(e,A),encode:Z(e,j),htmlAttributes:$(p,e),linkTags:V(h.LINK,[_,b],e),metaTags:V(h.META,[E,m,v,x,S],e),noscriptTags:V(h.NOSCRIPT,[w],e),onChangeClientState:W(e),scriptTags:V(h.SCRIPT,[C,w],e),styleTags:V(h.STYLE,[y],e),title:q(e),titleAttributes:$(f,e)}}),(function(e){ae&&Q(ae),e.defer?ae=J((function(){ne(e,(function(){ae=null}))})):(ne(e),ae=null)}),ce)((function(){return null})));ue.renderStatic=ue.rewind,a.default=ue},28575:function(e,a,n){"use strict";n.d(a,{w_:function(){return s}});var d=n(27378),t={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},r=d.createContext&&d.createContext(t),o=function(){return o=Object.assign||function(e){for(var a,n=1,d=arguments.length;n-1){a._history.stack=g.slice(0,s+1);var c=a._history.stack.length;if(c>f){var u=c-f;a._history.stack=g.slice(u,c),a._history.offset=Math.max(a._history.offset-u,0)}}var R=Date.now();if(n){var l=a._history.stack[a._history.offset];if(l&&R-l.timestamp<3e3){var p=/[^a-z0-9]([a-z0-9]+)$/i,h=null===(d=a._getLines(l.value,l.selectionStart).pop())||void 0===d?void 0:d.match(p),m=null===(t=a._getLines(e.value,e.selectionStart).pop())||void 0===t?void 0:t.match(p);if((null==h?void 0:h[1])&&(null===(o=null==m?void 0:m[1])||void 0===o?void 0:o.startsWith(h[1])))return void(a._history.stack[a._history.offset]=r(r({},e),{timestamp:R}))}}a._history.stack.push(r(r({},e),{timestamp:R})),a._history.offset++},a._updateInput=function(e){var n=a._input;n&&(n.value=e.value,n.selectionStart=e.selectionStart,n.selectionEnd=e.selectionEnd,a.props.onValueChange(e.value))},a._applyEdits=function(e){var n=a._input,d=a._history.stack[a._history.offset];d&&n&&(a._history.stack[a._history.offset]=r(r({},d),{selectionStart:n.selectionStart,selectionEnd:n.selectionEnd})),a._recordChange(e),a._updateInput(e)},a._undoEdit=function(){var e=a._history,n=e.stack,d=e.offset,t=n[d-1];t&&(a._updateInput(t),a._history.offset=Math.max(d-1,0))},a._redoEdit=function(){var e=a._history,n=e.stack,d=e.offset,t=n[d+1];t&&(a._updateInput(t),a._history.offset=Math.min(d+1,n.length-1))},a._handleKeyDown=function(e){var n=a.props,d=n.tabSize,t=n.insertSpaces,r=n.ignoreTabKey,o=n.onKeyDown;if(!o||(o(e),!e.defaultPrevented)){27===e.keyCode&&e.currentTarget.blur();var i=e.currentTarget,g=i.value,s=i.selectionStart,c=i.selectionEnd,f=(t?" ":"\t").repeat(d);if(9===e.keyCode&&!r&&a.state.capture)if(e.preventDefault(),e.shiftKey){var y=(S=a._getLines(g,s)).length-1,b=a._getLines(g,c).length-1,v=g.split("\n").map((function(e,a){return a>=y&&a<=b&&e.startsWith(f)?e.substring(f.length):e})).join("\n");if(g!==v){var w=S[y];a._applyEdits({value:v,selectionStart:(null==w?void 0:w.startsWith(f))?s-f.length:s,selectionEnd:c-(g.length-v.length)})}}else if(s!==c){var S,E=(S=a._getLines(g,s)).length-1,x=a._getLines(g,c).length-1;w=S[E];a._applyEdits({value:g.split("\n").map((function(e,a){return a>=E&&a<=x?f+e:e})).join("\n"),selectionStart:w&&/\S/.test(w)?s+f.length:s,selectionEnd:c+f.length*(x-E+1)})}else{var _=s+f.length;a._applyEdits({value:g.substring(0,s)+f+g.substring(c),selectionStart:_,selectionEnd:_})}else if(8===e.keyCode){var C=s!==c;if(g.substring(0,s).endsWith(f)&&!C){e.preventDefault();_=s-f.length;a._applyEdits({value:g.substring(0,s-f.length)+g.substring(c),selectionStart:_,selectionEnd:_})}}else if(13===e.keyCode){if(s===c){var D=a._getLines(g,s).pop(),k=null==D?void 0:D.match(/^\s+/);if(null==k?void 0:k[0]){e.preventDefault();var O="\n"+k[0];_=s+O.length;a._applyEdits({value:g.substring(0,s)+O+g.substring(c),selectionStart:_,selectionEnd:_})}}}else if(57===e.keyCode||e.keyCode===R||e.keyCode===l||e.keyCode===p){var A=void 0;57===e.keyCode&&e.shiftKey?A=["(",")"]:e.keyCode===R?A=e.shiftKey?["{","}"]:["[","]"]:e.keyCode===l?A=e.shiftKey?['"','"']:["'","'"]:e.keyCode!==p||e.shiftKey||(A=["`","`"]),s!==c&&A&&(e.preventDefault(),a._applyEdits({value:g.substring(0,s)+A[0]+g.substring(s,c)+A[1]+g.substring(c),selectionStart:s,selectionEnd:c+2}))}else!(m?e.metaKey&&e.keyCode===u:e.ctrlKey&&e.keyCode===u)||e.shiftKey||e.altKey?(m?e.metaKey&&e.keyCode===u&&e.shiftKey:h?e.ctrlKey&&89===e.keyCode:e.ctrlKey&&e.keyCode===u&&e.shiftKey)&&!e.altKey?(e.preventDefault(),a._redoEdit()):77!==e.keyCode||!e.ctrlKey||m&&!e.shiftKey||(e.preventDefault(),a.setState((function(e){return{capture:!e.capture}}))):(e.preventDefault(),a._undoEdit())}},a._handleChange=function(e){var n=e.currentTarget,d=n.value,t=n.selectionStart,r=n.selectionEnd;a._recordChange({value:d,selectionStart:t,selectionEnd:r},!0),a.props.onValueChange(d)},a._history={stack:[],offset:-1},a._input=null,a}return t(a,e),a.prototype.componentDidMount=function(){this._recordCurrentState()},Object.defineProperty(a.prototype,"session",{get:function(){return{history:this._history}},set:function(e){this._history=e.history},enumerable:!1,configurable:!0}),a.prototype.render=function(){var e=this,a=this.props,n=a.value,d=a.style,t=a.padding,o=a.highlight,i=a.textareaId,g=a.textareaClassName,u=a.autoFocus,R=a.disabled,l=a.form,p=a.maxLength,f=a.minLength,h=a.name,m=a.placeholder,v=a.readOnly,S=a.required,E=a.onClick,x=a.onFocus,_=a.onBlur,C=a.onKeyUp,D=(a.onKeyDown,a.onValueChange,a.tabSize,a.insertSpaces,a.ignoreTabKey,a.preClassName),k=s(a,["value","style","padding","highlight","textareaId","textareaClassName","autoFocus","disabled","form","maxLength","minLength","name","placeholder","readOnly","required","onClick","onFocus","onBlur","onKeyUp","onKeyDown","onValueChange","tabSize","insertSpaces","ignoreTabKey","preClassName"]),O={paddingTop:t,paddingRight:t,paddingBottom:t,paddingLeft:t},A=o(n);return c.createElement("div",r({},k,{style:r(r({},w.container),d)}),c.createElement("textarea",{ref:function(a){return e._input=a},style:r(r(r({},w.editor),w.textarea),O),className:y+(g?" ".concat(g):""),id:i,value:n,onChange:this._handleChange,onKeyDown:this._handleKeyDown,onClick:E,onKeyUp:C,onFocus:x,onBlur:_,disabled:R,form:l,maxLength:p,minLength:f,name:h,placeholder:m,readOnly:v,required:S,autoFocus:u,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"data-gramm":!1}),c.createElement("pre",r({className:D,"aria-hidden":"true",style:r(r(r({},w.editor),w.highlight),O)},"string"==typeof A?{dangerouslySetInnerHTML:{__html:A+"
"}}:{children:A})),c.createElement("style",{type:"text/css",dangerouslySetInnerHTML:{__html:b}}))},a.defaultProps={tabSize:2,insertSpaces:!0,ignoreTabKey:!1,padding:0},a}(c.Component);a.default=v;var w={container:{position:"relative",textAlign:"left",boxSizing:"border-box",padding:0,overflow:"hidden"},textarea:{position:"absolute",top:0,left:0,height:"100%",width:"100%",resize:"none",color:"inherit",overflow:"hidden",MozOsxFontSmoothing:"grayscale",WebkitFontSmoothing:"antialiased",WebkitTextFillColor:"transparent"},highlight:{position:"relative",pointerEvents:"none"},editor:{margin:0,border:0,background:"none",boxSizing:"inherit",display:"inherit",fontFamily:"inherit",fontSize:"inherit",fontStyle:"inherit",fontVariantLigatures:"inherit",fontWeight:"inherit",letterSpacing:"inherit",lineHeight:"inherit",tabSize:"inherit",textIndent:"inherit",textRendering:"inherit",textTransform:"inherit",whiteSpace:"pre-wrap",wordBreak:"keep-all",overflowWrap:"break-word"}}},7134:function(e,a,n){const d=n(82708)(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);d.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784),a.characters=d,a.strings=["©️","®️","‼️","⁉️","™️","ℹ️","↔️","↕️","↖️","↗️","↘️","↙️","↩️","↪️","⌨️","⏏️","⏭️","⏮️","⏯️","⏱️","⏲️","⏸️","⏹️","⏺️","Ⓜ️","▪️","▫️","▶️","◀️","◻️","◼️","☀️","☁️","☂️","☃️","☄️","☎️","☑️","☘️","☝️","☠️","☢️","☣️","☦️","☪️","☮️","☯️","☸️","☹️","☺️","♀️","♂️","♟️","♠️","♣️","♥️","♦️","♨️","♻️","♾️","⚒️","⚔️","⚕️","⚖️","⚗️","⚙️","⚛️","⚜️","⚠️","⚧️","⚰️","⚱️","⛈️","⛏️","⛑️","⛓️","⛩️","⛰️","⛱️","⛴️","⛷️","⛸️","⛹️","✂️","✈️","✉️","✌️","✍️","✏️","✒️","✔️","✖️","✝️","✡️","✳️","✴️","❄️","❇️","❣️","❤️","➡️","⤴️","⤵️","⬅️","⬆️","⬇️","〰️","〽️","㊗️","㊙️","🅰️","🅱️","🅾️","🅿️","🈂️","🈷️","🌡️","🌤️","🌥️","🌦️","🌧️","🌨️","🌩️","🌪️","🌫️","🌬️","🌶️","🍽️","🎖️","🎗️","🎙️","🎚️","🎛️","🎞️","🎟️","🏋️","🏌️","🏍️","🏎️","🏔️","🏕️","🏖️","🏗️","🏘️","🏙️","🏚️","🏛️","🏜️","🏝️","🏞️","🏟️","🏳️","🏵️","🏷️","🐿️","👁️","📽️","🕉️","🕊️","🕯️","🕰️","🕳️","🕴️","🕵️","🕶️","🕷️","🕸️","🕹️","🖇️","🖊️","🖋️","🖌️","🖍️","🖐️","🖥️","🖨️","🖱️","🖲️","🖼️","🗂️","🗃️","🗄️","🗑️","🗒️","🗓️","🗜️","🗝️","🗞️","🗡️","🗣️","🗨️","🗯️","🗳️","🗺️","🛋️","🛍️","🛎️","🛏️","🛠️","🛡️","🛢️","🛣️","🛤️","🛥️","🛩️","🛰️","🛳️"]},1354:function(e,a,n){const d=n(82708)();a.characters=d,a.strings=["#️⃣","*️⃣","0️⃣","1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣","8️⃣","9️⃣"]},64708:function(e,a,n){const d=n(82708)(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);d.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129672).addRange(129680,129725).addRange(129727,129733).addRange(129742,129755).addRange(129760,129768).addRange(129776,129784),a.characters=d,a.strings=["#️⃣","*️⃣","0️⃣","1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣","8️⃣","9️⃣","©️","®️","‼️","⁉️","™️","ℹ️","↔️","↕️","↖️","↗️","↘️","↙️","↩️","↪️","⌨️","⏏️","⏭️","⏮️","⏯️","⏱️","⏲️","⏸️","⏹️","⏺️","Ⓜ️","▪️","▫️","▶️","◀️","◻️","◼️","☀️","☁️","☂️","☃️","☄️","☎️","☑️","☘️","☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","☝️","☠️","☢️","☣️","☦️","☪️","☮️","☯️","☸️","☹️","☺️","♀️","♂️","♟️","♠️","♣️","♥️","♦️","♨️","♻️","♾️","⚒️","⚔️","⚕️","⚖️","⚗️","⚙️","⚛️","⚜️","⚠️","⚧️","⚰️","⚱️","⛈️","⛏️","⛑️","⛓️","⛩️","⛰️","⛱️","⛴️","⛷️","⛸️","⛹🏻","⛹🏻‍♀️","⛹🏻‍♂️","⛹🏼","⛹🏼‍♀️","⛹🏼‍♂️","⛹🏽","⛹🏽‍♀️","⛹🏽‍♂️","⛹🏾","⛹🏾‍♀️","⛹🏾‍♂️","⛹🏿","⛹🏿‍♀️","⛹🏿‍♂️","⛹️","⛹️‍♀️","⛹️‍♂️","✂️","✈️","✉️","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✌️","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","✍️","✏️","✒️","✔️","✖️","✝️","✡️","✳️","✴️","❄️","❇️","❣️","❤️","❤️‍🔥","❤️‍🩹","➡️","⤴️","⤵️","⬅️","⬆️","⬇️","〰️","〽️","㊗️","㊙️","🅰️","🅱️","🅾️","🅿️","🇦🇨","🇦🇩","🇦🇪","🇦🇫","🇦🇬","🇦🇮","🇦🇱","🇦🇲","🇦🇴","🇦🇶","🇦🇷","🇦🇸","🇦🇹","🇦🇺","🇦🇼","🇦🇽","🇦🇿","🇧🇦","🇧🇧","🇧🇩","🇧🇪","🇧🇫","🇧🇬","🇧🇭","🇧🇮","🇧🇯","🇧🇱","🇧🇲","🇧🇳","🇧🇴","🇧🇶","🇧🇷","🇧🇸","🇧🇹","🇧🇻","🇧🇼","🇧🇾","🇧🇿","🇨🇦","🇨🇨","🇨🇩","🇨🇫","🇨🇬","🇨🇭","🇨🇮","🇨🇰","🇨🇱","🇨🇲","🇨🇳","🇨🇴","🇨🇵","🇨🇷","🇨🇺","🇨🇻","🇨🇼","🇨🇽","🇨🇾","🇨🇿","🇩🇪","🇩🇬","🇩🇯","🇩🇰","🇩🇲","🇩🇴","🇩🇿","🇪🇦","🇪🇨","🇪🇪","🇪🇬","🇪🇭","🇪🇷","🇪🇸","🇪🇹","🇪🇺","🇫🇮","🇫🇯","🇫🇰","🇫🇲","🇫🇴","🇫🇷","🇬🇦","🇬🇧","🇬🇩","🇬🇪","🇬🇫","🇬🇬","🇬🇭","🇬🇮","🇬🇱","🇬🇲","🇬🇳","🇬🇵","🇬🇶","🇬🇷","🇬🇸","🇬🇹","🇬🇺","🇬🇼","🇬🇾","🇭🇰","🇭🇲","🇭🇳","🇭🇷","🇭🇹","🇭🇺","🇮🇨","🇮🇩","🇮🇪","🇮🇱","🇮🇲","🇮🇳","🇮🇴","🇮🇶","🇮🇷","🇮🇸","🇮🇹","🇯🇪","🇯🇲","🇯🇴","🇯🇵","🇰🇪","🇰🇬","🇰🇭","🇰🇮","🇰🇲","🇰🇳","🇰🇵","🇰🇷","🇰🇼","🇰🇾","🇰🇿","🇱🇦","🇱🇧","🇱🇨","🇱🇮","🇱🇰","🇱🇷","🇱🇸","🇱🇹","🇱🇺","🇱🇻","🇱🇾","🇲🇦","🇲🇨","🇲🇩","🇲🇪","🇲🇫","🇲🇬","🇲🇭","🇲🇰","🇲🇱","🇲🇲","🇲🇳","🇲🇴","🇲🇵","🇲🇶","🇲🇷","🇲🇸","🇲🇹","🇲🇺","🇲🇻","🇲🇼","🇲🇽","🇲🇾","🇲🇿","🇳🇦","🇳🇨","🇳🇪","🇳🇫","🇳🇬","🇳🇮","🇳🇱","🇳🇴","🇳🇵","🇳🇷","🇳🇺","🇳🇿","🇴🇲","🇵🇦","🇵🇪","🇵🇫","🇵🇬","🇵🇭","🇵🇰","🇵🇱","🇵🇲","🇵🇳","🇵🇷","🇵🇸","🇵🇹","🇵🇼","🇵🇾","🇶🇦","🇷🇪","🇷🇴","🇷🇸","🇷🇺","🇷🇼","🇸🇦","🇸🇧","🇸🇨","🇸🇩","🇸🇪","🇸🇬","🇸🇭","🇸🇮","🇸🇯","🇸🇰","🇸🇱","🇸🇲","🇸🇳","🇸🇴","🇸🇷","🇸🇸","🇸🇹","🇸🇻","🇸🇽","🇸🇾","🇸🇿","🇹🇦","🇹🇨","🇹🇩","🇹🇫","🇹🇬","🇹🇭","🇹🇯","🇹🇰","🇹🇱","🇹🇲","🇹🇳","🇹🇴","🇹🇷","🇹🇹","🇹🇻","🇹🇼","🇹🇿","🇺🇦","🇺🇬","🇺🇲","🇺🇳","🇺🇸","🇺🇾","🇺🇿","🇻🇦","🇻🇨","🇻🇪","🇻🇬","🇻🇮","🇻🇳","🇻🇺","🇼🇫","🇼🇸","🇽🇰","🇾🇪","🇾🇹","🇿🇦","🇿🇲","🇿🇼","🈂️","🈷️","🌡️","🌤️","🌥️","🌦️","🌧️","🌨️","🌩️","🌪️","🌫️","🌬️","🌶️","🍽️","🎅🏻","🎅🏼","🎅🏽","🎅🏾","🎅🏿","🎖️","🎗️","🎙️","🎚️","🎛️","🎞️","🎟️","🏂🏻","🏂🏼","🏂🏽","🏂🏾","🏂🏿","🏃‍♀️","🏃‍♂️","🏃🏻","🏃🏻‍♀️","🏃🏻‍♂️","🏃🏼","🏃🏼‍♀️","🏃🏼‍♂️","🏃🏽","🏃🏽‍♀️","🏃🏽‍♂️","🏃🏾","🏃🏾‍♀️","🏃🏾‍♂️","🏃🏿","🏃🏿‍♀️","🏃🏿‍♂️","🏄‍♀️","🏄‍♂️","🏄🏻","🏄🏻‍♀️","🏄🏻‍♂️","🏄🏼","🏄🏼‍♀️","🏄🏼‍♂️","🏄🏽","🏄🏽‍♀️","🏄🏽‍♂️","🏄🏾","🏄🏾‍♀️","🏄🏾‍♂️","🏄🏿","🏄🏿‍♀️","🏄🏿‍♂️","🏇🏻","🏇🏼","🏇🏽","🏇🏾","🏇🏿","🏊‍♀️","🏊‍♂️","🏊🏻","🏊🏻‍♀️","🏊🏻‍♂️","🏊🏼","🏊🏼‍♀️","🏊🏼‍♂️","🏊🏽","🏊🏽‍♀️","🏊🏽‍♂️","🏊🏾","🏊🏾‍♀️","🏊🏾‍♂️","🏊🏿","🏊🏿‍♀️","🏊🏿‍♂️","🏋🏻","🏋🏻‍♀️","🏋🏻‍♂️","🏋🏼","🏋🏼‍♀️","🏋🏼‍♂️","🏋🏽","🏋🏽‍♀️","🏋🏽‍♂️","🏋🏾","🏋🏾‍♀️","🏋🏾‍♂️","🏋🏿","🏋🏿‍♀️","🏋🏿‍♂️","🏋️","🏋️‍♀️","🏋️‍♂️","🏌🏻","🏌🏻‍♀️","🏌🏻‍♂️","🏌🏼","🏌🏼‍♀️","🏌🏼‍♂️","🏌🏽","🏌🏽‍♀️","🏌🏽‍♂️","🏌🏾","🏌🏾‍♀️","🏌🏾‍♂️","🏌🏿","🏌🏿‍♀️","🏌🏿‍♂️","🏌️","🏌️‍♀️","🏌️‍♂️","🏍️","🏎️","🏔️","🏕️","🏖️","🏗️","🏘️","🏙️","🏚️","🏛️","🏜️","🏝️","🏞️","🏟️","🏳️","🏳️‍⚧️","🏳️‍🌈","🏴‍☠️","🏴󠁧󠁢󠁥󠁮󠁧󠁿","🏴󠁧󠁢󠁳󠁣󠁴󠁿","🏴󠁧󠁢󠁷󠁬󠁳󠁿","🏵️","🏷️","🐈‍⬛","🐕‍🦺","🐦‍⬛","🐻‍❄️","🐿️","👁️","👁️‍🗨️","👂🏻","👂🏼","👂🏽","👂🏾","👂🏿","👃🏻","👃🏼","👃🏽","👃🏾","👃🏿","👆🏻","👆🏼","👆🏽","👆🏾","👆🏿","👇🏻","👇🏼","👇🏽","👇🏾","👇🏿","👈🏻","👈🏼","👈🏽","👈🏾","👈🏿","👉🏻","👉🏼","👉🏽","👉🏾","👉🏿","👊🏻","👊🏼","👊🏽","👊🏾","👊🏿","👋🏻","👋🏼","👋🏽","👋🏾","👋🏿","👌🏻","👌🏼","👌🏽","👌🏾","👌🏿","👍🏻","👍🏼","👍🏽","👍🏾","👍🏿","👎🏻","👎🏼","👎🏽","👎🏾","👎🏿","👏🏻","👏🏼","👏🏽","👏🏾","👏🏿","👐🏻","👐🏼","👐🏽","👐🏾","👐🏿","👦🏻","👦🏼","👦🏽","👦🏾","👦🏿","👧🏻","👧🏼","👧🏽","👧🏾","👧🏿","👨‍⚕️","👨‍⚖️","👨‍✈️","👨‍❤️‍👨","👨‍❤️‍💋‍👨","👨‍🌾","👨‍🍳","👨‍🍼","👨‍🎓","👨‍🎤","👨‍🎨","👨‍🏫","👨‍🏭","👨‍👦","👨‍👦‍👦","👨‍👧","👨‍👧‍👦","👨‍👧‍👧","👨‍👨‍👦","👨‍👨‍👦‍👦","👨‍👨‍👧","👨‍👨‍👧‍👦","👨‍👨‍👧‍👧","👨‍👩‍👦","👨‍👩‍👦‍👦","👨‍👩‍👧","👨‍👩‍👧‍👦","👨‍👩‍👧‍👧","👨‍💻","👨‍💼","👨‍🔧","👨‍🔬","👨‍🚀","👨‍🚒","👨‍🦯","👨‍🦰","👨‍🦱","👨‍🦲","👨‍🦳","👨‍🦼","👨‍🦽","👨🏻","👨🏻‍⚕️","👨🏻‍⚖️","👨🏻‍✈️","👨🏻‍❤️‍👨🏻","👨🏻‍❤️‍👨🏼","👨🏻‍❤️‍👨🏽","👨🏻‍❤️‍👨🏾","👨🏻‍❤️‍👨🏿","👨🏻‍❤️‍💋‍👨🏻","👨🏻‍❤️‍💋‍👨🏼","👨🏻‍❤️‍💋‍👨🏽","👨🏻‍❤️‍💋‍👨🏾","👨🏻‍❤️‍💋‍👨🏿","👨🏻‍🌾","👨🏻‍🍳","👨🏻‍🍼","👨🏻‍🎓","👨🏻‍🎤","👨🏻‍🎨","👨🏻‍🏫","👨🏻‍🏭","👨🏻‍💻","👨🏻‍💼","👨🏻‍🔧","👨🏻‍🔬","👨🏻‍🚀","👨🏻‍🚒","👨🏻‍🤝‍👨🏼","👨🏻‍🤝‍👨🏽","👨🏻‍🤝‍👨🏾","👨🏻‍🤝‍👨🏿","👨🏻‍🦯","👨🏻‍🦰","👨🏻‍🦱","👨🏻‍🦲","👨🏻‍🦳","👨🏻‍🦼","👨🏻‍🦽","👨🏼","👨🏼‍⚕️","👨🏼‍⚖️","👨🏼‍✈️","👨🏼‍❤️‍👨🏻","👨🏼‍❤️‍👨🏼","👨🏼‍❤️‍👨🏽","👨🏼‍❤️‍👨🏾","👨🏼‍❤️‍👨🏿","👨🏼‍❤️‍💋‍👨🏻","👨🏼‍❤️‍💋‍👨🏼","👨🏼‍❤️‍💋‍👨🏽","👨🏼‍❤️‍💋‍👨🏾","👨🏼‍❤️‍💋‍👨🏿","👨🏼‍🌾","👨🏼‍🍳","👨🏼‍🍼","👨🏼‍🎓","👨🏼‍🎤","👨🏼‍🎨","👨🏼‍🏫","👨🏼‍🏭","👨🏼‍💻","👨🏼‍💼","👨🏼‍🔧","👨🏼‍🔬","👨🏼‍🚀","👨🏼‍🚒","👨🏼‍🤝‍👨🏻","👨🏼‍🤝‍👨🏽","👨🏼‍🤝‍👨🏾","👨🏼‍🤝‍👨🏿","👨🏼‍🦯","👨🏼‍🦰","👨🏼‍🦱","👨🏼‍🦲","👨🏼‍🦳","👨🏼‍🦼","👨🏼‍🦽","👨🏽","👨🏽‍⚕️","👨🏽‍⚖️","👨🏽‍✈️","👨🏽‍❤️‍👨🏻","👨🏽‍❤️‍👨🏼","👨🏽‍❤️‍👨🏽","👨🏽‍❤️‍👨🏾","👨🏽‍❤️‍👨🏿","👨🏽‍❤️‍💋‍👨🏻","👨🏽‍❤️‍💋‍👨🏼","👨🏽‍❤️‍💋‍👨🏽","👨🏽‍❤️‍💋‍👨🏾","👨🏽‍❤️‍💋‍👨🏿","👨🏽‍🌾","👨🏽‍🍳","👨🏽‍🍼","👨🏽‍🎓","👨🏽‍🎤","👨🏽‍🎨","👨🏽‍🏫","👨🏽‍🏭","👨🏽‍💻","👨🏽‍💼","👨🏽‍🔧","👨🏽‍🔬","👨🏽‍🚀","👨🏽‍🚒","👨🏽‍🤝‍👨🏻","👨🏽‍🤝‍👨🏼","👨🏽‍🤝‍👨🏾","👨🏽‍🤝‍👨🏿","👨🏽‍🦯","👨🏽‍🦰","👨🏽‍🦱","👨🏽‍🦲","👨🏽‍🦳","👨🏽‍🦼","👨🏽‍🦽","👨🏾","👨🏾‍⚕️","👨🏾‍⚖️","👨🏾‍✈️","👨🏾‍❤️‍👨🏻","👨🏾‍❤️‍👨🏼","👨🏾‍❤️‍👨🏽","👨🏾‍❤️‍👨🏾","👨🏾‍❤️‍👨🏿","👨🏾‍❤️‍💋‍👨🏻","👨🏾‍❤️‍💋‍👨🏼","👨🏾‍❤️‍💋‍👨🏽","👨🏾‍❤️‍💋‍👨🏾","👨🏾‍❤️‍💋‍👨🏿","👨🏾‍🌾","👨🏾‍🍳","👨🏾‍🍼","👨🏾‍🎓","👨🏾‍🎤","👨🏾‍🎨","👨🏾‍🏫","👨🏾‍🏭","👨🏾‍💻","👨🏾‍💼","👨🏾‍🔧","👨🏾‍🔬","👨🏾‍🚀","👨🏾‍🚒","👨🏾‍🤝‍👨🏻","👨🏾‍🤝‍👨🏼","👨🏾‍🤝‍👨🏽","👨🏾‍🤝‍👨🏿","👨🏾‍🦯","👨🏾‍🦰","👨🏾‍🦱","👨🏾‍🦲","👨🏾‍🦳","👨🏾‍🦼","👨🏾‍🦽","👨🏿","👨🏿‍⚕️","👨🏿‍⚖️","👨🏿‍✈️","👨🏿‍❤️‍👨🏻","👨🏿‍❤️‍👨🏼","👨🏿‍❤️‍👨🏽","👨🏿‍❤️‍👨🏾","👨🏿‍❤️‍👨🏿","👨🏿‍❤️‍💋‍👨🏻","👨🏿‍❤️‍💋‍👨🏼","👨🏿‍❤️‍💋‍👨🏽","👨🏿‍❤️‍💋‍👨🏾","👨🏿‍❤️‍💋‍👨🏿","👨🏿‍🌾","👨🏿‍🍳","👨🏿‍🍼","👨🏿‍🎓","👨🏿‍🎤","👨🏿‍🎨","👨🏿‍🏫","👨🏿‍🏭","👨🏿‍💻","👨🏿‍💼","👨🏿‍🔧","👨🏿‍🔬","👨🏿‍🚀","👨🏿‍🚒","👨🏿‍🤝‍👨🏻","👨🏿‍🤝‍👨🏼","👨🏿‍🤝‍👨🏽","👨🏿‍🤝‍👨🏾","👨🏿‍🦯","👨🏿‍🦰","👨🏿‍🦱","👨🏿‍🦲","👨🏿‍🦳","👨🏿‍🦼","👨🏿‍🦽","👩‍⚕️","👩‍⚖️","👩‍✈️","👩‍❤️‍👨","👩‍❤️‍👩","👩‍❤️‍💋‍👨","👩‍❤️‍💋‍👩","👩‍🌾","👩‍🍳","👩‍🍼","👩‍🎓","👩‍🎤","👩‍🎨","👩‍🏫","👩‍🏭","👩‍👦","👩‍👦‍👦","👩‍👧","👩‍👧‍👦","👩‍👧‍👧","👩‍👩‍👦","👩‍👩‍👦‍👦","👩‍👩‍👧","👩‍👩‍👧‍👦","👩‍👩‍👧‍👧","👩‍💻","👩‍💼","👩‍🔧","👩‍🔬","👩‍🚀","👩‍🚒","👩‍🦯","👩‍🦰","👩‍🦱","👩‍🦲","👩‍🦳","👩‍🦼","👩‍🦽","👩🏻","👩🏻‍⚕️","👩🏻‍⚖️","👩🏻‍✈️","👩🏻‍❤️‍👨🏻","👩🏻‍❤️‍👨🏼","👩🏻‍❤️‍👨🏽","👩🏻‍❤️‍👨🏾","👩🏻‍❤️‍👨🏿","👩🏻‍❤️‍👩🏻","👩🏻‍❤️‍👩🏼","👩🏻‍❤️‍👩🏽","👩🏻‍❤️‍👩🏾","👩🏻‍❤️‍👩🏿","👩🏻‍❤️‍💋‍👨🏻","👩🏻‍❤️‍💋‍👨🏼","👩🏻‍❤️‍💋‍👨🏽","👩🏻‍❤️‍💋‍👨🏾","👩🏻‍❤️‍💋‍👨🏿","👩🏻‍❤️‍💋‍👩🏻","👩🏻‍❤️‍💋‍👩🏼","👩🏻‍❤️‍💋‍👩🏽","👩🏻‍❤️‍💋‍👩🏾","👩🏻‍❤️‍💋‍👩🏿","👩🏻‍🌾","👩🏻‍🍳","👩🏻‍🍼","👩🏻‍🎓","👩🏻‍🎤","👩🏻‍🎨","👩🏻‍🏫","👩🏻‍🏭","👩🏻‍💻","👩🏻‍💼","👩🏻‍🔧","👩🏻‍🔬","👩🏻‍🚀","👩🏻‍🚒","👩🏻‍🤝‍👨🏼","👩🏻‍🤝‍👨🏽","👩🏻‍🤝‍👨🏾","👩🏻‍🤝‍👨🏿","👩🏻‍🤝‍👩🏼","👩🏻‍🤝‍👩🏽","👩🏻‍🤝‍👩🏾","👩🏻‍🤝‍👩🏿","👩🏻‍🦯","👩🏻‍🦰","👩🏻‍🦱","👩🏻‍🦲","👩🏻‍🦳","👩🏻‍🦼","👩🏻‍🦽","👩🏼","👩🏼‍⚕️","👩🏼‍⚖️","👩🏼‍✈️","👩🏼‍❤️‍👨🏻","👩🏼‍❤️‍👨🏼","👩🏼‍❤️‍👨🏽","👩🏼‍❤️‍👨🏾","👩🏼‍❤️‍👨🏿","👩🏼‍❤️‍👩🏻","👩🏼‍❤️‍👩🏼","👩🏼‍❤️‍👩🏽","👩🏼‍❤️‍👩🏾","👩🏼‍❤️‍👩🏿","👩🏼‍❤️‍💋‍👨🏻","👩🏼‍❤️‍💋‍👨🏼","👩🏼‍❤️‍💋‍👨🏽","👩🏼‍❤️‍💋‍👨🏾","👩🏼‍❤️‍💋‍👨🏿","👩🏼‍❤️‍💋‍👩🏻","👩🏼‍❤️‍💋‍👩🏼","👩🏼‍❤️‍💋‍👩🏽","👩🏼‍❤️‍💋‍👩🏾","👩🏼‍❤️‍💋‍👩🏿","👩🏼‍🌾","👩🏼‍🍳","👩🏼‍🍼","👩🏼‍🎓","👩🏼‍🎤","👩🏼‍🎨","👩🏼‍🏫","👩🏼‍🏭","👩🏼‍💻","👩🏼‍💼","👩🏼‍🔧","👩🏼‍🔬","👩🏼‍🚀","👩🏼‍🚒","👩🏼‍🤝‍👨🏻","👩🏼‍🤝‍👨🏽","👩🏼‍🤝‍👨🏾","👩🏼‍🤝‍👨🏿","👩🏼‍🤝‍👩🏻","👩🏼‍🤝‍👩🏽","👩🏼‍🤝‍👩🏾","👩🏼‍🤝‍👩🏿","👩🏼‍🦯","👩🏼‍🦰","👩🏼‍🦱","👩🏼‍🦲","👩🏼‍🦳","👩🏼‍🦼","👩🏼‍🦽","👩🏽","👩🏽‍⚕️","👩🏽‍⚖️","👩🏽‍✈️","👩🏽‍❤️‍👨🏻","👩🏽‍❤️‍👨🏼","👩🏽‍❤️‍👨🏽","👩🏽‍❤️‍👨🏾","👩🏽‍❤️‍👨🏿","👩🏽‍❤️‍👩🏻","👩🏽‍❤️‍👩🏼","👩🏽‍❤️‍👩🏽","👩🏽‍❤️‍👩🏾","👩🏽‍❤️‍👩🏿","👩🏽‍❤️‍💋‍👨🏻","👩🏽‍❤️‍💋‍👨🏼","👩🏽‍❤️‍💋‍👨🏽","👩🏽‍❤️‍💋‍👨🏾","👩🏽‍❤️‍💋‍👨🏿","👩🏽‍❤️‍💋‍👩🏻","👩🏽‍❤️‍💋‍👩🏼","👩🏽‍❤️‍💋‍👩🏽","👩🏽‍❤️‍💋‍👩🏾","👩🏽‍❤️‍💋‍👩🏿","👩🏽‍🌾","👩🏽‍🍳","👩🏽‍🍼","👩🏽‍🎓","👩🏽‍🎤","👩🏽‍🎨","👩🏽‍🏫","👩🏽‍🏭","👩🏽‍💻","👩🏽‍💼","👩🏽‍🔧","👩🏽‍🔬","👩🏽‍🚀","👩🏽‍🚒","👩🏽‍🤝‍👨🏻","👩🏽‍🤝‍👨🏼","👩🏽‍🤝‍👨🏾","👩🏽‍🤝‍👨🏿","👩🏽‍🤝‍👩🏻","👩🏽‍🤝‍👩🏼","👩🏽‍🤝‍👩🏾","👩🏽‍🤝‍👩🏿","👩🏽‍🦯","👩🏽‍🦰","👩🏽‍🦱","👩🏽‍🦲","👩🏽‍🦳","👩🏽‍🦼","👩🏽‍🦽","👩🏾","👩🏾‍⚕️","👩🏾‍⚖️","👩🏾‍✈️","👩🏾‍❤️‍👨🏻","👩🏾‍❤️‍👨🏼","👩🏾‍❤️‍👨🏽","👩🏾‍❤️‍👨🏾","👩🏾‍❤️‍👨🏿","👩🏾‍❤️‍👩🏻","👩🏾‍❤️‍👩🏼","👩🏾‍❤️‍👩🏽","👩🏾‍❤️‍👩🏾","👩🏾‍❤️‍👩🏿","👩🏾‍❤️‍💋‍👨🏻","👩🏾‍❤️‍💋‍👨🏼","👩🏾‍❤️‍💋‍👨🏽","👩🏾‍❤️‍💋‍👨🏾","👩🏾‍❤️‍💋‍👨🏿","👩🏾‍❤️‍💋‍👩🏻","👩🏾‍❤️‍💋‍👩🏼","👩🏾‍❤️‍💋‍👩🏽","👩🏾‍❤️‍💋‍👩🏾","👩🏾‍❤️‍💋‍👩🏿","👩🏾‍🌾","👩🏾‍🍳","👩🏾‍🍼","👩🏾‍🎓","👩🏾‍🎤","👩🏾‍🎨","👩🏾‍🏫","👩🏾‍🏭","👩🏾‍💻","👩🏾‍💼","👩🏾‍🔧","👩🏾‍🔬","👩🏾‍🚀","👩🏾‍🚒","👩🏾‍🤝‍👨🏻","👩🏾‍🤝‍👨🏼","👩🏾‍🤝‍👨🏽","👩🏾‍🤝‍👨🏿","👩🏾‍🤝‍👩🏻","👩🏾‍🤝‍👩🏼","👩🏾‍🤝‍👩🏽","👩🏾‍🤝‍👩🏿","👩🏾‍🦯","👩🏾‍🦰","👩🏾‍🦱","👩🏾‍🦲","👩🏾‍🦳","👩🏾‍🦼","👩🏾‍🦽","👩🏿","👩🏿‍⚕️","👩🏿‍⚖️","👩🏿‍✈️","👩🏿‍❤️‍👨🏻","👩🏿‍❤️‍👨🏼","👩🏿‍❤️‍👨🏽","👩🏿‍❤️‍👨🏾","👩🏿‍❤️‍👨🏿","👩🏿‍❤️‍👩🏻","👩🏿‍❤️‍👩🏼","👩🏿‍❤️‍👩🏽","👩🏿‍❤️‍👩🏾","👩🏿‍❤️‍👩🏿","👩🏿‍❤️‍💋‍👨🏻","👩🏿‍❤️‍💋‍👨🏼","👩🏿‍❤️‍💋‍👨🏽","👩🏿‍❤️‍💋‍👨🏾","👩🏿‍❤️‍💋‍👨🏿","👩🏿‍❤️‍💋‍👩🏻","👩🏿‍❤️‍💋‍👩🏼","👩🏿‍❤️‍💋‍👩🏽","👩🏿‍❤️‍💋‍👩🏾","👩🏿‍❤️‍💋‍👩🏿","👩🏿‍🌾","👩🏿‍🍳","👩🏿‍🍼","👩🏿‍🎓","👩🏿‍🎤","👩🏿‍🎨","👩🏿‍🏫","👩🏿‍🏭","👩🏿‍💻","👩🏿‍💼","👩🏿‍🔧","👩🏿‍🔬","👩🏿‍🚀","👩🏿‍🚒","👩🏿‍🤝‍👨🏻","👩🏿‍🤝‍👨🏼","👩🏿‍🤝‍👨🏽","👩🏿‍🤝‍👨🏾","👩🏿‍🤝‍👩🏻","👩🏿‍🤝‍👩🏼","👩🏿‍🤝‍👩🏽","👩🏿‍🤝‍👩🏾","👩🏿‍🦯","👩🏿‍🦰","👩🏿‍🦱","👩🏿‍🦲","👩🏿‍🦳","👩🏿‍🦼","👩🏿‍🦽","👫🏻","👫🏼","👫🏽","👫🏾","👫🏿","👬🏻","👬🏼","👬🏽","👬🏾","👬🏿","👭🏻","👭🏼","👭🏽","👭🏾","👭🏿","👮‍♀️","👮‍♂️","👮🏻","👮🏻‍♀️","👮🏻‍♂️","👮🏼","👮🏼‍♀️","👮🏼‍♂️","👮🏽","👮🏽‍♀️","👮🏽‍♂️","👮🏾","👮🏾‍♀️","👮🏾‍♂️","👮🏿","👮🏿‍♀️","👮🏿‍♂️","👯‍♀️","👯‍♂️","👰‍♀️","👰‍♂️","👰🏻","👰🏻‍♀️","👰🏻‍♂️","👰🏼","👰🏼‍♀️","👰🏼‍♂️","👰🏽","👰🏽‍♀️","👰🏽‍♂️","👰🏾","👰🏾‍♀️","👰🏾‍♂️","👰🏿","👰🏿‍♀️","👰🏿‍♂️","👱‍♀️","👱‍♂️","👱🏻","👱🏻‍♀️","👱🏻‍♂️","👱🏼","👱🏼‍♀️","👱🏼‍♂️","👱🏽","👱🏽‍♀️","👱🏽‍♂️","👱🏾","👱🏾‍♀️","👱🏾‍♂️","👱🏿","👱🏿‍♀️","👱🏿‍♂️","👲🏻","👲🏼","👲🏽","👲🏾","👲🏿","👳‍♀️","👳‍♂️","👳🏻","👳🏻‍♀️","👳🏻‍♂️","👳🏼","👳🏼‍♀️","👳🏼‍♂️","👳🏽","👳🏽‍♀️","👳🏽‍♂️","👳🏾","👳🏾‍♀️","👳🏾‍♂️","👳🏿","👳🏿‍♀️","👳🏿‍♂️","👴🏻","👴🏼","👴🏽","👴🏾","👴🏿","👵🏻","👵🏼","👵🏽","👵🏾","👵🏿","👶🏻","👶🏼","👶🏽","👶🏾","👶🏿","👷‍♀️","👷‍♂️","👷🏻","👷🏻‍♀️","👷🏻‍♂️","👷🏼","👷🏼‍♀️","👷🏼‍♂️","👷🏽","👷🏽‍♀️","👷🏽‍♂️","👷🏾","👷🏾‍♀️","👷🏾‍♂️","👷🏿","👷🏿‍♀️","👷🏿‍♂️","👸🏻","👸🏼","👸🏽","👸🏾","👸🏿","👼🏻","👼🏼","👼🏽","👼🏾","👼🏿","💁‍♀️","💁‍♂️","💁🏻","💁🏻‍♀️","💁🏻‍♂️","💁🏼","💁🏼‍♀️","💁🏼‍♂️","💁🏽","💁🏽‍♀️","💁🏽‍♂️","💁🏾","💁🏾‍♀️","💁🏾‍♂️","💁🏿","💁🏿‍♀️","💁🏿‍♂️","💂‍♀️","💂‍♂️","💂🏻","💂🏻‍♀️","💂🏻‍♂️","💂🏼","💂🏼‍♀️","💂🏼‍♂️","💂🏽","💂🏽‍♀️","💂🏽‍♂️","💂🏾","💂🏾‍♀️","💂🏾‍♂️","💂🏿","💂🏿‍♀️","💂🏿‍♂️","💃🏻","💃🏼","💃🏽","💃🏾","💃🏿","💅🏻","💅🏼","💅🏽","💅🏾","💅🏿","💆‍♀️","💆‍♂️","💆🏻","💆🏻‍♀️","💆🏻‍♂️","💆🏼","💆🏼‍♀️","💆🏼‍♂️","💆🏽","💆🏽‍♀️","💆🏽‍♂️","💆🏾","💆🏾‍♀️","💆🏾‍♂️","💆🏿","💆🏿‍♀️","💆🏿‍♂️","💇‍♀️","💇‍♂️","💇🏻","💇🏻‍♀️","💇🏻‍♂️","💇🏼","💇🏼‍♀️","💇🏼‍♂️","💇🏽","💇🏽‍♀️","💇🏽‍♂️","💇🏾","💇🏾‍♀️","💇🏾‍♂️","💇🏿","💇🏿‍♀️","💇🏿‍♂️","💏🏻","💏🏼","💏🏽","💏🏾","💏🏿","💑🏻","💑🏼","💑🏽","💑🏾","💑🏿","💪🏻","💪🏼","💪🏽","💪🏾","💪🏿","📽️","🕉️","🕊️","🕯️","🕰️","🕳️","🕴🏻","🕴🏼","🕴🏽","🕴🏾","🕴🏿","🕴️","🕵🏻","🕵🏻‍♀️","🕵🏻‍♂️","🕵🏼","🕵🏼‍♀️","🕵🏼‍♂️","🕵🏽","🕵🏽‍♀️","🕵🏽‍♂️","🕵🏾","🕵🏾‍♀️","🕵🏾‍♂️","🕵🏿","🕵🏿‍♀️","🕵🏿‍♂️","🕵️","🕵️‍♀️","🕵️‍♂️","🕶️","🕷️","🕸️","🕹️","🕺🏻","🕺🏼","🕺🏽","🕺🏾","🕺🏿","🖇️","🖊️","🖋️","🖌️","🖍️","🖐🏻","🖐🏼","🖐🏽","🖐🏾","🖐🏿","🖐️","🖕🏻","🖕🏼","🖕🏽","🖕🏾","🖕🏿","🖖🏻","🖖🏼","🖖🏽","🖖🏾","🖖🏿","🖥️","🖨️","🖱️","🖲️","🖼️","🗂️","🗃️","🗄️","🗑️","🗒️","🗓️","🗜️","🗝️","🗞️","🗡️","🗣️","🗨️","🗯️","🗳️","🗺️","😮‍💨","😵‍💫","😶‍🌫️","🙅‍♀️","🙅‍♂️","🙅🏻","🙅🏻‍♀️","🙅🏻‍♂️","🙅🏼","🙅🏼‍♀️","🙅🏼‍♂️","🙅🏽","🙅🏽‍♀️","🙅🏽‍♂️","🙅🏾","🙅🏾‍♀️","🙅🏾‍♂️","🙅🏿","🙅🏿‍♀️","🙅🏿‍♂️","🙆‍♀️","🙆‍♂️","🙆🏻","🙆🏻‍♀️","🙆🏻‍♂️","🙆🏼","🙆🏼‍♀️","🙆🏼‍♂️","🙆🏽","🙆🏽‍♀️","🙆🏽‍♂️","🙆🏾","🙆🏾‍♀️","🙆🏾‍♂️","🙆🏿","🙆🏿‍♀️","🙆🏿‍♂️","🙇‍♀️","🙇‍♂️","🙇🏻","🙇🏻‍♀️","🙇🏻‍♂️","🙇🏼","🙇🏼‍♀️","🙇🏼‍♂️","🙇🏽","🙇🏽‍♀️","🙇🏽‍♂️","🙇🏾","🙇🏾‍♀️","🙇🏾‍♂️","🙇🏿","🙇🏿‍♀️","🙇🏿‍♂️","🙋‍♀️","🙋‍♂️","🙋🏻","🙋🏻‍♀️","🙋🏻‍♂️","🙋🏼","🙋🏼‍♀️","🙋🏼‍♂️","🙋🏽","🙋🏽‍♀️","🙋🏽‍♂️","🙋🏾","🙋🏾‍♀️","🙋🏾‍♂️","🙋🏿","🙋🏿‍♀️","🙋🏿‍♂️","🙌🏻","🙌🏼","🙌🏽","🙌🏾","🙌🏿","🙍‍♀️","🙍‍♂️","🙍🏻","🙍🏻‍♀️","🙍🏻‍♂️","🙍🏼","🙍🏼‍♀️","🙍🏼‍♂️","🙍🏽","🙍🏽‍♀️","🙍🏽‍♂️","🙍🏾","🙍🏾‍♀️","🙍🏾‍♂️","🙍🏿","🙍🏿‍♀️","🙍🏿‍♂️","🙎‍♀️","🙎‍♂️","🙎🏻","🙎🏻‍♀️","🙎🏻‍♂️","🙎🏼","🙎🏼‍♀️","🙎🏼‍♂️","🙎🏽","🙎🏽‍♀️","🙎🏽‍♂️","🙎🏾","🙎🏾‍♀️","🙎🏾‍♂️","🙎🏿","🙎🏿‍♀️","🙎🏿‍♂️","🙏🏻","🙏🏼","🙏🏽","🙏🏾","🙏🏿","🚣‍♀️","🚣‍♂️","🚣🏻","🚣🏻‍♀️","🚣🏻‍♂️","🚣🏼","🚣🏼‍♀️","🚣🏼‍♂️","🚣🏽","🚣🏽‍♀️","🚣🏽‍♂️","🚣🏾","🚣🏾‍♀️","🚣🏾‍♂️","🚣🏿","🚣🏿‍♀️","🚣🏿‍♂️","🚴‍♀️","🚴‍♂️","🚴🏻","🚴🏻‍♀️","🚴🏻‍♂️","🚴🏼","🚴🏼‍♀️","🚴🏼‍♂️","🚴🏽","🚴🏽‍♀️","🚴🏽‍♂️","🚴🏾","🚴🏾‍♀️","🚴🏾‍♂️","🚴🏿","🚴🏿‍♀️","🚴🏿‍♂️","🚵‍♀️","🚵‍♂️","🚵🏻","🚵🏻‍♀️","🚵🏻‍♂️","🚵🏼","🚵🏼‍♀️","🚵🏼‍♂️","🚵🏽","🚵🏽‍♀️","🚵🏽‍♂️","🚵🏾","🚵🏾‍♀️","🚵🏾‍♂️","🚵🏿","🚵🏿‍♀️","🚵🏿‍♂️","🚶‍♀️","🚶‍♂️","🚶🏻","🚶🏻‍♀️","🚶🏻‍♂️","🚶🏼","🚶🏼‍♀️","🚶🏼‍♂️","🚶🏽","🚶🏽‍♀️","🚶🏽‍♂️","🚶🏾","🚶🏾‍♀️","🚶🏾‍♂️","🚶🏿","🚶🏿‍♀️","🚶🏿‍♂️","🛀🏻","🛀🏼","🛀🏽","🛀🏾","🛀🏿","🛋️","🛌🏻","🛌🏼","🛌🏽","🛌🏾","🛌🏿","🛍️","🛎️","🛏️","🛠️","🛡️","🛢️","🛣️","🛤️","🛥️","🛩️","🛰️","🛳️","🤌🏻","🤌🏼","🤌🏽","🤌🏾","🤌🏿","🤏🏻","🤏🏼","🤏🏽","🤏🏾","🤏🏿","🤘🏻","🤘🏼","🤘🏽","🤘🏾","🤘🏿","🤙🏻","🤙🏼","🤙🏽","🤙🏾","🤙🏿","🤚🏻","🤚🏼","🤚🏽","🤚🏾","🤚🏿","🤛🏻","🤛🏼","🤛🏽","🤛🏾","🤛🏿","🤜🏻","🤜🏼","🤜🏽","🤜🏾","🤜🏿","🤝🏻","🤝🏼","🤝🏽","🤝🏾","🤝🏿","🤞🏻","🤞🏼","🤞🏽","🤞🏾","🤞🏿","🤟🏻","🤟🏼","🤟🏽","🤟🏾","🤟🏿","🤦‍♀️","🤦‍♂️","🤦🏻","🤦🏻‍♀️","🤦🏻‍♂️","🤦🏼","🤦🏼‍♀️","🤦🏼‍♂️","🤦🏽","🤦🏽‍♀️","🤦🏽‍♂️","🤦🏾","🤦🏾‍♀️","🤦🏾‍♂️","🤦🏿","🤦🏿‍♀️","🤦🏿‍♂️","🤰🏻","🤰🏼","🤰🏽","🤰🏾","🤰🏿","🤱🏻","🤱🏼","🤱🏽","🤱🏾","🤱🏿","🤲🏻","🤲🏼","🤲🏽","🤲🏾","🤲🏿","🤳🏻","🤳🏼","🤳🏽","🤳🏾","🤳🏿","🤴🏻","🤴🏼","🤴🏽","🤴🏾","🤴🏿","🤵‍♀️","🤵‍♂️","🤵🏻","🤵🏻‍♀️","🤵🏻‍♂️","🤵🏼","🤵🏼‍♀️","🤵🏼‍♂️","🤵🏽","🤵🏽‍♀️","🤵🏽‍♂️","🤵🏾","🤵🏾‍♀️","🤵🏾‍♂️","🤵🏿","🤵🏿‍♀️","🤵🏿‍♂️","🤶🏻","🤶🏼","🤶🏽","🤶🏾","🤶🏿","🤷‍♀️","🤷‍♂️","🤷🏻","🤷🏻‍♀️","🤷🏻‍♂️","🤷🏼","🤷🏼‍♀️","🤷🏼‍♂️","🤷🏽","🤷🏽‍♀️","🤷🏽‍♂️","🤷🏾","🤷🏾‍♀️","🤷🏾‍♂️","🤷🏿","🤷🏿‍♀️","🤷🏿‍♂️","🤸‍♀️","🤸‍♂️","🤸🏻","🤸🏻‍♀️","🤸🏻‍♂️","🤸🏼","🤸🏼‍♀️","🤸🏼‍♂️","🤸🏽","🤸🏽‍♀️","🤸🏽‍♂️","🤸🏾","🤸🏾‍♀️","🤸🏾‍♂️","🤸🏿","🤸🏿‍♀️","🤸🏿‍♂️","🤹‍♀️","🤹‍♂️","🤹🏻","🤹🏻‍♀️","🤹🏻‍♂️","🤹🏼","🤹🏼‍♀️","🤹🏼‍♂️","🤹🏽","🤹🏽‍♀️","🤹🏽‍♂️","🤹🏾","🤹🏾‍♀️","🤹🏾‍♂️","🤹🏿","🤹🏿‍♀️","🤹🏿‍♂️","🤼‍♀️","🤼‍♂️","🤽‍♀️","🤽‍♂️","🤽🏻","🤽🏻‍♀️","🤽🏻‍♂️","🤽🏼","🤽🏼‍♀️","🤽🏼‍♂️","🤽🏽","🤽🏽‍♀️","🤽🏽‍♂️","🤽🏾","🤽🏾‍♀️","🤽🏾‍♂️","🤽🏿","🤽🏿‍♀️","🤽🏿‍♂️","🤾‍♀️","🤾‍♂️","🤾🏻","🤾🏻‍♀️","🤾🏻‍♂️","🤾🏼","🤾🏼‍♀️","🤾🏼‍♂️","🤾🏽","🤾🏽‍♀️","🤾🏽‍♂️","🤾🏾","🤾🏾‍♀️","🤾🏾‍♂️","🤾🏿","🤾🏿‍♀️","🤾🏿‍♂️","🥷🏻","🥷🏼","🥷🏽","🥷🏾","🥷🏿","🦵🏻","🦵🏼","🦵🏽","🦵🏾","🦵🏿","🦶🏻","🦶🏼","🦶🏽","🦶🏾","🦶🏿","🦸‍♀️","🦸‍♂️","🦸🏻","🦸🏻‍♀️","🦸🏻‍♂️","🦸🏼","🦸🏼‍♀️","🦸🏼‍♂️","🦸🏽","🦸🏽‍♀️","🦸🏽‍♂️","🦸🏾","🦸🏾‍♀️","🦸🏾‍♂️","🦸🏿","🦸🏿‍♀️","🦸🏿‍♂️","🦹‍♀️","🦹‍♂️","🦹🏻","🦹🏻‍♀️","🦹🏻‍♂️","🦹🏼","🦹🏼‍♀️","🦹🏼‍♂️","🦹🏽","🦹🏽‍♀️","🦹🏽‍♂️","🦹🏾","🦹🏾‍♀️","🦹🏾‍♂️","🦹🏿","🦹🏿‍♀️","🦹🏿‍♂️","🦻🏻","🦻🏼","🦻🏽","🦻🏾","🦻🏿","🧍‍♀️","🧍‍♂️","🧍🏻","🧍🏻‍♀️","🧍🏻‍♂️","🧍🏼","🧍🏼‍♀️","🧍🏼‍♂️","🧍🏽","🧍🏽‍♀️","🧍🏽‍♂️","🧍🏾","🧍🏾‍♀️","🧍🏾‍♂️","🧍🏿","🧍🏿‍♀️","🧍🏿‍♂️","🧎‍♀️","🧎‍♂️","🧎🏻","🧎🏻‍♀️","🧎🏻‍♂️","🧎🏼","🧎🏼‍♀️","🧎🏼‍♂️","🧎🏽","🧎🏽‍♀️","🧎🏽‍♂️","🧎🏾","🧎🏾‍♀️","🧎🏾‍♂️","🧎🏿","🧎🏿‍♀️","🧎🏿‍♂️","🧏‍♀️","🧏‍♂️","🧏🏻","🧏🏻‍♀️","🧏🏻‍♂️","🧏🏼","🧏🏼‍♀️","🧏🏼‍♂️","🧏🏽","🧏🏽‍♀️","🧏🏽‍♂️","🧏🏾","🧏🏾‍♀️","🧏🏾‍♂️","🧏🏿","🧏🏿‍♀️","🧏🏿‍♂️","🧑‍⚕️","🧑‍⚖️","🧑‍✈️","🧑‍🌾","🧑‍🍳","🧑‍🍼","🧑‍🎄","🧑‍🎓","🧑‍🎤","🧑‍🎨","🧑‍🏫","🧑‍🏭","🧑‍💻","🧑‍💼","🧑‍🔧","🧑‍🔬","🧑‍🚀","🧑‍🚒","🧑‍🤝‍🧑","🧑‍🦯","🧑‍🦰","🧑‍🦱","🧑‍🦲","🧑‍🦳","🧑‍🦼","🧑‍🦽","🧑🏻","🧑🏻‍⚕️","🧑🏻‍⚖️","🧑🏻‍✈️","🧑🏻‍❤️‍💋‍🧑🏼","🧑🏻‍❤️‍💋‍🧑🏽","🧑🏻‍❤️‍💋‍🧑🏾","🧑🏻‍❤️‍💋‍🧑🏿","🧑🏻‍❤️‍🧑🏼","🧑🏻‍❤️‍🧑🏽","🧑🏻‍❤️‍🧑🏾","🧑🏻‍❤️‍🧑🏿","🧑🏻‍🌾","🧑🏻‍🍳","🧑🏻‍🍼","🧑🏻‍🎄","🧑🏻‍🎓","🧑🏻‍🎤","🧑🏻‍🎨","🧑🏻‍🏫","🧑🏻‍🏭","🧑🏻‍💻","🧑🏻‍💼","🧑🏻‍🔧","🧑🏻‍🔬","🧑🏻‍🚀","🧑🏻‍🚒","🧑🏻‍🤝‍🧑🏻","🧑🏻‍🤝‍🧑🏼","🧑🏻‍🤝‍🧑🏽","🧑🏻‍🤝‍🧑🏾","🧑🏻‍🤝‍🧑🏿","🧑🏻‍🦯","🧑🏻‍🦰","🧑🏻‍🦱","🧑🏻‍🦲","🧑🏻‍🦳","🧑🏻‍🦼","🧑🏻‍🦽","🧑🏼","🧑🏼‍⚕️","🧑🏼‍⚖️","🧑🏼‍✈️","🧑🏼‍❤️‍💋‍🧑🏻","🧑🏼‍❤️‍💋‍🧑🏽","🧑🏼‍❤️‍💋‍🧑🏾","🧑🏼‍❤️‍💋‍🧑🏿","🧑🏼‍❤️‍🧑🏻","🧑🏼‍❤️‍🧑🏽","🧑🏼‍❤️‍🧑🏾","🧑🏼‍❤️‍🧑🏿","🧑🏼‍🌾","🧑🏼‍🍳","🧑🏼‍🍼","🧑🏼‍🎄","🧑🏼‍🎓","🧑🏼‍🎤","🧑🏼‍🎨","🧑🏼‍🏫","🧑🏼‍🏭","🧑🏼‍💻","🧑🏼‍💼","🧑🏼‍🔧","🧑🏼‍🔬","🧑🏼‍🚀","🧑🏼‍🚒","🧑🏼‍🤝‍🧑🏻","🧑🏼‍🤝‍🧑🏼","🧑🏼‍🤝‍🧑🏽","🧑🏼‍🤝‍🧑🏾","🧑🏼‍🤝‍🧑🏿","🧑🏼‍🦯","🧑🏼‍🦰","🧑🏼‍🦱","🧑🏼‍🦲","🧑🏼‍🦳","🧑🏼‍🦼","🧑🏼‍🦽","🧑🏽","🧑🏽‍⚕️","🧑🏽‍⚖️","🧑🏽‍✈️","🧑🏽‍❤️‍💋‍🧑🏻","🧑🏽‍❤️‍💋‍🧑🏼","🧑🏽‍❤️‍💋‍🧑🏾","🧑🏽‍❤️‍💋‍🧑🏿","🧑🏽‍❤️‍🧑🏻","🧑🏽‍❤️‍🧑🏼","🧑🏽‍❤️‍🧑🏾","🧑🏽‍❤️‍🧑🏿","🧑🏽‍🌾","🧑🏽‍🍳","🧑🏽‍🍼","🧑🏽‍🎄","🧑🏽‍🎓","🧑🏽‍🎤","🧑🏽‍🎨","🧑🏽‍🏫","🧑🏽‍🏭","🧑🏽‍💻","🧑🏽‍💼","🧑🏽‍🔧","🧑🏽‍🔬","🧑🏽‍🚀","🧑🏽‍🚒","🧑🏽‍🤝‍🧑🏻","🧑🏽‍🤝‍🧑🏼","🧑🏽‍🤝‍🧑🏽","🧑🏽‍🤝‍🧑🏾","🧑🏽‍🤝‍🧑🏿","🧑🏽‍🦯","🧑🏽‍🦰","🧑🏽‍🦱","🧑🏽‍🦲","🧑🏽‍🦳","🧑🏽‍🦼","🧑🏽‍🦽","🧑🏾","🧑🏾‍⚕️","🧑🏾‍⚖️","🧑🏾‍✈️","🧑🏾‍❤️‍💋‍🧑🏻","🧑🏾‍❤️‍💋‍🧑🏼","🧑🏾‍❤️‍💋‍🧑🏽","🧑🏾‍❤️‍💋‍🧑🏿","🧑🏾‍❤️‍🧑🏻","🧑🏾‍❤️‍🧑🏼","🧑🏾‍❤️‍🧑🏽","🧑🏾‍❤️‍🧑🏿","🧑🏾‍🌾","🧑🏾‍🍳","🧑🏾‍🍼","🧑🏾‍🎄","🧑🏾‍🎓","🧑🏾‍🎤","🧑🏾‍🎨","🧑🏾‍🏫","🧑🏾‍🏭","🧑🏾‍💻","🧑🏾‍💼","🧑🏾‍🔧","🧑🏾‍🔬","🧑🏾‍🚀","🧑🏾‍🚒","🧑🏾‍🤝‍🧑🏻","🧑🏾‍🤝‍🧑🏼","🧑🏾‍🤝‍🧑🏽","🧑🏾‍🤝‍🧑🏾","🧑🏾‍🤝‍🧑🏿","🧑🏾‍🦯","🧑🏾‍🦰","🧑🏾‍🦱","🧑🏾‍🦲","🧑🏾‍🦳","🧑🏾‍🦼","🧑🏾‍🦽","🧑🏿","🧑🏿‍⚕️","🧑🏿‍⚖️","🧑🏿‍✈️","🧑🏿‍❤️‍💋‍🧑🏻","🧑🏿‍❤️‍💋‍🧑🏼","🧑🏿‍❤️‍💋‍🧑🏽","🧑🏿‍❤️‍💋‍🧑🏾","🧑🏿‍❤️‍🧑🏻","🧑🏿‍❤️‍🧑🏼","🧑🏿‍❤️‍🧑🏽","🧑🏿‍❤️‍🧑🏾","🧑🏿‍🌾","🧑🏿‍🍳","🧑🏿‍🍼","🧑🏿‍🎄","🧑🏿‍🎓","🧑🏿‍🎤","🧑🏿‍🎨","🧑🏿‍🏫","🧑🏿‍🏭","🧑🏿‍💻","🧑🏿‍💼","🧑🏿‍🔧","🧑🏿‍🔬","🧑🏿‍🚀","🧑🏿‍🚒","🧑🏿‍🤝‍🧑🏻","🧑🏿‍🤝‍🧑🏼","🧑🏿‍🤝‍🧑🏽","🧑🏿‍🤝‍🧑🏾","🧑🏿‍🤝‍🧑🏿","🧑🏿‍🦯","🧑🏿‍🦰","🧑🏿‍🦱","🧑🏿‍🦲","🧑🏿‍🦳","🧑🏿‍🦼","🧑🏿‍🦽","🧒🏻","🧒🏼","🧒🏽","🧒🏾","🧒🏿","🧓🏻","🧓🏼","🧓🏽","🧓🏾","🧓🏿","🧔‍♀️","🧔‍♂️","🧔🏻","🧔🏻‍♀️","🧔🏻‍♂️","🧔🏼","🧔🏼‍♀️","🧔🏼‍♂️","🧔🏽","🧔🏽‍♀️","🧔🏽‍♂️","🧔🏾","🧔🏾‍♀️","🧔🏾‍♂️","🧔🏿","🧔🏿‍♀️","🧔🏿‍♂️","🧕🏻","🧕🏼","🧕🏽","🧕🏾","🧕🏿","🧖‍♀️","🧖‍♂️","🧖🏻","🧖🏻‍♀️","🧖🏻‍♂️","🧖🏼","🧖🏼‍♀️","🧖🏼‍♂️","🧖🏽","🧖🏽‍♀️","🧖🏽‍♂️","🧖🏾","🧖🏾‍♀️","🧖🏾‍♂️","🧖🏿","🧖🏿‍♀️","🧖🏿‍♂️","🧗‍♀️","🧗‍♂️","🧗🏻","🧗🏻‍♀️","🧗🏻‍♂️","🧗🏼","🧗🏼‍♀️","🧗🏼‍♂️","🧗🏽","🧗🏽‍♀️","🧗🏽‍♂️","🧗🏾","🧗🏾‍♀️","🧗🏾‍♂️","🧗🏿","🧗🏿‍♀️","🧗🏿‍♂️","🧘‍♀️","🧘‍♂️","🧘🏻","🧘🏻‍♀️","🧘🏻‍♂️","🧘🏼","🧘🏼‍♀️","🧘🏼‍♂️","🧘🏽","🧘🏽‍♀️","🧘🏽‍♂️","🧘🏾","🧘🏾‍♀️","🧘🏾‍♂️","🧘🏿","🧘🏿‍♀️","🧘🏿‍♂️","🧙‍♀️","🧙‍♂️","🧙🏻","🧙🏻‍♀️","🧙🏻‍♂️","🧙🏼","🧙🏼‍♀️","🧙🏼‍♂️","🧙🏽","🧙🏽‍♀️","🧙🏽‍♂️","🧙🏾","🧙🏾‍♀️","🧙🏾‍♂️","🧙🏿","🧙🏿‍♀️","🧙🏿‍♂️","🧚‍♀️","🧚‍♂️","🧚🏻","🧚🏻‍♀️","🧚🏻‍♂️","🧚🏼","🧚🏼‍♀️","🧚🏼‍♂️","🧚🏽","🧚🏽‍♀️","🧚🏽‍♂️","🧚🏾","🧚🏾‍♀️","🧚🏾‍♂️","🧚🏿","🧚🏿‍♀️","🧚🏿‍♂️","🧛‍♀️","🧛‍♂️","🧛🏻","🧛🏻‍♀️","🧛🏻‍♂️","🧛🏼","🧛🏼‍♀️","🧛🏼‍♂️","🧛🏽","🧛🏽‍♀️","🧛🏽‍♂️","🧛🏾","🧛🏾‍♀️","🧛🏾‍♂️","🧛🏿","🧛🏿‍♀️","🧛🏿‍♂️","🧜‍♀️","🧜‍♂️","🧜🏻","🧜🏻‍♀️","🧜🏻‍♂️","🧜🏼","🧜🏼‍♀️","🧜🏼‍♂️","🧜🏽","🧜🏽‍♀️","🧜🏽‍♂️","🧜🏾","🧜🏾‍♀️","🧜🏾‍♂️","🧜🏿","🧜🏿‍♀️","🧜🏿‍♂️","🧝‍♀️","🧝‍♂️","🧝🏻","🧝🏻‍♀️","🧝🏻‍♂️","🧝🏼","🧝🏼‍♀️","🧝🏼‍♂️","🧝🏽","🧝🏽‍♀️","🧝🏽‍♂️","🧝🏾","🧝🏾‍♀️","🧝🏾‍♂️","🧝🏿","🧝🏿‍♀️","🧝🏿‍♂️","🧞‍♀️","🧞‍♂️","🧟‍♀️","🧟‍♂️","🫃🏻","🫃🏼","🫃🏽","🫃🏾","🫃🏿","🫄🏻","🫄🏼","🫄🏽","🫄🏾","🫄🏿","🫅🏻","🫅🏼","🫅🏽","🫅🏾","🫅🏿","🫰🏻","🫰🏼","🫰🏽","🫰🏾","🫰🏿","🫱🏻","🫱🏻‍🫲🏼","🫱🏻‍🫲🏽","🫱🏻‍🫲🏾","🫱🏻‍🫲🏿","🫱🏼","🫱🏼‍🫲🏻","🫱🏼‍🫲🏽","🫱🏼‍🫲🏾","🫱🏼‍🫲🏿","🫱🏽","🫱🏽‍🫲🏻","🫱🏽‍🫲🏼","🫱🏽‍🫲🏾","🫱🏽‍🫲🏿","🫱🏾","🫱🏾‍🫲🏻","🫱🏾‍🫲🏼","🫱🏾‍🫲🏽","🫱🏾‍🫲🏿","🫱🏿","🫱🏿‍🫲🏻","🫱🏿‍🫲🏼","🫱🏿‍🫲🏽","🫱🏿‍🫲🏾","🫲🏻","🫲🏼","🫲🏽","🫲🏾","🫲🏿","🫳🏻","🫳🏼","🫳🏽","🫳🏾","🫳🏿","🫴🏻","🫴🏼","🫴🏽","🫴🏾","🫴🏿","🫵🏻","🫵🏼","🫵🏽","🫵🏾","🫵🏿","🫶🏻","🫶🏼","🫶🏽","🫶🏾","🫶🏿","🫷🏻","🫷🏼","🫷🏽","🫷🏾","🫷🏿","🫸🏻","🫸🏼","🫸🏽","🫸🏾","🫸🏿"]},32530:function(e,a,n){const d=n(82708)();a.characters=d,a.strings=["🇦🇨","🇦🇩","🇦🇪","🇦🇫","🇦🇬","🇦🇮","🇦🇱","🇦🇲","🇦🇴","🇦🇶","🇦🇷","🇦🇸","🇦🇹","🇦🇺","🇦🇼","🇦🇽","🇦🇿","🇧🇦","🇧🇧","🇧🇩","🇧🇪","🇧🇫","🇧🇬","🇧🇭","🇧🇮","🇧🇯","🇧🇱","🇧🇲","🇧🇳","🇧🇴","🇧🇶","🇧🇷","🇧🇸","🇧🇹","🇧🇻","🇧🇼","🇧🇾","🇧🇿","🇨🇦","🇨🇨","🇨🇩","🇨🇫","🇨🇬","🇨🇭","🇨🇮","🇨🇰","🇨🇱","🇨🇲","🇨🇳","🇨🇴","🇨🇵","🇨🇷","🇨🇺","🇨🇻","🇨🇼","🇨🇽","🇨🇾","🇨🇿","🇩🇪","🇩🇬","🇩🇯","🇩🇰","🇩🇲","🇩🇴","🇩🇿","🇪🇦","🇪🇨","🇪🇪","🇪🇬","🇪🇭","🇪🇷","🇪🇸","🇪🇹","🇪🇺","🇫🇮","🇫🇯","🇫🇰","🇫🇲","🇫🇴","🇫🇷","🇬🇦","🇬🇧","🇬🇩","🇬🇪","🇬🇫","🇬🇬","🇬🇭","🇬🇮","🇬🇱","🇬🇲","🇬🇳","🇬🇵","🇬🇶","🇬🇷","🇬🇸","🇬🇹","🇬🇺","🇬🇼","🇬🇾","🇭🇰","🇭🇲","🇭🇳","🇭🇷","🇭🇹","🇭🇺","🇮🇨","🇮🇩","🇮🇪","🇮🇱","🇮🇲","🇮🇳","🇮🇴","🇮🇶","🇮🇷","🇮🇸","🇮🇹","🇯🇪","🇯🇲","🇯🇴","🇯🇵","🇰🇪","🇰🇬","🇰🇭","🇰🇮","🇰🇲","🇰🇳","🇰🇵","🇰🇷","🇰🇼","🇰🇾","🇰🇿","🇱🇦","🇱🇧","🇱🇨","🇱🇮","🇱🇰","🇱🇷","🇱🇸","🇱🇹","🇱🇺","🇱🇻","🇱🇾","🇲🇦","🇲🇨","🇲🇩","🇲🇪","🇲🇫","🇲🇬","🇲🇭","🇲🇰","🇲🇱","🇲🇲","🇲🇳","🇲🇴","🇲🇵","🇲🇶","🇲🇷","🇲🇸","🇲🇹","🇲🇺","🇲🇻","🇲🇼","🇲🇽","🇲🇾","🇲🇿","🇳🇦","🇳🇨","🇳🇪","🇳🇫","🇳🇬","🇳🇮","🇳🇱","🇳🇴","🇳🇵","🇳🇷","🇳🇺","🇳🇿","🇴🇲","🇵🇦","🇵🇪","🇵🇫","🇵🇬","🇵🇭","🇵🇰","🇵🇱","🇵🇲","🇵🇳","🇵🇷","🇵🇸","🇵🇹","🇵🇼","🇵🇾","🇶🇦","🇷🇪","🇷🇴","🇷🇸","🇷🇺","🇷🇼","🇸🇦","🇸🇧","🇸🇨","🇸🇩","🇸🇪","🇸🇬","🇸🇭","🇸🇮","🇸🇯","🇸🇰","🇸🇱","🇸🇲","🇸🇳","🇸🇴","🇸🇷","🇸🇸","🇸🇹","🇸🇻","🇸🇽","🇸🇾","🇸🇿","🇹🇦","🇹🇨","🇹🇩","🇹🇫","🇹🇬","🇹🇭","🇹🇯","🇹🇰","🇹🇱","🇹🇲","🇹🇳","🇹🇴","🇹🇷","🇹🇹","🇹🇻","🇹🇼","🇹🇿","🇺🇦","🇺🇬","🇺🇲","🇺🇳","🇺🇸","🇺🇾","🇺🇿","🇻🇦","🇻🇨","🇻🇪","🇻🇬","🇻🇮","🇻🇳","🇻🇺","🇼🇫","🇼🇸","🇽🇰","🇾🇪","🇾🇹","🇿🇦","🇿🇲","🇿🇼"]},76685:function(e,a,n){const d=n(82708)();a.characters=d,a.strings=["☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","⛹🏻","⛹🏼","⛹🏽","⛹🏾","⛹🏿","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","🎅🏻","🎅🏼","🎅🏽","🎅🏾","🎅🏿","🏂🏻","🏂🏼","🏂🏽","🏂🏾","🏂🏿","🏃🏻","🏃🏼","🏃🏽","🏃🏾","🏃🏿","🏄🏻","🏄🏼","🏄🏽","🏄🏾","🏄🏿","🏇🏻","🏇🏼","🏇🏽","🏇🏾","🏇🏿","🏊🏻","🏊🏼","🏊🏽","🏊🏾","🏊🏿","🏋🏻","🏋🏼","🏋🏽","🏋🏾","🏋🏿","🏌🏻","🏌🏼","🏌🏽","🏌🏾","🏌🏿","👂🏻","👂🏼","👂🏽","👂🏾","👂🏿","👃🏻","👃🏼","👃🏽","👃🏾","👃🏿","👆🏻","👆🏼","👆🏽","👆🏾","👆🏿","👇🏻","👇🏼","👇🏽","👇🏾","👇🏿","👈🏻","👈🏼","👈🏽","👈🏾","👈🏿","👉🏻","👉🏼","👉🏽","👉🏾","👉🏿","👊🏻","👊🏼","👊🏽","👊🏾","👊🏿","👋🏻","👋🏼","👋🏽","👋🏾","👋🏿","👌🏻","👌🏼","👌🏽","👌🏾","👌🏿","👍🏻","👍🏼","👍🏽","👍🏾","👍🏿","👎🏻","👎🏼","👎🏽","👎🏾","👎🏿","👏🏻","👏🏼","👏🏽","👏🏾","👏🏿","👐🏻","👐🏼","👐🏽","👐🏾","👐🏿","👦🏻","👦🏼","👦🏽","👦🏾","👦🏿","👧🏻","👧🏼","👧🏽","👧🏾","👧🏿","👨🏻","👨🏼","👨🏽","👨🏾","👨🏿","👩🏻","👩🏼","👩🏽","👩🏾","👩🏿","👫🏻","👫🏼","👫🏽","👫🏾","👫🏿","👬🏻","👬🏼","👬🏽","👬🏾","👬🏿","👭🏻","👭🏼","👭🏽","👭🏾","👭🏿","👮🏻","👮🏼","👮🏽","👮🏾","👮🏿","👰🏻","👰🏼","👰🏽","👰🏾","👰🏿","👱🏻","👱🏼","👱🏽","👱🏾","👱🏿","👲🏻","👲🏼","👲🏽","👲🏾","👲🏿","👳🏻","👳🏼","👳🏽","👳🏾","👳🏿","👴🏻","👴🏼","👴🏽","👴🏾","👴🏿","👵🏻","👵🏼","👵🏽","👵🏾","👵🏿","👶🏻","👶🏼","👶🏽","👶🏾","👶🏿","👷🏻","👷🏼","👷🏽","👷🏾","👷🏿","👸🏻","👸🏼","👸🏽","👸🏾","👸🏿","👼🏻","👼🏼","👼🏽","👼🏾","👼🏿","💁🏻","💁🏼","💁🏽","💁🏾","💁🏿","💂🏻","💂🏼","💂🏽","💂🏾","💂🏿","💃🏻","💃🏼","💃🏽","💃🏾","💃🏿","💅🏻","💅🏼","💅🏽","💅🏾","💅🏿","💆🏻","💆🏼","💆🏽","💆🏾","💆🏿","💇🏻","💇🏼","💇🏽","💇🏾","💇🏿","💏🏻","💏🏼","💏🏽","💏🏾","💏🏿","💑🏻","💑🏼","💑🏽","💑🏾","💑🏿","💪🏻","💪🏼","💪🏽","💪🏾","💪🏿","🕴🏻","🕴🏼","🕴🏽","🕴🏾","🕴🏿","🕵🏻","🕵🏼","🕵🏽","🕵🏾","🕵🏿","🕺🏻","🕺🏼","🕺🏽","🕺🏾","🕺🏿","🖐🏻","🖐🏼","🖐🏽","🖐🏾","🖐🏿","🖕🏻","🖕🏼","🖕🏽","🖕🏾","🖕🏿","🖖🏻","🖖🏼","🖖🏽","🖖🏾","🖖🏿","🙅🏻","🙅🏼","🙅🏽","🙅🏾","🙅🏿","🙆🏻","🙆🏼","🙆🏽","🙆🏾","🙆🏿","🙇🏻","🙇🏼","🙇🏽","🙇🏾","🙇🏿","🙋🏻","🙋🏼","🙋🏽","🙋🏾","🙋🏿","🙌🏻","🙌🏼","🙌🏽","🙌🏾","🙌🏿","🙍🏻","🙍🏼","🙍🏽","🙍🏾","🙍🏿","🙎🏻","🙎🏼","🙎🏽","🙎🏾","🙎🏿","🙏🏻","🙏🏼","🙏🏽","🙏🏾","🙏🏿","🚣🏻","🚣🏼","🚣🏽","🚣🏾","🚣🏿","🚴🏻","🚴🏼","🚴🏽","🚴🏾","🚴🏿","🚵🏻","🚵🏼","🚵🏽","🚵🏾","🚵🏿","🚶🏻","🚶🏼","🚶🏽","🚶🏾","🚶🏿","🛀🏻","🛀🏼","🛀🏽","🛀🏾","🛀🏿","🛌🏻","🛌🏼","🛌🏽","🛌🏾","🛌🏿","🤌🏻","🤌🏼","🤌🏽","🤌🏾","🤌🏿","🤏🏻","🤏🏼","🤏🏽","🤏🏾","🤏🏿","🤘🏻","🤘🏼","🤘🏽","🤘🏾","🤘🏿","🤙🏻","🤙🏼","🤙🏽","🤙🏾","🤙🏿","🤚🏻","🤚🏼","🤚🏽","🤚🏾","🤚🏿","🤛🏻","🤛🏼","🤛🏽","🤛🏾","🤛🏿","🤜🏻","🤜🏼","🤜🏽","🤜🏾","🤜🏿","🤝🏻","🤝🏼","🤝🏽","🤝🏾","🤝🏿","🤞🏻","🤞🏼","🤞🏽","🤞🏾","🤞🏿","🤟🏻","🤟🏼","🤟🏽","🤟🏾","🤟🏿","🤦🏻","🤦🏼","🤦🏽","🤦🏾","🤦🏿","🤰🏻","🤰🏼","🤰🏽","🤰🏾","🤰🏿","🤱🏻","🤱🏼","🤱🏽","🤱🏾","🤱🏿","🤲🏻","🤲🏼","🤲🏽","🤲🏾","🤲🏿","🤳🏻","🤳🏼","🤳🏽","🤳🏾","🤳🏿","🤴🏻","🤴🏼","🤴🏽","🤴🏾","🤴🏿","🤵🏻","🤵🏼","🤵🏽","🤵🏾","🤵🏿","🤶🏻","🤶🏼","🤶🏽","🤶🏾","🤶🏿","🤷🏻","🤷🏼","🤷🏽","🤷🏾","🤷🏿","🤸🏻","🤸🏼","🤸🏽","🤸🏾","🤸🏿","🤹🏻","🤹🏼","🤹🏽","🤹🏾","🤹🏿","🤽🏻","🤽🏼","🤽🏽","🤽🏾","🤽🏿","🤾🏻","🤾🏼","🤾🏽","🤾🏾","🤾🏿","🥷🏻","🥷🏼","🥷🏽","🥷🏾","🥷🏿","🦵🏻","🦵🏼","🦵🏽","🦵🏾","🦵🏿","🦶🏻","🦶🏼","🦶🏽","🦶🏾","🦶🏿","🦸🏻","🦸🏼","🦸🏽","🦸🏾","🦸🏿","🦹🏻","🦹🏼","🦹🏽","🦹🏾","🦹🏿","🦻🏻","🦻🏼","🦻🏽","🦻🏾","🦻🏿","🧍🏻","🧍🏼","🧍🏽","🧍🏾","🧍🏿","🧎🏻","🧎🏼","🧎🏽","🧎🏾","🧎🏿","🧏🏻","🧏🏼","🧏🏽","🧏🏾","🧏🏿","🧑🏻","🧑🏼","🧑🏽","🧑🏾","🧑🏿","🧒🏻","🧒🏼","🧒🏽","🧒🏾","🧒🏿","🧓🏻","🧓🏼","🧓🏽","🧓🏾","🧓🏿","🧔🏻","🧔🏼","🧔🏽","🧔🏾","🧔🏿","🧕🏻","🧕🏼","🧕🏽","🧕🏾","🧕🏿","🧖🏻","🧖🏼","🧖🏽","🧖🏾","🧖🏿","🧗🏻","🧗🏼","🧗🏽","🧗🏾","🧗🏿","🧘🏻","🧘🏼","🧘🏽","🧘🏾","🧘🏿","🧙🏻","🧙🏼","🧙🏽","🧙🏾","🧙🏿","🧚🏻","🧚🏼","🧚🏽","🧚🏾","🧚🏿","🧛🏻","🧛🏼","🧛🏽","🧛🏾","🧛🏿","🧜🏻","🧜🏼","🧜🏽","🧜🏾","🧜🏿","🧝🏻","🧝🏼","🧝🏽","🧝🏾","🧝🏿","🫃🏻","🫃🏼","🫃🏽","🫃🏾","🫃🏿","🫄🏻","🫄🏼","🫄🏽","🫄🏾","🫄🏿","🫅🏻","🫅🏼","🫅🏽","🫅🏾","🫅🏿","🫰🏻","🫰🏼","🫰🏽","🫰🏾","🫰🏿","🫱🏻","🫱🏼","🫱🏽","🫱🏾","🫱🏿","🫲🏻","🫲🏼","🫲🏽","🫲🏾","🫲🏿","🫳🏻","🫳🏼","🫳🏽","🫳🏾","🫳🏿","🫴🏻","🫴🏼","🫴🏽","🫴🏾","🫴🏿","🫵🏻","🫵🏼","🫵🏽","🫵🏾","🫵🏿","🫶🏻","🫶🏼","🫶🏽","🫶🏾","🫶🏿","🫷🏻","🫷🏼","🫷🏽","🫷🏾","🫷🏿","🫸🏻","🫸🏼","🫸🏽","🫸🏾","🫸🏿"]},80852:function(e,a,n){const d=n(82708)();a.characters=d,a.strings=["🏴󠁧󠁢󠁥󠁮󠁧󠁿","🏴󠁧󠁢󠁳󠁣󠁴󠁿","🏴󠁧󠁢󠁷󠁬󠁳󠁿"]},70523:function(e,a,n){const d=n(82708)();a.characters=d,a.strings=["👨‍❤️‍👨","👨‍❤️‍💋‍👨","👨‍👦","👨‍👦‍👦","👨‍👧","👨‍👧‍👦","👨‍👧‍👧","👨‍👨‍👦","👨‍👨‍👦‍👦","👨‍👨‍👧","👨‍👨‍👧‍👦","👨‍👨‍👧‍👧","👨‍👩‍👦","👨‍👩‍👦‍👦","👨‍👩‍👧","👨‍👩‍👧‍👦","👨‍👩‍👧‍👧","👨🏻‍❤️‍👨🏻","👨🏻‍❤️‍👨🏼","👨🏻‍❤️‍👨🏽","👨🏻‍❤️‍👨🏾","👨🏻‍❤️‍👨🏿","👨🏻‍❤️‍💋‍👨🏻","👨🏻‍❤️‍💋‍👨🏼","👨🏻‍❤️‍💋‍👨🏽","👨🏻‍❤️‍💋‍👨🏾","👨🏻‍❤️‍💋‍👨🏿","👨🏻‍🤝‍👨🏼","👨🏻‍🤝‍👨🏽","👨🏻‍🤝‍👨🏾","👨🏻‍🤝‍👨🏿","👨🏼‍❤️‍👨🏻","👨🏼‍❤️‍👨🏼","👨🏼‍❤️‍👨🏽","👨🏼‍❤️‍👨🏾","👨🏼‍❤️‍👨🏿","👨🏼‍❤️‍💋‍👨🏻","👨🏼‍❤️‍💋‍👨🏼","👨🏼‍❤️‍💋‍👨🏽","👨🏼‍❤️‍💋‍👨🏾","👨🏼‍❤️‍💋‍👨🏿","👨🏼‍🤝‍👨🏻","👨🏼‍🤝‍👨🏽","👨🏼‍🤝‍👨🏾","👨🏼‍🤝‍👨🏿","👨🏽‍❤️‍👨🏻","👨🏽‍❤️‍👨🏼","👨🏽‍❤️‍👨🏽","👨🏽‍❤️‍👨🏾","👨🏽‍❤️‍👨🏿","👨🏽‍❤️‍💋‍👨🏻","👨🏽‍❤️‍💋‍👨🏼","👨🏽‍❤️‍💋‍👨🏽","👨🏽‍❤️‍💋‍👨🏾","👨🏽‍❤️‍💋‍👨🏿","👨🏽‍🤝‍👨🏻","👨🏽‍🤝‍👨🏼","👨🏽‍🤝‍👨🏾","👨🏽‍🤝‍👨🏿","👨🏾‍❤️‍👨🏻","👨🏾‍❤️‍👨🏼","👨🏾‍❤️‍👨🏽","👨🏾‍❤️‍👨🏾","👨🏾‍❤️‍👨🏿","👨🏾‍❤️‍💋‍👨🏻","👨🏾‍❤️‍💋‍👨🏼","👨🏾‍❤️‍💋‍👨🏽","👨🏾‍❤️‍💋‍👨🏾","👨🏾‍❤️‍💋‍👨🏿","👨🏾‍🤝‍👨🏻","👨🏾‍🤝‍👨🏼","👨🏾‍🤝‍👨🏽","👨🏾‍🤝‍👨🏿","👨🏿‍❤️‍👨🏻","👨🏿‍❤️‍👨🏼","👨🏿‍❤️‍👨🏽","👨🏿‍❤️‍👨🏾","👨🏿‍❤️‍👨🏿","👨🏿‍❤️‍💋‍👨🏻","👨🏿‍❤️‍💋‍👨🏼","👨🏿‍❤️‍💋‍👨🏽","👨🏿‍❤️‍💋‍👨🏾","👨🏿‍❤️‍💋‍👨🏿","👨🏿‍🤝‍👨🏻","👨🏿‍🤝‍👨🏼","👨🏿‍🤝‍👨🏽","👨🏿‍🤝‍👨🏾","👩‍❤️‍👨","👩‍❤️‍👩","👩‍❤️‍💋‍👨","👩‍❤️‍💋‍👩","👩‍👦","👩‍👦‍👦","👩‍👧","👩‍👧‍👦","👩‍👧‍👧","👩‍👩‍👦","👩‍👩‍👦‍👦","👩‍👩‍👧","👩‍👩‍👧‍👦","👩‍👩‍👧‍👧","👩🏻‍❤️‍👨🏻","👩🏻‍❤️‍👨🏼","👩🏻‍❤️‍👨🏽","👩🏻‍❤️‍👨🏾","👩🏻‍❤️‍👨🏿","👩🏻‍❤️‍👩🏻","👩🏻‍❤️‍👩🏼","👩🏻‍❤️‍👩🏽","👩🏻‍❤️‍👩🏾","👩🏻‍❤️‍👩🏿","👩🏻‍❤️‍💋‍👨🏻","👩🏻‍❤️‍💋‍👨🏼","👩🏻‍❤️‍💋‍👨🏽","👩🏻‍❤️‍💋‍👨🏾","👩🏻‍❤️‍💋‍👨🏿","👩🏻‍❤️‍💋‍👩🏻","👩🏻‍❤️‍💋‍👩🏼","👩🏻‍❤️‍💋‍👩🏽","👩🏻‍❤️‍💋‍👩🏾","👩🏻‍❤️‍💋‍👩🏿","👩🏻‍🤝‍👨🏼","👩🏻‍🤝‍👨🏽","👩🏻‍🤝‍👨🏾","👩🏻‍🤝‍👨🏿","👩🏻‍🤝‍👩🏼","👩🏻‍🤝‍👩🏽","👩🏻‍🤝‍👩🏾","👩🏻‍🤝‍👩🏿","👩🏼‍❤️‍👨🏻","👩🏼‍❤️‍👨🏼","👩🏼‍❤️‍👨🏽","👩🏼‍❤️‍👨🏾","👩🏼‍❤️‍👨🏿","👩🏼‍❤️‍👩🏻","👩🏼‍❤️‍👩🏼","👩🏼‍❤️‍👩🏽","👩🏼‍❤️‍👩🏾","👩🏼‍❤️‍👩🏿","👩🏼‍❤️‍💋‍👨🏻","👩🏼‍❤️‍💋‍👨🏼","👩🏼‍❤️‍💋‍👨🏽","👩🏼‍❤️‍💋‍👨🏾","👩🏼‍❤️‍💋‍👨🏿","👩🏼‍❤️‍💋‍👩🏻","👩🏼‍❤️‍💋‍👩🏼","👩🏼‍❤️‍💋‍👩🏽","👩🏼‍❤️‍💋‍👩🏾","👩🏼‍❤️‍💋‍👩🏿","👩🏼‍🤝‍👨🏻","👩🏼‍🤝‍👨🏽","👩🏼‍🤝‍👨🏾","👩🏼‍🤝‍👨🏿","👩🏼‍🤝‍👩🏻","👩🏼‍🤝‍👩🏽","👩🏼‍🤝‍👩🏾","👩🏼‍🤝‍👩🏿","👩🏽‍❤️‍👨🏻","👩🏽‍❤️‍👨🏼","👩🏽‍❤️‍👨🏽","👩🏽‍❤️‍👨🏾","👩🏽‍❤️‍👨🏿","👩🏽‍❤️‍👩🏻","👩🏽‍❤️‍👩🏼","👩🏽‍❤️‍👩🏽","👩🏽‍❤️‍👩🏾","👩🏽‍❤️‍👩🏿","👩🏽‍❤️‍💋‍👨🏻","👩🏽‍❤️‍💋‍👨🏼","👩🏽‍❤️‍💋‍👨🏽","👩🏽‍❤️‍💋‍👨🏾","👩🏽‍❤️‍💋‍👨🏿","👩🏽‍❤️‍💋‍👩🏻","👩🏽‍❤️‍💋‍👩🏼","👩🏽‍❤️‍💋‍👩🏽","👩🏽‍❤️‍💋‍👩🏾","👩🏽‍❤️‍💋‍👩🏿","👩🏽‍🤝‍👨🏻","👩🏽‍🤝‍👨🏼","👩🏽‍🤝‍👨🏾","👩🏽‍🤝‍👨🏿","👩🏽‍🤝‍👩🏻","👩🏽‍🤝‍👩🏼","👩🏽‍🤝‍👩🏾","👩🏽‍🤝‍👩🏿","👩🏾‍❤️‍👨🏻","👩🏾‍❤️‍👨🏼","👩🏾‍❤️‍👨🏽","👩🏾‍❤️‍👨🏾","👩🏾‍❤️‍👨🏿","👩🏾‍❤️‍👩🏻","👩🏾‍❤️‍👩🏼","👩🏾‍❤️‍👩🏽","👩🏾‍❤️‍👩🏾","👩🏾‍❤️‍👩🏿","👩🏾‍❤️‍💋‍👨🏻","👩🏾‍❤️‍💋‍👨🏼","👩🏾‍❤️‍💋‍👨🏽","👩🏾‍❤️‍💋‍👨🏾","👩🏾‍❤️‍💋‍👨🏿","👩🏾‍❤️‍💋‍👩🏻","👩🏾‍❤️‍💋‍👩🏼","👩🏾‍❤️‍💋‍👩🏽","👩🏾‍❤️‍💋‍👩🏾","👩🏾‍❤️‍💋‍👩🏿","👩🏾‍🤝‍👨🏻","👩🏾‍🤝‍👨🏼","👩🏾‍🤝‍👨🏽","👩🏾‍🤝‍👨🏿","👩🏾‍🤝‍👩🏻","👩🏾‍🤝‍👩🏼","👩🏾‍🤝‍👩🏽","👩🏾‍🤝‍👩🏿","👩🏿‍❤️‍👨🏻","👩🏿‍❤️‍👨🏼","👩🏿‍❤️‍👨🏽","👩🏿‍❤️‍👨🏾","👩🏿‍❤️‍👨🏿","👩🏿‍❤️‍👩🏻","👩🏿‍❤️‍👩🏼","👩🏿‍❤️‍👩🏽","👩🏿‍❤️‍👩🏾","👩🏿‍❤️‍👩🏿","👩🏿‍❤️‍💋‍👨🏻","👩🏿‍❤️‍💋‍👨🏼","👩🏿‍❤️‍💋‍👨🏽","👩🏿‍❤️‍💋‍👨🏾","👩🏿‍❤️‍💋‍👨🏿","👩🏿‍❤️‍💋‍👩🏻","👩🏿‍❤️‍💋‍👩🏼","👩🏿‍❤️‍💋‍👩🏽","👩🏿‍❤️‍💋‍👩🏾","👩🏿‍❤️‍💋‍👩🏿","👩🏿‍🤝‍👨🏻","👩🏿‍🤝‍👨🏼","👩🏿‍🤝‍👨🏽","👩🏿‍🤝‍👨🏾","👩🏿‍🤝‍👩🏻","👩🏿‍🤝‍👩🏼","👩🏿‍🤝‍👩🏽","👩🏿‍🤝‍👩🏾","🧑‍🤝‍🧑","🧑🏻‍❤️‍💋‍🧑🏼","🧑🏻‍❤️‍💋‍🧑🏽","🧑🏻‍❤️‍💋‍🧑🏾","🧑🏻‍❤️‍💋‍🧑🏿","🧑🏻‍❤️‍🧑🏼","🧑🏻‍❤️‍🧑🏽","🧑🏻‍❤️‍🧑🏾","🧑🏻‍❤️‍🧑🏿","🧑🏻‍🎄","🧑🏻‍🤝‍🧑🏻","🧑🏻‍🤝‍🧑🏼","🧑🏻‍🤝‍🧑🏽","🧑🏻‍🤝‍🧑🏾","🧑🏻‍🤝‍🧑🏿","🧑🏼‍❤️‍💋‍🧑🏻","🧑🏼‍❤️‍💋‍🧑🏽","🧑🏼‍❤️‍💋‍🧑🏾","🧑🏼‍❤️‍💋‍🧑🏿","🧑🏼‍❤️‍🧑🏻","🧑🏼‍❤️‍🧑🏽","🧑🏼‍❤️‍🧑🏾","🧑🏼‍❤️‍🧑🏿","🧑🏼‍🎄","🧑🏼‍🤝‍🧑🏻","🧑🏼‍🤝‍🧑🏼","🧑🏼‍🤝‍🧑🏽","🧑🏼‍🤝‍🧑🏾","🧑🏼‍🤝‍🧑🏿","🧑🏽‍❤️‍💋‍🧑🏻","🧑🏽‍❤️‍💋‍🧑🏼","🧑🏽‍❤️‍💋‍🧑🏾","🧑🏽‍❤️‍💋‍🧑🏿","🧑🏽‍❤️‍🧑🏻","🧑🏽‍❤️‍🧑🏼","🧑🏽‍❤️‍🧑🏾","🧑🏽‍❤️‍🧑🏿","🧑🏽‍🎄","🧑🏽‍🤝‍🧑🏻","🧑🏽‍🤝‍🧑🏼","🧑🏽‍🤝‍🧑🏽","🧑🏽‍🤝‍🧑🏾","🧑🏽‍🤝‍🧑🏿","🧑🏾‍❤️‍💋‍🧑🏻","🧑🏾‍❤️‍💋‍🧑🏼","🧑🏾‍❤️‍💋‍🧑🏽","🧑🏾‍❤️‍💋‍🧑🏿","🧑🏾‍❤️‍🧑🏻","🧑🏾‍❤️‍🧑🏼","🧑🏾‍❤️‍🧑🏽","🧑🏾‍❤️‍🧑🏿","🧑🏾‍🎄","🧑🏾‍🤝‍🧑🏻","🧑🏾‍🤝‍🧑🏼","🧑🏾‍🤝‍🧑🏽","🧑🏾‍🤝‍🧑🏾","🧑🏾‍🤝‍🧑🏿","🧑🏿‍❤️‍💋‍🧑🏻","🧑🏿‍❤️‍💋‍🧑🏼","🧑🏿‍❤️‍💋‍🧑🏽","🧑🏿‍❤️‍💋‍🧑🏾","🧑🏿‍❤️‍🧑🏻","🧑🏿‍❤️‍🧑🏼","🧑🏿‍❤️‍🧑🏽","🧑🏿‍❤️‍🧑🏾","🧑🏿‍🎄","🧑🏿‍🤝‍🧑🏻","🧑🏿‍🤝‍🧑🏼","🧑🏿‍🤝‍🧑🏽","🧑🏿‍🤝‍🧑🏾","🧑🏿‍🤝‍🧑🏿","🫱🏻‍🫲🏼","🫱🏻‍🫲🏽","🫱🏻‍🫲🏾","🫱🏻‍🫲🏿","🫱🏼‍🫲🏻","🫱🏼‍🫲🏽","🫱🏼‍🫲🏾","🫱🏼‍🫲🏿","🫱🏽‍🫲🏻","🫱🏽‍🫲🏼","🫱🏽‍🫲🏾","🫱🏽‍🫲🏿","🫱🏾‍🫲🏻","🫱🏾‍🫲🏼","🫱🏾‍🫲🏽","🫱🏾‍🫲🏿","🫱🏿‍🫲🏻","🫱🏿‍🫲🏼","🫱🏿‍🫲🏽","🫱🏿‍🫲🏾","👨‍⚕️","👨‍⚖️","👨‍✈️","👨‍🌾","👨‍🍳","👨‍🍼","👨‍🎓","👨‍🎤","👨‍🎨","👨‍🏫","👨‍🏭","👨‍💻","👨‍💼","👨‍🔧","👨‍🔬","👨‍🚀","👨‍🚒","👨‍🦯","👨‍🦼","👨‍🦽","👨🏻‍⚕️","👨🏻‍⚖️","👨🏻‍✈️","👨🏻‍🌾","👨🏻‍🍳","👨🏻‍🍼","👨🏻‍🎓","👨🏻‍🎤","👨🏻‍🎨","👨🏻‍🏫","👨🏻‍🏭","👨🏻‍💻","👨🏻‍💼","👨🏻‍🔧","👨🏻‍🔬","👨🏻‍🚀","👨🏻‍🚒","👨🏻‍🦯","👨🏻‍🦼","👨🏻‍🦽","👨🏼‍⚕️","👨🏼‍⚖️","👨🏼‍✈️","👨🏼‍🌾","👨🏼‍🍳","👨🏼‍🍼","👨🏼‍🎓","👨🏼‍🎤","👨🏼‍🎨","👨🏼‍🏫","👨🏼‍🏭","👨🏼‍💻","👨🏼‍💼","👨🏼‍🔧","👨🏼‍🔬","👨🏼‍🚀","👨🏼‍🚒","👨🏼‍🦯","👨🏼‍🦼","👨🏼‍🦽","👨🏽‍⚕️","👨🏽‍⚖️","👨🏽‍✈️","👨🏽‍🌾","👨🏽‍🍳","👨🏽‍🍼","👨🏽‍🎓","👨🏽‍🎤","👨🏽‍🎨","👨🏽‍🏫","👨🏽‍🏭","👨🏽‍💻","👨🏽‍💼","👨🏽‍🔧","👨🏽‍🔬","👨🏽‍🚀","👨🏽‍🚒","👨🏽‍🦯","👨🏽‍🦼","👨🏽‍🦽","👨🏾‍⚕️","👨🏾‍⚖️","👨🏾‍✈️","👨🏾‍🌾","👨🏾‍🍳","👨🏾‍🍼","👨🏾‍🎓","👨🏾‍🎤","👨🏾‍🎨","👨🏾‍🏫","👨🏾‍🏭","👨🏾‍💻","👨🏾‍💼","👨🏾‍🔧","👨🏾‍🔬","👨🏾‍🚀","👨🏾‍🚒","👨🏾‍🦯","👨🏾‍🦼","👨🏾‍🦽","👨🏿‍⚕️","👨🏿‍⚖️","👨🏿‍✈️","👨🏿‍🌾","👨🏿‍🍳","👨🏿‍🍼","👨🏿‍🎓","👨🏿‍🎤","👨🏿‍🎨","👨🏿‍🏫","👨🏿‍🏭","👨🏿‍💻","👨🏿‍💼","👨🏿‍🔧","👨🏿‍🔬","👨🏿‍🚀","👨🏿‍🚒","👨🏿‍🦯","👨🏿‍🦼","👨🏿‍🦽","👩‍⚕️","👩‍⚖️","👩‍✈️","👩‍🌾","👩‍🍳","👩‍🍼","👩‍🎓","👩‍🎤","👩‍🎨","👩‍🏫","👩‍🏭","👩‍💻","👩‍💼","👩‍🔧","👩‍🔬","👩‍🚀","👩‍🚒","👩‍🦯","👩‍🦼","👩‍🦽","👩🏻‍⚕️","👩🏻‍⚖️","👩🏻‍✈️","👩🏻‍🌾","👩🏻‍🍳","👩🏻‍🍼","👩🏻‍🎓","👩🏻‍🎤","👩🏻‍🎨","👩🏻‍🏫","👩🏻‍🏭","👩🏻‍💻","👩🏻‍💼","👩🏻‍🔧","👩🏻‍🔬","👩🏻‍🚀","👩🏻‍🚒","👩🏻‍🦯","👩🏻‍🦼","👩🏻‍🦽","👩🏼‍⚕️","👩🏼‍⚖️","👩🏼‍✈️","👩🏼‍🌾","👩🏼‍🍳","👩🏼‍🍼","👩🏼‍🎓","👩🏼‍🎤","👩🏼‍🎨","👩🏼‍🏫","👩🏼‍🏭","👩🏼‍💻","👩🏼‍💼","👩🏼‍🔧","👩🏼‍🔬","👩🏼‍🚀","👩🏼‍🚒","👩🏼‍🦯","👩🏼‍🦼","👩🏼‍🦽","👩🏽‍⚕️","👩🏽‍⚖️","👩🏽‍✈️","👩🏽‍🌾","👩🏽‍🍳","👩🏽‍🍼","👩🏽‍🎓","👩🏽‍🎤","👩🏽‍🎨","👩🏽‍🏫","👩🏽‍🏭","👩🏽‍💻","👩🏽‍💼","👩🏽‍🔧","👩🏽‍🔬","👩🏽‍🚀","👩🏽‍🚒","👩🏽‍🦯","👩🏽‍🦼","👩🏽‍🦽","👩🏾‍⚕️","👩🏾‍⚖️","👩🏾‍✈️","👩🏾‍🌾","👩🏾‍🍳","👩🏾‍🍼","👩🏾‍🎓","👩🏾‍🎤","👩🏾‍🎨","👩🏾‍🏫","👩🏾‍🏭","👩🏾‍💻","👩🏾‍💼","👩🏾‍🔧","👩🏾‍🔬","👩🏾‍🚀","👩🏾‍🚒","👩🏾‍🦯","👩🏾‍🦼","👩🏾‍🦽","👩🏿‍⚕️","👩🏿‍⚖️","👩🏿‍✈️","👩🏿‍🌾","👩🏿‍🍳","👩🏿‍🍼","👩🏿‍🎓","👩🏿‍🎤","👩🏿‍🎨","👩🏿‍🏫","👩🏿‍🏭","👩🏿‍💻","👩🏿‍💼","👩🏿‍🔧","👩🏿‍🔬","👩🏿‍🚀","👩🏿‍🚒","👩🏿‍🦯","👩🏿‍🦼","👩🏿‍🦽","🧑‍⚕️","🧑‍⚖️","🧑‍✈️","🧑‍🌾","🧑‍🍳","🧑‍🍼","🧑‍🎓","🧑‍🎤","🧑‍🎨","🧑‍🏫","🧑‍🏭","🧑‍💻","🧑‍💼","🧑‍🔧","🧑‍🔬","🧑‍🚀","🧑‍🚒","🧑‍🦯","🧑‍🦼","🧑‍🦽","🧑🏻‍⚕️","🧑🏻‍⚖️","🧑🏻‍✈️","🧑🏻‍🌾","🧑🏻‍🍳","🧑🏻‍🍼","🧑🏻‍🎓","🧑🏻‍🎤","🧑🏻‍🎨","🧑🏻‍🏫","🧑🏻‍🏭","🧑🏻‍💻","🧑🏻‍💼","🧑🏻‍🔧","🧑🏻‍🔬","🧑🏻‍🚀","🧑🏻‍🚒","🧑🏻‍🦯","🧑🏻‍🦼","🧑🏻‍🦽","🧑🏼‍⚕️","🧑🏼‍⚖️","🧑🏼‍✈️","🧑🏼‍🌾","🧑🏼‍🍳","🧑🏼‍🍼","🧑🏼‍🎓","🧑🏼‍🎤","🧑🏼‍🎨","🧑🏼‍🏫","🧑🏼‍🏭","🧑🏼‍💻","🧑🏼‍💼","🧑🏼‍🔧","🧑🏼‍🔬","🧑🏼‍🚀","🧑🏼‍🚒","🧑🏼‍🦯","🧑🏼‍🦼","🧑🏼‍🦽","🧑🏽‍⚕️","🧑🏽‍⚖️","🧑🏽‍✈️","🧑🏽‍🌾","🧑🏽‍🍳","🧑🏽‍🍼","🧑🏽‍🎓","🧑🏽‍🎤","🧑🏽‍🎨","🧑🏽‍🏫","🧑🏽‍🏭","🧑🏽‍💻","🧑🏽‍💼","🧑🏽‍🔧","🧑🏽‍🔬","🧑🏽‍🚀","🧑🏽‍🚒","🧑🏽‍🦯","🧑🏽‍🦼","🧑🏽‍🦽","🧑🏾‍⚕️","🧑🏾‍⚖️","🧑🏾‍✈️","🧑🏾‍🌾","🧑🏾‍🍳","🧑🏾‍🍼","🧑🏾‍🎓","🧑🏾‍🎤","🧑🏾‍🎨","🧑🏾‍🏫","🧑🏾‍🏭","🧑🏾‍💻","🧑🏾‍💼","🧑🏾‍🔧","🧑🏾‍🔬","🧑🏾‍🚀","🧑🏾‍🚒","🧑🏾‍🦯","🧑🏾‍🦼","🧑🏾‍🦽","🧑🏿‍⚕️","🧑🏿‍⚖️","🧑🏿‍✈️","🧑🏿‍🌾","🧑🏿‍🍳","🧑🏿‍🍼","🧑🏿‍🎓","🧑🏿‍🎤","🧑🏿‍🎨","🧑🏿‍🏫","🧑🏿‍🏭","🧑🏿‍💻","🧑🏿‍💼","🧑🏿‍🔧","🧑🏿‍🔬","🧑🏿‍🚀","🧑🏿‍🚒","🧑🏿‍🦯","🧑🏿‍🦼","🧑🏿‍🦽","⛹🏻‍♀️","⛹🏻‍♂️","⛹🏼‍♀️","⛹🏼‍♂️","⛹🏽‍♀️","⛹🏽‍♂️","⛹🏾‍♀️","⛹🏾‍♂️","⛹🏿‍♀️","⛹🏿‍♂️","⛹️‍♀️","⛹️‍♂️","🏃‍♀️","🏃‍♂️","🏃🏻‍♀️","🏃🏻‍♂️","🏃🏼‍♀️","🏃🏼‍♂️","🏃🏽‍♀️","🏃🏽‍♂️","🏃🏾‍♀️","🏃🏾‍♂️","🏃🏿‍♀️","🏃🏿‍♂️","🏄‍♀️","🏄‍♂️","🏄🏻‍♀️","🏄🏻‍♂️","🏄🏼‍♀️","🏄🏼‍♂️","🏄🏽‍♀️","🏄🏽‍♂️","🏄🏾‍♀️","🏄🏾‍♂️","🏄🏿‍♀️","🏄🏿‍♂️","🏊‍♀️","🏊‍♂️","🏊🏻‍♀️","🏊🏻‍♂️","🏊🏼‍♀️","🏊🏼‍♂️","🏊🏽‍♀️","🏊🏽‍♂️","🏊🏾‍♀️","🏊🏾‍♂️","🏊🏿‍♀️","🏊🏿‍♂️","🏋🏻‍♀️","🏋🏻‍♂️","🏋🏼‍♀️","🏋🏼‍♂️","🏋🏽‍♀️","🏋🏽‍♂️","🏋🏾‍♀️","🏋🏾‍♂️","🏋🏿‍♀️","🏋🏿‍♂️","🏋️‍♀️","🏋️‍♂️","🏌🏻‍♀️","🏌🏻‍♂️","🏌🏼‍♀️","🏌🏼‍♂️","🏌🏽‍♀️","🏌🏽‍♂️","🏌🏾‍♀️","🏌🏾‍♂️","🏌🏿‍♀️","🏌🏿‍♂️","🏌️‍♀️","🏌️‍♂️","👮‍♀️","👮‍♂️","👮🏻‍♀️","👮🏻‍♂️","👮🏼‍♀️","👮🏼‍♂️","👮🏽‍♀️","👮🏽‍♂️","👮🏾‍♀️","👮🏾‍♂️","👮🏿‍♀️","👮🏿‍♂️","👯‍♀️","👯‍♂️","👰‍♀️","👰‍♂️","👰🏻‍♀️","👰🏻‍♂️","👰🏼‍♀️","👰🏼‍♂️","👰🏽‍♀️","👰🏽‍♂️","👰🏾‍♀️","👰🏾‍♂️","👰🏿‍♀️","👰🏿‍♂️","👱‍♀️","👱‍♂️","👱🏻‍♀️","👱🏻‍♂️","👱🏼‍♀️","👱🏼‍♂️","👱🏽‍♀️","👱🏽‍♂️","👱🏾‍♀️","👱🏾‍♂️","👱🏿‍♀️","👱🏿‍♂️","👳‍♀️","👳‍♂️","👳🏻‍♀️","👳🏻‍♂️","👳🏼‍♀️","👳🏼‍♂️","👳🏽‍♀️","👳🏽‍♂️","👳🏾‍♀️","👳🏾‍♂️","👳🏿‍♀️","👳🏿‍♂️","👷‍♀️","👷‍♂️","👷🏻‍♀️","👷🏻‍♂️","👷🏼‍♀️","👷🏼‍♂️","👷🏽‍♀️","👷🏽‍♂️","👷🏾‍♀️","👷🏾‍♂️","👷🏿‍♀️","👷🏿‍♂️","💁‍♀️","💁‍♂️","💁🏻‍♀️","💁🏻‍♂️","💁🏼‍♀️","💁🏼‍♂️","💁🏽‍♀️","💁🏽‍♂️","💁🏾‍♀️","💁🏾‍♂️","💁🏿‍♀️","💁🏿‍♂️","💂‍♀️","💂‍♂️","💂🏻‍♀️","💂🏻‍♂️","💂🏼‍♀️","💂🏼‍♂️","💂🏽‍♀️","💂🏽‍♂️","💂🏾‍♀️","💂🏾‍♂️","💂🏿‍♀️","💂🏿‍♂️","💆‍♀️","💆‍♂️","💆🏻‍♀️","💆🏻‍♂️","💆🏼‍♀️","💆🏼‍♂️","💆🏽‍♀️","💆🏽‍♂️","💆🏾‍♀️","💆🏾‍♂️","💆🏿‍♀️","💆🏿‍♂️","💇‍♀️","💇‍♂️","💇🏻‍♀️","💇🏻‍♂️","💇🏼‍♀️","💇🏼‍♂️","💇🏽‍♀️","💇🏽‍♂️","💇🏾‍♀️","💇🏾‍♂️","💇🏿‍♀️","💇🏿‍♂️","🕵🏻‍♀️","🕵🏻‍♂️","🕵🏼‍♀️","🕵🏼‍♂️","🕵🏽‍♀️","🕵🏽‍♂️","🕵🏾‍♀️","🕵🏾‍♂️","🕵🏿‍♀️","🕵🏿‍♂️","🕵️‍♀️","🕵️‍♂️","🙅‍♀️","🙅‍♂️","🙅🏻‍♀️","🙅🏻‍♂️","🙅🏼‍♀️","🙅🏼‍♂️","🙅🏽‍♀️","🙅🏽‍♂️","🙅🏾‍♀️","🙅🏾‍♂️","🙅🏿‍♀️","🙅🏿‍♂️","🙆‍♀️","🙆‍♂️","🙆🏻‍♀️","🙆🏻‍♂️","🙆🏼‍♀️","🙆🏼‍♂️","🙆🏽‍♀️","🙆🏽‍♂️","🙆🏾‍♀️","🙆🏾‍♂️","🙆🏿‍♀️","🙆🏿‍♂️","🙇‍♀️","🙇‍♂️","🙇🏻‍♀️","🙇🏻‍♂️","🙇🏼‍♀️","🙇🏼‍♂️","🙇🏽‍♀️","🙇🏽‍♂️","🙇🏾‍♀️","🙇🏾‍♂️","🙇🏿‍♀️","🙇🏿‍♂️","🙋‍♀️","🙋‍♂️","🙋🏻‍♀️","🙋🏻‍♂️","🙋🏼‍♀️","🙋🏼‍♂️","🙋🏽‍♀️","🙋🏽‍♂️","🙋🏾‍♀️","🙋🏾‍♂️","🙋🏿‍♀️","🙋🏿‍♂️","🙍‍♀️","🙍‍♂️","🙍🏻‍♀️","🙍🏻‍♂️","🙍🏼‍♀️","🙍🏼‍♂️","🙍🏽‍♀️","🙍🏽‍♂️","🙍🏾‍♀️","🙍🏾‍♂️","🙍🏿‍♀️","🙍🏿‍♂️","🙎‍♀️","🙎‍♂️","🙎🏻‍♀️","🙎🏻‍♂️","🙎🏼‍♀️","🙎🏼‍♂️","🙎🏽‍♀️","🙎🏽‍♂️","🙎🏾‍♀️","🙎🏾‍♂️","🙎🏿‍♀️","🙎🏿‍♂️","🚣‍♀️","🚣‍♂️","🚣🏻‍♀️","🚣🏻‍♂️","🚣🏼‍♀️","🚣🏼‍♂️","🚣🏽‍♀️","🚣🏽‍♂️","🚣🏾‍♀️","🚣🏾‍♂️","🚣🏿‍♀️","🚣🏿‍♂️","🚴‍♀️","🚴‍♂️","🚴🏻‍♀️","🚴🏻‍♂️","🚴🏼‍♀️","🚴🏼‍♂️","🚴🏽‍♀️","🚴🏽‍♂️","🚴🏾‍♀️","🚴🏾‍♂️","🚴🏿‍♀️","🚴🏿‍♂️","🚵‍♀️","🚵‍♂️","🚵🏻‍♀️","🚵🏻‍♂️","🚵🏼‍♀️","🚵🏼‍♂️","🚵🏽‍♀️","🚵🏽‍♂️","🚵🏾‍♀️","🚵🏾‍♂️","🚵🏿‍♀️","🚵🏿‍♂️","🚶‍♀️","🚶‍♂️","🚶🏻‍♀️","🚶🏻‍♂️","🚶🏼‍♀️","🚶🏼‍♂️","🚶🏽‍♀️","🚶🏽‍♂️","🚶🏾‍♀️","🚶🏾‍♂️","🚶🏿‍♀️","🚶🏿‍♂️","🤦‍♀️","🤦‍♂️","🤦🏻‍♀️","🤦🏻‍♂️","🤦🏼‍♀️","🤦🏼‍♂️","🤦🏽‍♀️","🤦🏽‍♂️","🤦🏾‍♀️","🤦🏾‍♂️","🤦🏿‍♀️","🤦🏿‍♂️","🤵‍♀️","🤵‍♂️","🤵🏻‍♀️","🤵🏻‍♂️","🤵🏼‍♀️","🤵🏼‍♂️","🤵🏽‍♀️","🤵🏽‍♂️","🤵🏾‍♀️","🤵🏾‍♂️","🤵🏿‍♀️","🤵🏿‍♂️","🤷‍♀️","🤷‍♂️","🤷🏻‍♀️","🤷🏻‍♂️","🤷🏼‍♀️","🤷🏼‍♂️","🤷🏽‍♀️","🤷🏽‍♂️","🤷🏾‍♀️","🤷🏾‍♂️","🤷🏿‍♀️","🤷🏿‍♂️","🤸‍♀️","🤸‍♂️","🤸🏻‍♀️","🤸🏻‍♂️","🤸🏼‍♀️","🤸🏼‍♂️","🤸🏽‍♀️","🤸🏽‍♂️","🤸🏾‍♀️","🤸🏾‍♂️","🤸🏿‍♀️","🤸🏿‍♂️","🤹‍♀️","🤹‍♂️","🤹🏻‍♀️","🤹🏻‍♂️","🤹🏼‍♀️","🤹🏼‍♂️","🤹🏽‍♀️","🤹🏽‍♂️","🤹🏾‍♀️","🤹🏾‍♂️","🤹🏿‍♀️","🤹🏿‍♂️","🤼‍♀️","🤼‍♂️","🤽‍♀️","🤽‍♂️","🤽🏻‍♀️","🤽🏻‍♂️","🤽🏼‍♀️","🤽🏼‍♂️","🤽🏽‍♀️","🤽🏽‍♂️","🤽🏾‍♀️","🤽🏾‍♂️","🤽🏿‍♀️","🤽🏿‍♂️","🤾‍♀️","🤾‍♂️","🤾🏻‍♀️","🤾🏻‍♂️","🤾🏼‍♀️","🤾🏼‍♂️","🤾🏽‍♀️","🤾🏽‍♂️","🤾🏾‍♀️","🤾🏾‍♂️","🤾🏿‍♀️","🤾🏿‍♂️","🦸‍♀️","🦸‍♂️","🦸🏻‍♀️","🦸🏻‍♂️","🦸🏼‍♀️","🦸🏼‍♂️","🦸🏽‍♀️","🦸🏽‍♂️","🦸🏾‍♀️","🦸🏾‍♂️","🦸🏿‍♀️","🦸🏿‍♂️","🦹‍♀️","🦹‍♂️","🦹🏻‍♀️","🦹🏻‍♂️","🦹🏼‍♀️","🦹🏼‍♂️","🦹🏽‍♀️","🦹🏽‍♂️","🦹🏾‍♀️","🦹🏾‍♂️","🦹🏿‍♀️","🦹🏿‍♂️","🧍‍♀️","🧍‍♂️","🧍🏻‍♀️","🧍🏻‍♂️","🧍🏼‍♀️","🧍🏼‍♂️","🧍🏽‍♀️","🧍🏽‍♂️","🧍🏾‍♀️","🧍🏾‍♂️","🧍🏿‍♀️","🧍🏿‍♂️","🧎‍♀️","🧎‍♂️","🧎🏻‍♀️","🧎🏻‍♂️","🧎🏼‍♀️","🧎🏼‍♂️","🧎🏽‍♀️","🧎🏽‍♂️","🧎🏾‍♀️","🧎🏾‍♂️","🧎🏿‍♀️","🧎🏿‍♂️","🧏‍♀️","🧏‍♂️","🧏🏻‍♀️","🧏🏻‍♂️","🧏🏼‍♀️","🧏🏼‍♂️","🧏🏽‍♀️","🧏🏽‍♂️","🧏🏾‍♀️","🧏🏾‍♂️","🧏🏿‍♀️","🧏🏿‍♂️","🧔‍♀️","🧔‍♂️","🧔🏻‍♀️","🧔🏻‍♂️","🧔🏼‍♀️","🧔🏼‍♂️","🧔🏽‍♀️","🧔🏽‍♂️","🧔🏾‍♀️","🧔🏾‍♂️","🧔🏿‍♀️","🧔🏿‍♂️","🧖‍♀️","🧖‍♂️","🧖🏻‍♀️","🧖🏻‍♂️","🧖🏼‍♀️","🧖🏼‍♂️","🧖🏽‍♀️","🧖🏽‍♂️","🧖🏾‍♀️","🧖🏾‍♂️","🧖🏿‍♀️","🧖🏿‍♂️","🧗‍♀️","🧗‍♂️","🧗🏻‍♀️","🧗🏻‍♂️","🧗🏼‍♀️","🧗🏼‍♂️","🧗🏽‍♀️","🧗🏽‍♂️","🧗🏾‍♀️","🧗🏾‍♂️","🧗🏿‍♀️","🧗🏿‍♂️","🧘‍♀️","🧘‍♂️","🧘🏻‍♀️","🧘🏻‍♂️","🧘🏼‍♀️","🧘🏼‍♂️","🧘🏽‍♀️","🧘🏽‍♂️","🧘🏾‍♀️","🧘🏾‍♂️","🧘🏿‍♀️","🧘🏿‍♂️","🧙‍♀️","🧙‍♂️","🧙🏻‍♀️","🧙🏻‍♂️","🧙🏼‍♀️","🧙🏼‍♂️","🧙🏽‍♀️","🧙🏽‍♂️","🧙🏾‍♀️","🧙🏾‍♂️","🧙🏿‍♀️","🧙🏿‍♂️","🧚‍♀️","🧚‍♂️","🧚🏻‍♀️","🧚🏻‍♂️","🧚🏼‍♀️","🧚🏼‍♂️","🧚🏽‍♀️","🧚🏽‍♂️","🧚🏾‍♀️","🧚🏾‍♂️","🧚🏿‍♀️","🧚🏿‍♂️","🧛‍♀️","🧛‍♂️","🧛🏻‍♀️","🧛🏻‍♂️","🧛🏼‍♀️","🧛🏼‍♂️","🧛🏽‍♀️","🧛🏽‍♂️","🧛🏾‍♀️","🧛🏾‍♂️","🧛🏿‍♀️","🧛🏿‍♂️","🧜‍♀️","🧜‍♂️","🧜🏻‍♀️","🧜🏻‍♂️","🧜🏼‍♀️","🧜🏼‍♂️","🧜🏽‍♀️","🧜🏽‍♂️","🧜🏾‍♀️","🧜🏾‍♂️","🧜🏿‍♀️","🧜🏿‍♂️","🧝‍♀️","🧝‍♂️","🧝🏻‍♀️","🧝🏻‍♂️","🧝🏼‍♀️","🧝🏼‍♂️","🧝🏽‍♀️","🧝🏽‍♂️","🧝🏾‍♀️","🧝🏾‍♂️","🧝🏿‍♀️","🧝🏿‍♂️","🧞‍♀️","🧞‍♂️","🧟‍♀️","🧟‍♂️","👨‍🦰","👨‍🦱","👨‍🦲","👨‍🦳","👨🏻‍🦰","👨🏻‍🦱","👨🏻‍🦲","👨🏻‍🦳","👨🏼‍🦰","👨🏼‍🦱","👨🏼‍🦲","👨🏼‍🦳","👨🏽‍🦰","👨🏽‍🦱","👨🏽‍🦲","👨🏽‍🦳","👨🏾‍🦰","👨🏾‍🦱","👨🏾‍🦲","👨🏾‍🦳","👨🏿‍🦰","👨🏿‍🦱","👨🏿‍🦲","👨🏿‍🦳","👩‍🦰","👩‍🦱","👩‍🦲","👩‍🦳","👩🏻‍🦰","👩🏻‍🦱","👩🏻‍🦲","👩🏻‍🦳","👩🏼‍🦰","👩🏼‍🦱","👩🏼‍🦲","👩🏼‍🦳","👩🏽‍🦰","👩🏽‍🦱","👩🏽‍🦲","👩🏽‍🦳","👩🏾‍🦰","👩🏾‍🦱","👩🏾‍🦲","👩🏾‍🦳","👩🏿‍🦰","👩🏿‍🦱","👩🏿‍🦲","👩🏿‍🦳","🧑‍🦰","🧑‍🦱","🧑‍🦲","🧑‍🦳","🧑🏻‍🦰","🧑🏻‍🦱","🧑🏻‍🦲","🧑🏻‍🦳","🧑🏼‍🦰","🧑🏼‍🦱","🧑🏼‍🦲","🧑🏼‍🦳","🧑🏽‍🦰","🧑🏽‍🦱","🧑🏽‍🦲","🧑🏽‍🦳","🧑🏾‍🦰","🧑🏾‍🦱","🧑🏾‍🦲","🧑🏾‍🦳","🧑🏿‍🦰","🧑🏿‍🦱","🧑🏿‍🦲","🧑🏿‍🦳","❤️‍🔥","❤️‍🩹","🏳️‍⚧️","🏳️‍🌈","🏴‍☠️","🐈‍⬛","🐕‍🦺","🐦‍⬛","🐻‍❄️","👁️‍🗨️","😮‍💨","😵‍💫","😶‍🌫️","🧑‍🎄"]},99140:function(e,a,n){const d=n(82708)();d.addRange(73472,73488).addRange(73490,73530).addRange(73534,73561),a.characters=d},17318:function(e,a,n){const d=n(82708)();d.addRange(124112,124153),a.characters=d},93386:function(e,a,n){const d=n(82708)();d.addRange(73472,73488).addRange(73490,73530).addRange(73534,73561),a.characters=d},48651:function(e,a,n){const d=n(82708)();d.addRange(124112,124153),a.characters=d},82708:function(e,a,n){var d;e=n.nmd(e),function(t){var r=a,o=(e&&e.exports,"object"==typeof n.g&&n.g);o.global!==o&&o.window;var i="A range’s `stop` value must be greater than or equal to the `start` value.",g="Invalid code point value. Code points range from U+000000 to U+10FFFF.",s=55296,c=56319,u=56320,R=57343,l=/\\x00([^0123456789]|$)/g,p={},f=p.hasOwnProperty,h=function(e,a){for(var n=-1,d=e.length;++n=n&&an)return e;if(a<=d&&n>=t)e.splice(r,2);else{if(a>=d&&n=d&&a<=t)e[r+1]=a;else if(n>=d&&n<=t)return e[r]=n+1,e;r+=2}}return e},_=function(e,a){var n,d,t=0,r=null,o=e.length;if(a<0||a>1114111)throw RangeError(g);for(;t=n&&aa)return e.splice(null!=r?r+2:0,0,a,a+1),e;if(a==d)return a+1==e[t+2]?(e.splice(t,4,n,e[t+3]),e):(e[t+1]=a+1,e);r=t,t+=2}return e.push(a,a+1),e},C=function(e,a){for(var n,d,t=0,r=e.slice(),o=a.length;t1114111||n<0||n>1114111)throw RangeError(g);for(var d,t,r=0,o=!1,s=e.length;rn)return e;d>=a&&d<=n&&(t>a&&t-1<=n?(e.splice(r,2),r-=2):(e.splice(r-1,2),r-=2))}else{if(d==n+1||d==n)return e[r]=a,e;if(d>n)return e.splice(r,0,a,n+1),e;if(a>=d&&a=d&&a=t&&(e[r]=a,e[r+1]=n+1,o=!0)}r+=2}return o||e.push(a,n+1),e},O=function(e,a){var n=0,d=e.length,t=e[n],r=e[d-1];if(d>=2&&(ar))return!1;for(;n=t&&a=40&&e<=43||46==e||47==e||63==e||e>=91&&e<=94||e>=123&&e<=125?"\\"+B(e):e>=32&&e<=126?B(e):e<=255?"\\x"+v(w(e),2):"\\u"+v(w(e),4)},M=function(e){return e<=65535?L(e):"\\u{"+e.toString(16).toUpperCase()+"}"},N=function(e){var a,n=e.length,d=e.charCodeAt(0);return d>=s&&d<=c&&n>1?(a=e.charCodeAt(1),1024*(d-s)+a-u+65536):d},G=function(e){var a,n,d="",t=0,r=e.length;if(j(e))return L(e[0]);for(;t=s&&n<=c&&(r.push(a,s),d.push(s,n+1)),n>=u&&n<=R&&(r.push(a,s),d.push(s,56320),t.push(u,n+1)),n>R&&(r.push(a,s),d.push(s,56320),t.push(u,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):a>=s&&a<=c?(n>=s&&n<=c&&d.push(a,n+1),n>=u&&n<=R&&(d.push(a,56320),t.push(u,n+1)),n>R&&(d.push(a,56320),t.push(u,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):a>=u&&a<=R?(n>=u&&n<=R&&t.push(a,n+1),n>R&&(t.push(a,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):a>R&&a<=65535?n<=65535?r.push(a,n+1):(r.push(a,65536),o.push(65536,n+1)):o.push(a,n+1),i+=2;return{loneHighSurrogates:d,loneLowSurrogates:t,bmp:r,astral:o}}(e),r=t.loneHighSurrogates,o=t.loneLowSurrogates,i=t.bmp,g=t.astral,l=!A(r),p=!A(o),f=H(g);return a&&(i=C(i,r),l=!1,i=C(i,o),p=!1),A(i)||d.push(G(i)),f.length&&d.push(function(e){var a=[];return h(e,(function(e){var n=e[0],d=e[1];a.push(G(n)+G(d))})),a.join("|")}(f)),l&&d.push(G(r)+"(?![\\uDC00-\\uDFFF])"),p&&d.push("(?:[^\\uD800-\\uDBFF]|^)"+G(o)),d.join("|")},q=function(e){return arguments.length>1&&(e=S.call(arguments)),this instanceof q?(this.data=[],e?this.add(e):this):(new q).add(e)};q.version="1.4.2";var W=q.prototype;!function(e,a){var n;for(n in a)f.call(a,n)&&(e[n]=a[n])}(W,{add:function(e){var a=this;return null==e?a:e instanceof q?(a.data=C(a.data,e.data),a):(arguments.length>1&&(e=S.call(arguments)),y(e)?(h(e,(function(e){a.add(e)})),a):(a.data=_(a.data,b(e)?e:N(e)),a))},remove:function(e){var a=this;return null==e?a:e instanceof q?(a.data=D(a.data,e.data),a):(arguments.length>1&&(e=S.call(arguments)),y(e)?(h(e,(function(e){a.remove(e)})),a):(a.data=E(a.data,b(e)?e:N(e)),a))},addRange:function(e,a){var n=this;return n.data=k(n.data,b(e)?e:N(e),b(a)?a:N(a)),n},removeRange:function(e,a){var n=this,d=b(e)?e:N(e),t=b(a)?a:N(a);return n.data=x(n.data,d,t),n},intersection:function(e){var a=this,n=e instanceof q?P(e.data):e;return a.data=function(e,a){for(var n,d=0,t=a.length,r=[];dl)&&(N=(H=H.replace(" ",":")).length),0d&&(d=(a=a.trim()).charCodeAt(0)),d){case 38:return a.replace(h,"$1"+e.trim());case 58:return e.trim()+a.replace(h,"$1"+e.trim());default:if(0<1*n&&0g.charCodeAt(8))break;case 115:o=o.replace(g,"-webkit-"+g)+";"+o;break;case 207:case 102:o=o.replace(g,"-webkit-"+(102d.charCodeAt(0)&&(d=d.trim()),d=[d],01?a-1:0),d=1;d0?" Args: "+n.join(", "):""))}var D=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var a=e.prototype;return a.indexOfGroup=function(e){for(var a=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,d=n.length,t=d;e>=t;)(t<<=1)<0&&C(16,""+e);this.groupSizes=new Uint32Array(t),this.groupSizes.set(n),this.length=t;for(var r=d;r=this.length||0===this.groupSizes[e])return a;for(var n=this.groupSizes[e],d=this.indexOfGroup(e),t=d+n,r=d;r=A&&(A=a+1),k.set(e,a),O.set(a,e)},T="style["+w+'][data-styled-version="5.3.6"]',F=new RegExp("^"+w+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),B=function(e,a,n){for(var d,t=n.split(","),r=0,o=t.length;r=0;n--){var d=a[n];if(d&&1===d.nodeType&&d.hasAttribute(w))return d}}(n),r=void 0!==t?t.nextSibling:null;d.setAttribute(w,"active"),d.setAttribute("data-styled-version","5.3.6");var o=M();return o&&d.setAttribute("nonce",o),n.insertBefore(d,r),d},G=function(){function e(e){var a=this.element=N(e);a.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var a=document.styleSheets,n=0,d=a.length;n=0){var n=document.createTextNode(a),d=this.nodes[e];return this.element.insertBefore(n,d||null),this.length++,!0}return!1},a.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},a.getRule=function(e){return e0&&(s+=e+",")})),d+=""+i+g+'{content:"'+s+'"}/*!sc*/\n'}}}return d}(this)},e}(),$=/(a)(d)/gi,K=function(e){return String.fromCharCode(e+(e>25?39:97))};function V(e){var a,n="";for(a=Math.abs(e);a>52;a=a/52|0)n=K(a%52)+n;return(K(a%52)+n).replace($,"$1-$2")}var Z=function(e,a){for(var n=a.length;n;)e=33*e^a.charCodeAt(--n);return e},Y=function(e){return Z(5381,e)};function X(e){for(var a=0;a>>0);if(!a.hasNameForId(d,o)){var i=n(r,"."+o,void 0,d);a.insertRules(d,o,i)}t.push(o),this.staticRulesId=o}else{for(var g=this.rules.length,s=Z(this.baseHash,n.hash),c="",u=0;u>>0);if(!a.hasNameForId(d,f)){var h=n(c,"."+f,void 0,d);a.insertRules(d,f,h)}t.push(f)}}return t.join(" ")},e}(),ee=/^\s*\/\/.*$/gm,ae=[":","[",".","#"];function ne(e){var a,n,d,t,r=void 0===e?m:e,o=r.options,g=void 0===o?m:o,s=r.plugins,c=void 0===s?h:s,u=new i(g),R=[],l=function(e){function a(a){if(a)try{e(a+"}")}catch(e){}}return function(n,d,t,r,o,i,g,s,c,u){switch(n){case 1:if(0===c&&64===d.charCodeAt(0))return e(d+";"),"";break;case 2:if(0===s)return d+"/*|*/";break;case 3:switch(s){case 102:case 112:return e(t[0]+d),"";default:return d+(0===u?"/*|*/":"")}case-2:d.split("/*|*/}").forEach(a)}}}((function(e){R.push(e)})),p=function(e,d,r){return 0===d&&-1!==ae.indexOf(r[n.length])||r.match(t)?e:"."+a};function f(e,r,o,i){void 0===i&&(i="&");var g=e.replace(ee,""),s=r&&o?o+" "+r+" { "+g+" }":g;return a=i,n=r,d=new RegExp("\\"+n+"\\b","g"),t=new RegExp("(\\"+n+"\\b){2,}"),u(o||!r?"":r,s)}return u.use([].concat(c,[function(e,a,t){2===e&&t.length&&t[0].lastIndexOf(n)>0&&(t[0]=t[0].replace(d,p))},l,function(e){if(-2===e){var a=R;return R=[],a}}])),f.hash=c.length?c.reduce((function(e,a){return a.name||C(15),Z(e,a.name)}),5381).toString():"",f}var de=t.createContext(),te=de.Consumer,re=t.createContext(),oe=(re.Consumer,new W),ie=ne();function ge(){return(0,t.useContext)(de)||oe}function se(){return(0,t.useContext)(re)||ie}function ce(e){var a=(0,t.useState)(e.stylisPlugins),n=a[0],d=a[1],r=ge(),i=(0,t.useMemo)((function(){var a=r;return e.sheet?a=e.sheet:e.target&&(a=a.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(a=a.reconstructWithOptions({useCSSOMInjection:!1})),a}),[e.disableCSSOMInjection,e.sheet,e.target]),g=(0,t.useMemo)((function(){return ne({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return(0,t.useEffect)((function(){o()(n,e.stylisPlugins)||d(e.stylisPlugins)}),[e.stylisPlugins]),t.createElement(de.Provider,{value:i},t.createElement(re.Provider,{value:g},e.children))}var ue=function(){function e(e,a){var n=this;this.inject=function(e,a){void 0===a&&(a=ie);var d=n.name+a.hash;e.hasNameForId(n.id,d)||e.insertRules(n.id,d,a(n.rules,d,"@keyframes"))},this.toString=function(){return C(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=a}return e.prototype.getName=function(e){return void 0===e&&(e=ie),this.name+e.hash},e}(),Re=/([A-Z])/,le=/([A-Z])/g,pe=/^ms-/,fe=function(e){return"-"+e.toLowerCase()};function he(e){return Re.test(e)?e.replace(le,fe).replace(pe,"-ms-"):e}var me=function(e){return null==e||!1===e||""===e};function ye(e,a,n,d){if(Array.isArray(e)){for(var t,r=[],o=0,i=e.length;o1?a-1:0),d=1;d?@[\\\]^`{|}~-]+/g,Ee=/(^-|-$)/g;function xe(e){return e.replace(Se,"-").replace(Ee,"")}var _e=function(e){return V(Y(e)>>>0)};function Ce(e){return"string"==typeof e&&!0}var De=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},ke=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Oe(e,a,n){var d=e[n];De(a)&&De(d)?Ae(d,a):e[n]=a}function Ae(e){for(var a=arguments.length,n=new Array(a>1?a-1:0),d=1;d=0||(t[n]=e[n]);return t}(a,["componentId"]),r=d&&d+"-"+(Ce(e)?e:xe(b(e)));return Fe(e,l({},t,{attrs:w,componentId:r}),n)},Object.defineProperty(E,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(a){this._foldedDefaultProps=d?Ae({},e.defaultProps,a):a}}),E.toString=function(){return"."+E.styledComponentId},r&&R()(E,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),E}var Be=function(e){return function e(a,n,t){if(void 0===t&&(t=m),!(0,d.isValidElementType)(n))return C(1,String(n));var r=function(){return a(n,t,ve.apply(void 0,arguments))};return r.withConfig=function(d){return e(a,n,l({},t,{},d))},r.attrs=function(d){return e(a,n,l({},t,{attrs:Array.prototype.concat(t.attrs,d).filter(Boolean)}))},r}(Fe,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Be[e]=Be(e)}));var Le=function(){function e(e,a){this.rules=e,this.componentId=a,this.isStatic=X(e),W.registerId(this.componentId+1)}var a=e.prototype;return a.createStyles=function(e,a,n,d){var t=d(ye(this.rules,a,n,d).join(""),""),r=this.componentId+e;n.insertRules(r,r,t)},a.removeStyles=function(e,a){a.clearRules(this.componentId+e)},a.renderStyles=function(e,a,n,d){e>2&&W.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,a,n,d)},e}();function Me(e){for(var a=arguments.length,n=new Array(a>1?a-1:0),d=1;d1?a-1:0),d=1;d"+a+""},this.getStyleTags=function(){return e.sealed?C(2):e._emitSheetCSS()},this.getStyleElement=function(){var a;if(e.sealed)return C(2);var n=((a={})[w]="",a["data-styled-version"]="5.3.6",a.dangerouslySetInnerHTML={__html:e.instance.toString()},a),d=M();return d&&(n.nonce=d),[t.createElement("style",l({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new W({isServer:!0}),this.sealed=!1}var a=e.prototype;return a.collectStyles=function(e){return this.sealed?C(2):t.createElement(ce,{sheet:this.instance},e)},a.interleaveWithNodeStream=function(e){return C(3)},e}(),ze=function(e){var a=t.forwardRef((function(a,n){var d=(0,t.useContext)(je),r=e.defaultProps,o=we(a,d,r);return t.createElement(e,l({},a,{theme:o,ref:n}))}));return R()(a,e),a.displayName="WithTheme("+b(e)+")",a},He=function(){return(0,t.useContext)(je)},Ue={StyleSheet:W,masterSheet:oe},qe=Be},98883:function(e){e.exports=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"])},60020:function(e,a,n){"use strict";const d=n(98883),t=n(68297);e.exports=function(e){if(d.has(e))return e;if(t.has(e))return t.get(e);throw new Error("Unknown property: ".concat(e))}},21663:function(e){e.exports=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]])},13314:function(e,a,n){"use strict";const d=n(21663);e.exports=function(e,a){const n=d.get(e);if(!n)throw new Error("Unknown property `".concat(e,"`."));const t=n.get(a);if(t)return t;throw new Error("Unknown value `".concat(a,"` for property `").concat(e,"`."))}},68297:function(e){e.exports=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]])},38531:function(e,a,n){var d={"./Binary_Property/ASCII.js":80055,"./Binary_Property/ASCII_Hex_Digit.js":81731,"./Binary_Property/Alphabetic.js":75244,"./Binary_Property/Any.js":25929,"./Binary_Property/Assigned.js":72573,"./Binary_Property/Bidi_Control.js":83029,"./Binary_Property/Bidi_Mirrored.js":50755,"./Binary_Property/Case_Ignorable.js":86317,"./Binary_Property/Cased.js":78087,"./Binary_Property/Changes_When_Casefolded.js":61587,"./Binary_Property/Changes_When_Casemapped.js":62518,"./Binary_Property/Changes_When_Lowercased.js":50140,"./Binary_Property/Changes_When_NFKC_Casefolded.js":97224,"./Binary_Property/Changes_When_Titlecased.js":40835,"./Binary_Property/Changes_When_Uppercased.js":95428,"./Binary_Property/Dash.js":78233,"./Binary_Property/Default_Ignorable_Code_Point.js":91357,"./Binary_Property/Deprecated.js":18391,"./Binary_Property/Diacritic.js":5198,"./Binary_Property/Emoji.js":42117,"./Binary_Property/Emoji_Component.js":97581,"./Binary_Property/Emoji_Modifier.js":39030,"./Binary_Property/Emoji_Modifier_Base.js":18618,"./Binary_Property/Emoji_Presentation.js":29702,"./Binary_Property/Extended_Pictographic.js":5667,"./Binary_Property/Extender.js":9002,"./Binary_Property/Grapheme_Base.js":96851,"./Binary_Property/Grapheme_Extend.js":71054,"./Binary_Property/Hex_Digit.js":80662,"./Binary_Property/IDS_Binary_Operator.js":66910,"./Binary_Property/IDS_Trinary_Operator.js":31548,"./Binary_Property/ID_Continue.js":97301,"./Binary_Property/ID_Start.js":47818,"./Binary_Property/Ideographic.js":82217,"./Binary_Property/Join_Control.js":15332,"./Binary_Property/Logical_Order_Exception.js":55780,"./Binary_Property/Lowercase.js":61091,"./Binary_Property/Math.js":7146,"./Binary_Property/Noncharacter_Code_Point.js":51752,"./Binary_Property/Pattern_Syntax.js":76596,"./Binary_Property/Pattern_White_Space.js":86436,"./Binary_Property/Quotation_Mark.js":29467,"./Binary_Property/Radical.js":68163,"./Binary_Property/Regional_Indicator.js":16412,"./Binary_Property/Sentence_Terminal.js":25496,"./Binary_Property/Soft_Dotted.js":83045,"./Binary_Property/Terminal_Punctuation.js":20991,"./Binary_Property/Unified_Ideograph.js":15154,"./Binary_Property/Uppercase.js":91909,"./Binary_Property/Variation_Selector.js":64590,"./Binary_Property/White_Space.js":42886,"./Binary_Property/XID_Continue.js":83067,"./Binary_Property/XID_Start.js":86524,"./General_Category/Cased_Letter.js":94195,"./General_Category/Close_Punctuation.js":42549,"./General_Category/Connector_Punctuation.js":72437,"./General_Category/Control.js":44467,"./General_Category/Currency_Symbol.js":75431,"./General_Category/Dash_Punctuation.js":86441,"./General_Category/Decimal_Number.js":57965,"./General_Category/Enclosing_Mark.js":89586,"./General_Category/Final_Punctuation.js":32965,"./General_Category/Format.js":32277,"./General_Category/Initial_Punctuation.js":5900,"./General_Category/Letter.js":63764,"./General_Category/Letter_Number.js":43043,"./General_Category/Line_Separator.js":19307,"./General_Category/Lowercase_Letter.js":45025,"./General_Category/Mark.js":76197,"./General_Category/Math_Symbol.js":21803,"./General_Category/Modifier_Letter.js":31022,"./General_Category/Modifier_Symbol.js":46858,"./General_Category/Nonspacing_Mark.js":85948,"./General_Category/Number.js":78861,"./General_Category/Open_Punctuation.js":38999,"./General_Category/Other.js":30567,"./General_Category/Other_Letter.js":52093,"./General_Category/Other_Number.js":80180,"./General_Category/Other_Punctuation.js":72919,"./General_Category/Other_Symbol.js":57481,"./General_Category/Paragraph_Separator.js":26400,"./General_Category/Private_Use.js":55205,"./General_Category/Punctuation.js":78350,"./General_Category/Separator.js":66827,"./General_Category/Space_Separator.js":29909,"./General_Category/Spacing_Mark.js":67089,"./General_Category/Surrogate.js":38703,"./General_Category/Symbol.js":34345,"./General_Category/Titlecase_Letter.js":87135,"./General_Category/Unassigned.js":48068,"./General_Category/Uppercase_Letter.js":54508,"./Property_of_Strings/Basic_Emoji.js":7134,"./Property_of_Strings/Emoji_Keycap_Sequence.js":1354,"./Property_of_Strings/RGI_Emoji.js":64708,"./Property_of_Strings/RGI_Emoji_Flag_Sequence.js":32530,"./Property_of_Strings/RGI_Emoji_Modifier_Sequence.js":76685,"./Property_of_Strings/RGI_Emoji_Tag_Sequence.js":80852,"./Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js":70523,"./Script/Adlam.js":67309,"./Script/Ahom.js":21824,"./Script/Anatolian_Hieroglyphs.js":44251,"./Script/Arabic.js":93703,"./Script/Armenian.js":52003,"./Script/Avestan.js":91194,"./Script/Balinese.js":97148,"./Script/Bamum.js":92508,"./Script/Bassa_Vah.js":87398,"./Script/Batak.js":70403,"./Script/Bengali.js":60285,"./Script/Bhaiksuki.js":10143,"./Script/Bopomofo.js":25500,"./Script/Brahmi.js":69672,"./Script/Braille.js":67008,"./Script/Buginese.js":32055,"./Script/Buhid.js":90141,"./Script/Canadian_Aboriginal.js":40912,"./Script/Carian.js":68653,"./Script/Caucasian_Albanian.js":47231,"./Script/Chakma.js":38234,"./Script/Cham.js":29076,"./Script/Cherokee.js":47242,"./Script/Chorasmian.js":91466,"./Script/Common.js":2325,"./Script/Coptic.js":4957,"./Script/Cuneiform.js":51215,"./Script/Cypriot.js":94221,"./Script/Cypro_Minoan.js":77004,"./Script/Cyrillic.js":49326,"./Script/Deseret.js":2436,"./Script/Devanagari.js":76224,"./Script/Dives_Akuru.js":28156,"./Script/Dogra.js":19019,"./Script/Duployan.js":11233,"./Script/Egyptian_Hieroglyphs.js":82904,"./Script/Elbasan.js":50651,"./Script/Elymaic.js":63404,"./Script/Ethiopic.js":42249,"./Script/Georgian.js":77113,"./Script/Glagolitic.js":84922,"./Script/Gothic.js":8047,"./Script/Grantha.js":31338,"./Script/Greek.js":74214,"./Script/Gujarati.js":51130,"./Script/Gunjala_Gondi.js":60046,"./Script/Gurmukhi.js":37307,"./Script/Han.js":77439,"./Script/Hangul.js":73296,"./Script/Hanifi_Rohingya.js":67439,"./Script/Hanunoo.js":71394,"./Script/Hatran.js":68092,"./Script/Hebrew.js":24189,"./Script/Hiragana.js":84371,"./Script/Imperial_Aramaic.js":10780,"./Script/Inherited.js":71122,"./Script/Inscriptional_Pahlavi.js":53431,"./Script/Inscriptional_Parthian.js":580,"./Script/Javanese.js":37174,"./Script/Kaithi.js":77983,"./Script/Kannada.js":29485,"./Script/Katakana.js":3962,"./Script/Kawi.js":99140,"./Script/Kayah_Li.js":88425,"./Script/Kharoshthi.js":11648,"./Script/Khitan_Small_Script.js":67968,"./Script/Khmer.js":21205,"./Script/Khojki.js":5794,"./Script/Khudawadi.js":95492,"./Script/Lao.js":29088,"./Script/Latin.js":59992,"./Script/Lepcha.js":66891,"./Script/Limbu.js":33324,"./Script/Linear_A.js":74596,"./Script/Linear_B.js":1620,"./Script/Lisu.js":42747,"./Script/Lycian.js":1657,"./Script/Lydian.js":79038,"./Script/Mahajani.js":58990,"./Script/Makasar.js":31935,"./Script/Malayalam.js":15666,"./Script/Mandaic.js":81458,"./Script/Manichaean.js":49002,"./Script/Marchen.js":38394,"./Script/Masaram_Gondi.js":13910,"./Script/Medefaidrin.js":91850,"./Script/Meetei_Mayek.js":43034,"./Script/Mende_Kikakui.js":51271,"./Script/Meroitic_Cursive.js":70039,"./Script/Meroitic_Hieroglyphs.js":28978,"./Script/Miao.js":41801,"./Script/Modi.js":28146,"./Script/Mongolian.js":34848,"./Script/Mro.js":75485,"./Script/Multani.js":45988,"./Script/Myanmar.js":76042,"./Script/Nabataean.js":81263,"./Script/Nag_Mundari.js":17318,"./Script/Nandinagari.js":16087,"./Script/New_Tai_Lue.js":93938,"./Script/Newa.js":12645,"./Script/Nko.js":41687,"./Script/Nushu.js":19566,"./Script/Nyiakeng_Puachue_Hmong.js":57324,"./Script/Ogham.js":28054,"./Script/Ol_Chiki.js":50326,"./Script/Old_Hungarian.js":89704,"./Script/Old_Italic.js":81737,"./Script/Old_North_Arabian.js":60623,"./Script/Old_Permic.js":84547,"./Script/Old_Persian.js":4062,"./Script/Old_Sogdian.js":91435,"./Script/Old_South_Arabian.js":17744,"./Script/Old_Turkic.js":85004,"./Script/Old_Uyghur.js":56299,"./Script/Oriya.js":61702,"./Script/Osage.js":66820,"./Script/Osmanya.js":68741,"./Script/Pahawh_Hmong.js":43421,"./Script/Palmyrene.js":71540,"./Script/Pau_Cin_Hau.js":1646,"./Script/Phags_Pa.js":79532,"./Script/Phoenician.js":17297,"./Script/Psalter_Pahlavi.js":59563,"./Script/Rejang.js":15670,"./Script/Runic.js":15180,"./Script/Samaritan.js":85123,"./Script/Saurashtra.js":40061,"./Script/Sharada.js":72487,"./Script/Shavian.js":59504,"./Script/Siddham.js":565,"./Script/SignWriting.js":19877,"./Script/Sinhala.js":66662,"./Script/Sogdian.js":11761,"./Script/Sora_Sompeng.js":35055,"./Script/Soyombo.js":62187,"./Script/Sundanese.js":78461,"./Script/Syloti_Nagri.js":74405,"./Script/Syriac.js":15815,"./Script/Tagalog.js":2333,"./Script/Tagbanwa.js":38249,"./Script/Tai_Le.js":29852,"./Script/Tai_Tham.js":59997,"./Script/Tai_Viet.js":92465,"./Script/Takri.js":95234,"./Script/Tamil.js":59527,"./Script/Tangsa.js":946,"./Script/Tangut.js":86011,"./Script/Telugu.js":4866,"./Script/Thaana.js":36876,"./Script/Thai.js":71517,"./Script/Tibetan.js":49897,"./Script/Tifinagh.js":71384,"./Script/Tirhuta.js":51862,"./Script/Toto.js":79830,"./Script/Ugaritic.js":92019,"./Script/Vai.js":57677,"./Script/Vithkuqi.js":10301,"./Script/Wancho.js":12679,"./Script/Warang_Citi.js":79917,"./Script/Yezidi.js":33172,"./Script/Yi.js":94344,"./Script/Zanabazar_Square.js":90753,"./Script_Extensions/Adlam.js":38937,"./Script_Extensions/Ahom.js":9811,"./Script_Extensions/Anatolian_Hieroglyphs.js":11878,"./Script_Extensions/Arabic.js":98988,"./Script_Extensions/Armenian.js":50944,"./Script_Extensions/Avestan.js":96478,"./Script_Extensions/Balinese.js":28898,"./Script_Extensions/Bamum.js":42809,"./Script_Extensions/Bassa_Vah.js":36382,"./Script_Extensions/Batak.js":18210,"./Script_Extensions/Bengali.js":39762,"./Script_Extensions/Bhaiksuki.js":69666,"./Script_Extensions/Bopomofo.js":87754,"./Script_Extensions/Brahmi.js":94830,"./Script_Extensions/Braille.js":65528,"./Script_Extensions/Buginese.js":3789,"./Script_Extensions/Buhid.js":53126,"./Script_Extensions/Canadian_Aboriginal.js":61228,"./Script_Extensions/Carian.js":26604,"./Script_Extensions/Caucasian_Albanian.js":68874,"./Script_Extensions/Chakma.js":57717,"./Script_Extensions/Cham.js":50272,"./Script_Extensions/Cherokee.js":48334,"./Script_Extensions/Chorasmian.js":61166,"./Script_Extensions/Common.js":73219,"./Script_Extensions/Coptic.js":33538,"./Script_Extensions/Cuneiform.js":59678,"./Script_Extensions/Cypriot.js":45995,"./Script_Extensions/Cypro_Minoan.js":19536,"./Script_Extensions/Cyrillic.js":18638,"./Script_Extensions/Deseret.js":77756,"./Script_Extensions/Devanagari.js":85640,"./Script_Extensions/Dives_Akuru.js":97606,"./Script_Extensions/Dogra.js":80650,"./Script_Extensions/Duployan.js":4539,"./Script_Extensions/Egyptian_Hieroglyphs.js":41585,"./Script_Extensions/Elbasan.js":40751,"./Script_Extensions/Elymaic.js":8933,"./Script_Extensions/Ethiopic.js":56370,"./Script_Extensions/Georgian.js":60656,"./Script_Extensions/Glagolitic.js":22125,"./Script_Extensions/Gothic.js":56298,"./Script_Extensions/Grantha.js":86631,"./Script_Extensions/Greek.js":80161,"./Script_Extensions/Gujarati.js":41962,"./Script_Extensions/Gunjala_Gondi.js":46189,"./Script_Extensions/Gurmukhi.js":8194,"./Script_Extensions/Han.js":5545,"./Script_Extensions/Hangul.js":94337,"./Script_Extensions/Hanifi_Rohingya.js":25890,"./Script_Extensions/Hanunoo.js":54191,"./Script_Extensions/Hatran.js":62640,"./Script_Extensions/Hebrew.js":26210,"./Script_Extensions/Hiragana.js":4645,"./Script_Extensions/Imperial_Aramaic.js":47790,"./Script_Extensions/Inherited.js":65719,"./Script_Extensions/Inscriptional_Pahlavi.js":58626,"./Script_Extensions/Inscriptional_Parthian.js":50167,"./Script_Extensions/Javanese.js":29743,"./Script_Extensions/Kaithi.js":11958,"./Script_Extensions/Kannada.js":26161,"./Script_Extensions/Katakana.js":58831,"./Script_Extensions/Kawi.js":93386,"./Script_Extensions/Kayah_Li.js":65916,"./Script_Extensions/Kharoshthi.js":97319,"./Script_Extensions/Khitan_Small_Script.js":82273,"./Script_Extensions/Khmer.js":21654,"./Script_Extensions/Khojki.js":60840,"./Script_Extensions/Khudawadi.js":84937,"./Script_Extensions/Lao.js":3895,"./Script_Extensions/Latin.js":34462,"./Script_Extensions/Lepcha.js":55753,"./Script_Extensions/Limbu.js":82970,"./Script_Extensions/Linear_A.js":61456,"./Script_Extensions/Linear_B.js":7475,"./Script_Extensions/Lisu.js":82841,"./Script_Extensions/Lycian.js":25245,"./Script_Extensions/Lydian.js":40610,"./Script_Extensions/Mahajani.js":71461,"./Script_Extensions/Makasar.js":90995,"./Script_Extensions/Malayalam.js":4201,"./Script_Extensions/Mandaic.js":85976,"./Script_Extensions/Manichaean.js":61361,"./Script_Extensions/Marchen.js":51089,"./Script_Extensions/Masaram_Gondi.js":75850,"./Script_Extensions/Medefaidrin.js":35394,"./Script_Extensions/Meetei_Mayek.js":65222,"./Script_Extensions/Mende_Kikakui.js":56734,"./Script_Extensions/Meroitic_Cursive.js":48438,"./Script_Extensions/Meroitic_Hieroglyphs.js":63315,"./Script_Extensions/Miao.js":89426,"./Script_Extensions/Modi.js":56126,"./Script_Extensions/Mongolian.js":48441,"./Script_Extensions/Mro.js":96237,"./Script_Extensions/Multani.js":12152,"./Script_Extensions/Myanmar.js":88384,"./Script_Extensions/Nabataean.js":22445,"./Script_Extensions/Nag_Mundari.js":48651,"./Script_Extensions/Nandinagari.js":54947,"./Script_Extensions/New_Tai_Lue.js":25650,"./Script_Extensions/Newa.js":997,"./Script_Extensions/Nko.js":35334,"./Script_Extensions/Nushu.js":38408,"./Script_Extensions/Nyiakeng_Puachue_Hmong.js":53615,"./Script_Extensions/Ogham.js":72435,"./Script_Extensions/Ol_Chiki.js":6286,"./Script_Extensions/Old_Hungarian.js":10512,"./Script_Extensions/Old_Italic.js":7259,"./Script_Extensions/Old_North_Arabian.js":79715,"./Script_Extensions/Old_Permic.js":84513,"./Script_Extensions/Old_Persian.js":29058,"./Script_Extensions/Old_Sogdian.js":22883,"./Script_Extensions/Old_South_Arabian.js":25750,"./Script_Extensions/Old_Turkic.js":38028,"./Script_Extensions/Old_Uyghur.js":82038,"./Script_Extensions/Oriya.js":93543,"./Script_Extensions/Osage.js":55599,"./Script_Extensions/Osmanya.js":6499,"./Script_Extensions/Pahawh_Hmong.js":87093,"./Script_Extensions/Palmyrene.js":33203,"./Script_Extensions/Pau_Cin_Hau.js":32175,"./Script_Extensions/Phags_Pa.js":80475,"./Script_Extensions/Phoenician.js":88683,"./Script_Extensions/Psalter_Pahlavi.js":13132,"./Script_Extensions/Rejang.js":10643,"./Script_Extensions/Runic.js":92370,"./Script_Extensions/Samaritan.js":62803,"./Script_Extensions/Saurashtra.js":69504,"./Script_Extensions/Sharada.js":57957,"./Script_Extensions/Shavian.js":15581,"./Script_Extensions/Siddham.js":45898,"./Script_Extensions/SignWriting.js":73338,"./Script_Extensions/Sinhala.js":54400,"./Script_Extensions/Sogdian.js":69554,"./Script_Extensions/Sora_Sompeng.js":82168,"./Script_Extensions/Soyombo.js":55339,"./Script_Extensions/Sundanese.js":17361,"./Script_Extensions/Syloti_Nagri.js":7453,"./Script_Extensions/Syriac.js":49190,"./Script_Extensions/Tagalog.js":78050,"./Script_Extensions/Tagbanwa.js":6896,"./Script_Extensions/Tai_Le.js":30486,"./Script_Extensions/Tai_Tham.js":43272,"./Script_Extensions/Tai_Viet.js":2338,"./Script_Extensions/Takri.js":15222,"./Script_Extensions/Tamil.js":25234,"./Script_Extensions/Tangsa.js":14113,"./Script_Extensions/Tangut.js":12606,"./Script_Extensions/Telugu.js":60209,"./Script_Extensions/Thaana.js":34190,"./Script_Extensions/Thai.js":24815,"./Script_Extensions/Tibetan.js":65333,"./Script_Extensions/Tifinagh.js":98578,"./Script_Extensions/Tirhuta.js":25740,"./Script_Extensions/Toto.js":20190,"./Script_Extensions/Ugaritic.js":41418,"./Script_Extensions/Vai.js":95619,"./Script_Extensions/Vithkuqi.js":4862,"./Script_Extensions/Wancho.js":80134,"./Script_Extensions/Warang_Citi.js":61158,"./Script_Extensions/Yezidi.js":25,"./Script_Extensions/Yi.js":47685,"./Script_Extensions/Zanabazar_Square.js":92290,"./index.js":31714,"./unicode-version.js":35362};function t(e){var a=r(e);return n(a)}function r(e){if(!n.o(d,e)){var a=new Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}return d[e]}t.keys=function(){return Object.keys(d)},t.resolve=r,e.exports=t,t.id=38531},64956:function(e,a,n){var d=n(97826);e.exports=d},73645:function(e,a,n){n(48410);var d=n(79775);e.exports=d.Object.assign},8924:function(e,a,n){e.exports=n(16980)},16980:function(e,a,n){var d=n(64956);e.exports=d},45089:function(e,a,n){var d=n(90930),t=n(9268),r=TypeError;e.exports=function(e){if(d(e))return e;throw r(t(e)+" is not a function")}},41449:function(e,a,n){var d=n(41956),t=n(9268),r=TypeError;e.exports=function(e){if(d(e))return e;throw r(t(e)+" is not a constructor")}},78669:function(e,a,n){var d=n(50211),t=n(44710),r=n(77826).f,o=d("unscopables"),i=Array.prototype;null==i[o]&&r(i,o,{configurable:!0,value:t(null)}),e.exports=function(e){i[o][e]=!0}},56112:function(e,a,n){var d=n(28759),t=String,r=TypeError;e.exports=function(e){if(d(e))return e;throw r(t(e)+" is not an object")}},56198:function(e,a,n){var d=n(64088),t=n(7740),r=n(82871),o=function(e){return function(a,n,o){var i,g=d(a),s=r(g),c=t(o,s);if(e&&n!=n){for(;s>c;)if((i=g[c++])!=i)return!0}else for(;s>c;c++)if((e||c in g)&&g[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},52306:function(e,a,n){var d=n(74130),t=d({}.toString),r=d("".slice);e.exports=function(e){return r(t(e),8,-1)}},90375:function(e,a,n){var d=n(12371),t=n(90930),r=n(52306),o=n(50211)("toStringTag"),i=Object,g="Arguments"==r(function(){return arguments}());e.exports=d?r:function(e){var a,n,d;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,a){try{return e[a]}catch(n){}}(a=i(e),o))?n:g?r(a):"Object"==(d=r(a))&&t(a.callee)?"Arguments":d}},48474:function(e,a,n){var d=n(49606),t=n(46095),r=n(94399),o=n(77826);e.exports=function(e,a,n){for(var i=t(a),g=o.f,s=r.f,c=0;c0&&d[0]<4?1:+(d[0]+d[1])),!t&&o&&(!(d=o.match(/Edge\/(\d+)/))||d[1]>=74)&&(d=o.match(/Chrome\/(\d+)/))&&(t=+d[1]),e.exports=t},58684:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},51695:function(e,a,n){var d=n(22086),t=n(94399).f,r=n(72585),o=n(1343),i=n(79444),g=n(48474),s=n(67189);e.exports=function(e,a){var n,c,u,R,l,p=e.target,f=e.global,h=e.stat;if(n=f?d:h?d[p]||i(p,{}):(d[p]||{}).prototype)for(c in a){if(R=a[c],u=e.dontCallGetSet?(l=t(n,c))&&l.value:n[c],!s(f?c:p+(h?".":"#")+c,e.forced)&&void 0!==u){if(typeof R==typeof u)continue;g(R,u)}(e.sham||u&&u.sham)&&r(R,"sham",!0),o(n,c,R,e)}}},63677:function(e){e.exports=function(e){try{return!!e()}catch(a){return!0}}},86059:function(e,a,n){var d=n(63677);e.exports=!d((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},59413:function(e,a,n){var d=n(86059),t=Function.prototype.call;e.exports=d?t.bind(t):function(){return t.apply(t,arguments)}},94398:function(e,a,n){var d=n(25283),t=n(49606),r=Function.prototype,o=d&&Object.getOwnPropertyDescriptor,i=t(r,"name"),g=i&&"something"===function(){}.name,s=i&&(!d||d&&o(r,"name").configurable);e.exports={EXISTS:i,PROPER:g,CONFIGURABLE:s}},74130:function(e,a,n){var d=n(86059),t=Function.prototype,r=t.call,o=d&&t.bind.bind(r,r);e.exports=function(e){return d?o(e):function(){return r.apply(e,arguments)}}},78240:function(e,a,n){var d=n(52306),t=n(74130);e.exports=function(e){if("Function"===d(e))return t(e)}},10563:function(e,a,n){var d=n(22086),t=n(90930),r=function(e){return t(e)?e:void 0};e.exports=function(e,a){return arguments.length<2?r(d[e]):d[e]&&d[e][a]}},2964:function(e,a,n){var d=n(45089),t=n(71858);e.exports=function(e,a){var n=e[a];return t(n)?void 0:d(n)}},18509:function(e,a,n){var d=n(78240),t=n(3060),r=Math.floor,o=d("".charAt),i=d("".replace),g=d("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,a,n,d,u,R){var l=n+e.length,p=d.length,f=c;return void 0!==u&&(u=t(u),f=s),i(R,f,(function(t,i){var s;switch(o(i,0)){case"$":return"$";case"&":return e;case"`":return g(a,0,n);case"'":return g(a,l);case"<":s=u[g(i,1,-1)];break;default:var c=+i;if(0===c)return t;if(c>p){var R=r(c/10);return 0===R?t:R<=p?void 0===d[R-1]?o(i,1):d[R-1]+o(i,1):t}s=d[c-1]}return void 0===s?"":s}))}},22086:function(e,a,n){var d=function(e){return e&&e.Math==Math&&e};e.exports=d("object"==typeof globalThis&&globalThis)||d("object"==typeof window&&window)||d("object"==typeof self&&self)||d("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},49606:function(e,a,n){var d=n(78240),t=n(3060),r=d({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,a){return r(t(e),a)}},7153:function(e){e.exports={}},25963:function(e,a,n){var d=n(10563);e.exports=d("document","documentElement")},26761:function(e,a,n){var d=n(25283),t=n(63677),r=n(20821);e.exports=!d&&!t((function(){return 7!=Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a}))},95974:function(e,a,n){var d=n(78240),t=n(63677),r=n(52306),o=Object,i=d("".split);e.exports=t((function(){return!o("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?i(e,""):o(e)}:o},39277:function(e,a,n){var d=n(78240),t=n(90930),r=n(74489),o=d(Function.toString);t(r.inspectSource)||(r.inspectSource=function(e){return o(e)}),e.exports=r.inspectSource},83278:function(e,a,n){var d,t,r,o=n(40640),i=n(22086),g=n(28759),s=n(72585),c=n(49606),u=n(74489),R=n(88944),l=n(7153),p="Object already initialized",f=i.TypeError,h=i.WeakMap;if(o||u.state){var m=u.state||(u.state=new h);m.get=m.get,m.has=m.has,m.set=m.set,d=function(e,a){if(m.has(e))throw f(p);return a.facade=e,m.set(e,a),a},t=function(e){return m.get(e)||{}},r=function(e){return m.has(e)}}else{var y=R("state");l[y]=!0,d=function(e,a){if(c(e,y))throw f(p);return a.facade=e,s(e,y,a),a},t=function(e){return c(e,y)?e[y]:{}},r=function(e){return c(e,y)}}e.exports={set:d,get:t,has:r,enforce:function(e){return r(e)?t(e):d(e,{})},getterFor:function(e){return function(a){var n;if(!g(a)||(n=t(a)).type!==e)throw f("Incompatible receiver, "+e+" required");return n}}}},90930:function(e,a,n){var d=n(27886),t=d.all;e.exports=d.IS_HTMLDDA?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},41956:function(e,a,n){var d=n(78240),t=n(63677),r=n(90930),o=n(90375),i=n(10563),g=n(39277),s=function(){},c=[],u=i("Reflect","construct"),R=/^\s*(?:class|function)\b/,l=d(R.exec),p=!R.exec(s),f=function(e){if(!r(e))return!1;try{return u(s,c,e),!0}catch(a){return!1}},h=function(e){if(!r(e))return!1;switch(o(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!l(R,g(e))}catch(a){return!0}};h.sham=!0,e.exports=!u||t((function(){var e;return f(f.call)||!f(Object)||!f((function(){e=!0}))||e}))?h:f},67189:function(e,a,n){var d=n(63677),t=n(90930),r=/#|\.prototype\./,o=function(e,a){var n=g[i(e)];return n==c||n!=s&&(t(a)?d(a):!!a)},i=o.normalize=function(e){return String(e).replace(r,".").toLowerCase()},g=o.data={},s=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},71858:function(e){e.exports=function(e){return null==e}},28759:function(e,a,n){var d=n(90930),t=n(27886),r=t.all;e.exports=t.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:d(e)||e===r}:function(e){return"object"==typeof e?null!==e:d(e)}},43296:function(e){e.exports=!1},67994:function(e,a,n){var d=n(28759),t=n(52306),r=n(50211)("match");e.exports=function(e){var a;return d(e)&&(void 0!==(a=e[r])?!!a:"RegExp"==t(e))}},92071:function(e,a,n){var d=n(10563),t=n(90930),r=n(95516),o=n(91876),i=Object;e.exports=o?function(e){return"symbol"==typeof e}:function(e){var a=d("Symbol");return t(a)&&r(a.prototype,i(e))}},82871:function(e,a,n){var d=n(24005);e.exports=function(e){return d(e.length)}},83712:function(e,a,n){var d=n(63677),t=n(90930),r=n(49606),o=n(25283),i=n(94398).CONFIGURABLE,g=n(39277),s=n(83278),c=s.enforce,u=s.get,R=Object.defineProperty,l=o&&!d((function(){return 8!==R((function(){}),"length",{value:8}).length})),p=String(String).split("String"),f=e.exports=function(e,a,n){"Symbol("===String(a).slice(0,7)&&(a="["+String(a).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(a="get "+a),n&&n.setter&&(a="set "+a),(!r(e,"name")||i&&e.name!==a)&&(o?R(e,"name",{value:a,configurable:!0}):e.name=a),l&&n&&r(n,"arity")&&e.length!==n.arity&&R(e,"length",{value:n.arity});try{n&&r(n,"constructor")&&n.constructor?o&&R(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(t){}var d=c(e);return r(d,"source")||(d.source=p.join("string"==typeof a?a:"")),e};Function.prototype.toString=f((function(){return t(this)&&u(this).source||g(this)}),"toString")},55681:function(e){var a=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var d=+e;return(d>0?n:a)(d)}},98722:function(e,a,n){"use strict";var d=n(45089),t=TypeError,r=function(e){var a,n;this.promise=new e((function(e,d){if(void 0!==a||void 0!==n)throw t("Bad Promise constructor");a=e,n=d})),this.resolve=d(a),this.reject=d(n)};e.exports.f=function(e){return new r(e)}},88675:function(e,a,n){"use strict";var d=n(25283),t=n(78240),r=n(59413),o=n(63677),i=n(68779),g=n(66952),s=n(7446),c=n(3060),u=n(95974),R=Object.assign,l=Object.defineProperty,p=t([].concat);e.exports=!R||o((function(){if(d&&1!==R({b:1},R(l({},"a",{enumerable:!0,get:function(){l(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},a={},n=Symbol(),t="abcdefghijklmnopqrst";return e[n]=7,t.split("").forEach((function(e){a[e]=e})),7!=R({},e)[n]||i(R({},a)).join("")!=t}))?function(e,a){for(var n=c(e),t=arguments.length,o=1,R=g.f,l=s.f;t>o;)for(var f,h=u(arguments[o++]),m=R?p(i(h),R(h)):i(h),y=m.length,b=0;y>b;)f=m[b++],d&&!r(l,h,f)||(n[f]=h[f]);return n}:R},44710:function(e,a,n){var d,t=n(56112),r=n(77711),o=n(58684),i=n(7153),g=n(25963),s=n(20821),c=n(88944),u=c("IE_PROTO"),R=function(){},l=function(e){return"\");\n}\n\nfunction createBox() {\n return [\"&&{\", system, \"}\"];\n}\n\ncreateBox.meta = system.meta;\n\nconst getMediaWidth = getBreakpointBound => value => props => {\n const v = getBreakpointBound(getScreens(props), value);\n return v === null ? \"0\" : v || value;\n};\n\nconst mediaGetters = {\n \"min-width\": getMediaWidth(getBreakpointMin),\n \"max-width\": getMediaWidth(getBreakpointMax)\n};\nconst PROP_CHAR = \"[-\\\\w]\";\nconst VALUE_CHAR = \"(?:\\\\\\\\[\\\\s\\\\S]|[^\\\\\\\\;{}])\";\nconst PROP_PATT = \"(\".concat(PROP_CHAR, \"+)(\\\\s*:\\\\s*)(?=\\\\S)(\").concat(VALUE_CHAR, \"*?)(\\\\s*!important)?(\\\\s*;)\");\nconst MEDIA_CHAR = \"[^{]\";\nconst MEDIA_PATT = \"(@media\\\\b\\\\s*)(?=\\\\S)(\".concat(MEDIA_CHAR, \"+?)(\\\\s*\\\\{)\");\nconst MATCH_REGEXP = new RegExp(\"(?:\".concat(PROP_PATT, \"|\").concat(MEDIA_PATT, \")\"), \"g\");\nconst QUERY_REGEXP = new RegExp(\"(\\\\(\\\\s*)(\".concat(PROP_CHAR, \"+)(\\\\s*:\\\\s*)([^\\\\)]*?)(\\\\s*\\\\))\"), \"g\");\n\nconst mediaTransform = rawValue => {\n let matches;\n let lastIndex = 0;\n const values = [];\n\n while (matches = QUERY_REGEXP.exec(rawValue)) {\n const [, open, prop, colon, value, close] = matches;\n const getter = mediaGetters[prop];\n\n if (getter) {\n values.push(rawValue.slice(lastIndex, matches.index));\n values.push(p => \"\".concat(open).concat(prop).concat(colon).concat(getter(value)(p)).concat(close));\n lastIndex = matches.index + matches[0].length;\n }\n }\n\n values.push(rawValue.slice(lastIndex, rawValue.length));\n return values;\n};\n\nconst createTransform = generator => rawValue => {\n if (typeof rawValue !== \"string\") return rawValue;\n let matches;\n let lastIndex = 0;\n const values = [];\n\n while (matches = MATCH_REGEXP.exec(rawValue)) {\n const [, prop, colon, value, imp, semi, media, query, brace] = matches;\n\n if (media) {\n values.push(rawValue.slice(lastIndex, matches.index));\n values.push(media);\n mediaTransform(query).forEach(v => values.push(v));\n values.push(brace);\n lastIndex = matches.index + matches[0].length;\n } else {\n const getter = generator.meta.cssGetters[prop];\n\n if (getter) {\n values.push(rawValue.slice(lastIndex, matches.index));\n values.push(p => \"\".concat(prop).concat(colon).concat(getter(value)(p)).concat(imp || \"\").concat(semi));\n lastIndex = matches.index + matches[0].length;\n }\n }\n }\n\n values.push(rawValue.slice(lastIndex, rawValue.length));\n return values;\n};\n\nconst createUseGetter = (getter, useTheme) => (value, defaultValue) => {\n const theme = useTheme();\n return useMemo(() => getter(value, defaultValue)({\n theme\n }), [value, defaultValue, theme]);\n};\n\nexport { ColorModeContext, createBox, createColorModeProvider, createColorStyles, createTransform, createUseGetter, getColorModeInitScriptElement, getColorModeInitScriptTag, useColorMode, useColorModeState, useColorModeTheme, useThemeBreakpoint, useThemeDown, useThemeScreens, useThemeUp, useViewportWidth };","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import _taggedTemplateLiteral from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\";\n\nvar _templateObject, _templateObject2, _templateObject3;\n\nimport styled$1, { createGlobalStyle as createGlobalStyle$1, ThemeContext, ThemeProvider, css as css$1 } from 'styled-components';\nexport { ServerStyleSheet, StyleSheetManager, ThemeConsumer, ThemeContext, ThemeProvider, isStyledComponent, keyframes, withTheme } from 'styled-components';\nimport { createColorStyles, createColorModeProvider, createUseGetter, useThemeScreens, useThemeBreakpoint, useThemeUp, useThemeDown, createTransform } from '@xstyled/core';\nexport { getColorModeInitScriptElement, getColorModeInitScriptTag, useColorMode, useViewportWidth } from '@xstyled/core';\nimport { useContext } from 'react';\nimport { th, getPreflightStyles, system as system$1 } from '@xstyled/system';\nexport * from '@xstyled/system';\nimport { flattenStrings, string } from '@xstyled/util';\nconst ColorModeStyle = createGlobalStyle$1(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\", \"\"])), p => createColorStyles(p.theme, {\n targetSelector: p.targetSelector\n}));\nconst ColorModeProvider = createColorModeProvider({\n ThemeContext,\n ThemeProvider,\n ColorModeStyle\n});\n\nconst useTheme = () => {\n return useContext(ThemeContext);\n};\n\nconst useTh = createUseGetter(th, useTheme);\nconst useAngle = createUseGetter(th.angle, useTheme);\nconst useAnimation = createUseGetter(th.animation, useTheme);\nconst useBorder = createUseGetter(th.border, useTheme);\nconst useBorderColor = createUseGetter(th.borderColor, useTheme);\nconst useBorderStyle = createUseGetter(th.borderStyle, useTheme);\nconst useBorderWidth = createUseGetter(th.borderWidth, useTheme);\nconst useColor = createUseGetter(th.color, useTheme);\nconst useDuration = createUseGetter(th.duration, useTheme);\nconst useFont = createUseGetter(th.font, useTheme);\nconst useFontSize = createUseGetter(th.fontSize, useTheme);\nconst useFontWeight = createUseGetter(th.fontWeight, useTheme);\nconst useInset = createUseGetter(th.inset, useTheme);\nconst useLetterSpacing = createUseGetter(th.letterSpacing, useTheme);\nconst useLineHeight = createUseGetter(th.lineHeight, useTheme);\nconst usePercent = createUseGetter(th.percent, useTheme);\nconst usePx = createUseGetter(th.px, useTheme);\nconst useRadius = createUseGetter(th.radius, useTheme);\nconst useRingWidth = createUseGetter(th.ringWidth, useTheme);\nconst useShadow = createUseGetter(th.shadow, useTheme);\nconst useSize = createUseGetter(th.size, useTheme);\nconst useSpace = createUseGetter(th.space, useTheme);\nconst useTimingFunction = createUseGetter(th.timingFunction, useTheme);\nconst useTransform = createUseGetter(th.transform, useTheme);\nconst useTransition = createUseGetter(th.transition, useTheme);\nconst useTransitionProperty = createUseGetter(th.transitionProperty, useTheme);\nconst useZIndex = createUseGetter(th.zIndex, useTheme);\n\nconst useScreens = () => {\n return useThemeScreens(useTheme());\n};\n\nconst useBreakpoint = () => {\n return useThemeBreakpoint(useTheme());\n};\n\nconst useUp = key => {\n return useThemeUp(useTheme(), key);\n};\n\nconst useDown = key => {\n return useThemeDown(useTheme(), key);\n};\n\nconst Preflight = createGlobalStyle$1(_ref => {\n let {\n theme\n } = _ref;\n return getPreflightStyles(theme);\n});\n\nconst createCssFunction = generator => {\n const transform = createTransform(generator);\n return function () {\n const scCssArgs = css$1(...arguments);\n const flattenedArgs = flattenStrings(scCssArgs);\n return flattenedArgs.map(transform);\n };\n};\n\nconst scStyled = typeof styled$1 === \"function\" ? styled$1 : styled$1.default;\n\nconst getCreateStyle = (baseCreateStyle, css, generator) => {\n const createStyle = function () {\n return baseCreateStyle(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\", \"\", \"\"])), css(...arguments), generator);\n };\n\n createStyle.attrs = attrs => getCreateStyle(baseCreateStyle.attrs(attrs), css, generator);\n\n createStyle.withConfig = config => getCreateStyle(baseCreateStyle.withConfig(config), css, generator);\n\n return createStyle;\n};\n\nconst createShouldForwardProp = generator => {\n const propSet = new Set(generator.meta.props);\n return (prop, defaultValidatorFn, elementToBeCreated) => {\n if (string(prop) && propSet.has(prop)) {\n return false;\n }\n\n if (typeof elementToBeCreated === \"string\") {\n return defaultValidatorFn(prop);\n }\n\n return true;\n };\n};\n\nconst createBaseStyled = (css, generator) => {\n const config = generator ? {\n shouldForwardProp: createShouldForwardProp(generator)\n } : {};\n return component => {\n const baseStyled = scStyled(component);\n return getCreateStyle(config ? baseStyled.withConfig(config) : baseStyled, css, generator);\n };\n};\n\nconst createStyled = generator => {\n const css = createCssFunction(generator);\n const styled = createBaseStyled(css);\n const xstyled = createBaseStyled(css, generator);\n styled.box = xstyled(\"div\");\n Object.keys(scStyled).forEach(key => {\n styled[key] = styled(key);\n styled[\"\".concat(key, \"Box\")] = xstyled(key);\n });\n return styled;\n};\n\nconst createX = generator => {\n const xstyled = createBaseStyled(createCssFunction(generator), generator);\n const x = {};\n Object.keys(scStyled).forEach(tag => {\n x[tag] = xstyled(tag)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\"])));\n });\n return x;\n};\n\nconst createCreateGlobalStyle = generator => {\n const css = createCssFunction(generator);\n return function () {\n return createGlobalStyle$1([css(...arguments)]);\n };\n};\n\nconst createCss = generator => {\n return {\n css: createCssFunction(generator),\n x: createX(generator),\n styled: createStyled(generator),\n createGlobalStyle: createCreateGlobalStyle(generator)\n };\n};\n\nconst {\n css,\n styled,\n x,\n createGlobalStyle\n} = createCss(system$1);\nexport { ColorModeProvider, Preflight, createCss, createGlobalStyle, css, styled as default, styled, useAngle, useAnimation, useBorder, useBorderColor, useBorderStyle, useBorderWidth, useBreakpoint, useColor, useDown, useDuration, useFont, useFontSize, useFontWeight, useInset, useLetterSpacing, useLineHeight, usePercent, usePx, useRadius, useRingWidth, useScreens, useShadow, useSize, useSpace, useTh, useTheme, useTimingFunction, useTransform, useTransition, useTransitionProperty, useUp, useZIndex, x };","import { num, string, getThemeValue, negative, warn, merge, assign, func, is, obj, cascade } from '@xstyled/util';\nvar __pow = Math.pow;\n\nconst round = value => Math.round(value * __pow(10, 4)) / __pow(10, 4);\n\nconst unit = unit2 => value => num(value) && value !== 0 ? \"\".concat(value).concat(unit2) : value;\n\nconst ms = unit(\"ms\");\nconst px$1 = unit(\"px\");\nconst deg = unit(\"deg\");\n\nconst pxToRem = function (value) {\n let {\n rootFontSize = 16\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return round(value / rootFontSize);\n};\n\nconst remPx = (value, options) => {\n const num2 = Number(value);\n if (Number.isNaN(num2) || num2 === 0) return value;\n return \"\".concat(pxToRem(num2, options), \"rem\");\n};\n\nconst rpx = (value, options) => {\n if (!string(value) || value.length < 4) return value;\n const unit2 = value.slice(-3);\n if (unit2 !== \"rpx\") return value;\n const n = Number(value.slice(0, value.length - 3));\n if (n === 0) return 0;\n return \"\".concat(pxToRem(n, options), \"rem\");\n};\n\nconst percent = n => num(n) && n !== 0 && n >= -1 && n <= 1 ? \"\".concat(round(n * 100), \"%\") : n;\n\nconst transformNegative = (_, _ref) => {\n let {\n rawValue,\n variants,\n props\n } = _ref;\n\n if (string(rawValue)) {\n const neg = rawValue.startsWith(\"-\");\n const abs = neg ? rawValue.substr(1) : rawValue;\n const varVal = getThemeValue(props, abs, variants);\n const value = string(varVal) || num(varVal) ? varVal : abs;\n return neg ? \"-\".concat(value) : value;\n }\n\n if (num(rawValue)) {\n const neg = negative(rawValue);\n const abs = Math.abs(rawValue);\n const varVal = variants ? variants[abs] : void 0;\n if (string(varVal)) return neg ? \"-\".concat(varVal) : varVal;\n const value = num(varVal) ? varVal : abs;\n return neg ? value * -1 : value;\n }\n\n return void 0;\n};\n\nconst mediaMinWidth = value => value ? \"@media (min-width: \".concat(value, \")\") : null;\n\nconst mediaMaxWidth = value => value ? \"@media (max-width: \".concat(value, \")\") : null;\n\nconst mediaBetweenWidth = (min, max) => min && max ? \"@media (min-width: \".concat(min, \") and (max-width: \").concat(max, \")\") : null;\n\nconst getBreakpointMin = (screens, key) => {\n const value = screens[key];\n return value === 0 ? null : px$1(value);\n};\n\nconst getBreakpointMax = (screens, key) => {\n const value = screens[key];\n return value === 0 ? null : px$1(value - 0.02);\n};\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$6.call(b, prop)) __defNormalProp$6(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$6) for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop)) __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\n\nconst getScreens = props => {\n return props.theme && props.theme.screens ? props.theme.screens : {};\n};\n\nconst getStates = props => {\n return props.theme && props.theme.states ? props.theme.states : {};\n};\n\nconst getVariants = props => {\n const screens = getScreens(props);\n const states = getStates(props);\n const medias = {};\n\n for (const value in screens) {\n medias[value] = mediaMinWidth(getBreakpointMin(screens, value));\n }\n\n const variants = __spreadValues$6(__spreadValues$6({}, medias), states);\n\n for (const [value, selector] of Object.entries(variants)) {\n if (selector && selector.startsWith(\"@\")) {\n delete variants[value];\n variants[value] = selector;\n }\n }\n\n return variants;\n};\n\nconst getCachedVariants = (props, cache) => {\n if (cache.has(\"_variants\")) return cache.get(\"_variants\");\n const states = getVariants(props);\n cache.set(\"_variants\", states);\n return states;\n};\n\nconst cacheSupported = typeof Map !== \"undefined\" && typeof WeakMap !== \"undefined\";\nconst caches = cacheSupported ? new WeakMap() : null;\n\nconst getThemeCache = theme => {\n if (caches === null) return null;\n if (caches.has(theme)) return caches.get(theme) || null;\n const cache = {};\n caches.set(theme, cache);\n return cache;\n};\n\nconst noopCache = {\n has: () => false,\n set: () => void 0,\n get: () => void 0\n};\n\nconst getCache = (theme, namespace) => {\n if (!theme) return noopCache;\n const cache = getThemeCache(theme);\n if (!cache || !theme) return noopCache;\n cache[namespace] = cache[namespace] || new Map();\n return cache[namespace];\n};\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$5 = (obj2, key, value) => key in obj2 ? __defProp$5(obj2, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj2[key] = value;\n\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$5.call(b, prop)) __defNormalProp$5(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$5) for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop)) __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\n\nlet themeGetterId = 0;\nconst SPLITTERS = {\n shorthand: [/\\s+/, \" \"],\n multiple: [/\\s*,\\s*/, \",\"]\n};\n\nconst splitValue = (splitter, transform) => value => value.split(splitter[0]).map(transform).join(splitter[1]);\n\nconst themeGetter = _ref2 => {\n let {\n name,\n transform: defaultTransform,\n key,\n compose: compose2,\n shorthand,\n multiple\n } = _ref2;\n const id = themeGetterId++;\n\n const getter = (value, defaultValue) => props => {\n let res = value;\n\n if (!string(value) && !num(value) && value !== true) {\n return res;\n }\n\n const cacheKey = \"\".concat(typeof value, \"-\").concat(value, \"-\").concat(defaultValue);\n const cache = getCache(props.theme, \"__themeGetter\".concat(id));\n if (cache.has(cacheKey)) return cache.get(cacheKey);\n\n const getValue = value2 => {\n const localDefaultValue = is(defaultValue) ? defaultValue : value2;\n let res2 = value2;\n const variants = is(key) ? getThemeValue(props, key) : null;\n\n if (is(variants)) {\n const path = value2 === true ? \"default\" : string(value2) || num(value2) ? value2 : null;\n\n if (is(path)) {\n const fromTheme = getThemeValue(props, path, variants);\n res2 = Array.isArray(fromTheme) ? fromTheme.join(\",\") : fromTheme;\n }\n }\n\n let rawValue = value2;\n\n if (!is(res2)) {\n rawValue = localDefaultValue;\n res2 = localDefaultValue;\n }\n\n const transform = (name && props.theme && props.theme.transformers ? props.theme.transformers[name] : null) || defaultTransform;\n\n if (transform) {\n res2 = transform(res2, {\n rawValue,\n variants,\n props\n });\n }\n\n return compose2 ? compose2(res2)(props) : res2;\n };\n\n if ((shorthand || multiple) && string(value)) {\n let transform = getValue;\n if (shorthand) transform = splitValue(SPLITTERS.shorthand, transform);\n if (multiple) transform = splitValue(SPLITTERS.multiple, transform);\n res = transform(value);\n } else {\n res = getValue(value);\n }\n\n cache.set(cacheKey, res);\n return res;\n };\n\n getter.meta = {\n name,\n transform: defaultTransform\n };\n return getter;\n};\n\nconst createStyleGenerator = _ref3 => {\n let {\n getStyle,\n props,\n cssGetters = {},\n generators\n } = _ref3;\n const generator = getStyle;\n generator.meta = {\n props,\n cssGetters,\n getStyle: generator,\n generators\n };\n\n generator.apply = values => _ref4 => {\n let {\n theme\n } = _ref4;\n return generator(__spreadValues$5({\n theme\n }, values));\n };\n\n return generator;\n};\n\nconst reduceVariants = (props, values, getStyle) => {\n const cache = getCache(props.theme, \"__variants\");\n const variants = getCachedVariants(props, cache);\n let styles = {};\n\n for (const value in values) {\n const style2 = getStyle(values[value]);\n if (style2 === null) continue;\n const state = value in variants ? variants[value] : value;\n if (state === void 0) continue;\n\n if (state === null) {\n styles = merge(styles, style2);\n } else {\n styles[state] = styles[state] ? assign(styles[state], style2) : style2;\n }\n }\n\n return styles;\n};\n\nconst getStyleFactory = (prop, mixin, themeGet) => {\n return props => {\n const fromValue = value2 => {\n if (!is(value2)) return null;\n if (obj(value2)) return reduceVariants(props, value2, fromValue);\n return cascade(mixin(themeGet ? themeGet(value2)(props) : value2), props);\n };\n\n const value = props[prop];\n if (!is(value)) return null;\n const cache = getCache(props.theme, prop);\n if (cache.has(value)) return cache.get(value);\n const style2 = fromValue(props[prop]);\n cache.set(value, style2);\n return style2;\n };\n};\n\nconst indexGeneratorsByProp = generators => {\n const index = {};\n\n for (let i = 0; i < generators.length; i++) {\n const style2 = generators[i];\n\n if (style2 && style2.meta) {\n for (let j = 0; j < style2.meta.props.length; j++) {\n const prop = style2.meta.props[j];\n index[prop] = style2;\n }\n }\n }\n\n return index;\n};\n\nconst sortStyles = (styles, variants) => {\n for (const key in variants) {\n const variant = variants[key];\n const style2 = styles[variant];\n if (!style2) continue;\n delete styles[variant];\n styles[variant] = style2;\n }\n\n return styles;\n};\n\nfunction compose() {\n let flatGenerators = [];\n\n for (var _len = arguments.length, generators = new Array(_len), _key = 0; _key < _len; _key++) {\n generators[_key] = arguments[_key];\n }\n\n generators.forEach(gen => {\n warn(Boolean(gen), \"Undefined generator in \\\"compose\\\" method\");\n if (!gen) return;\n\n if (gen.meta.generators) {\n flatGenerators = [...flatGenerators, ...gen.meta.generators];\n } else {\n flatGenerators.push(gen);\n }\n });\n const generatorsByProp = indexGeneratorsByProp(flatGenerators);\n\n const getStyle = function (props2) {\n let sort = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const styles = {};\n let merged;\n\n for (const key in props2) {\n const generator = generatorsByProp[key];\n\n if (generator) {\n const style2 = generator.meta.getStyle(props2, false);\n merge(styles, style2);\n merged = true;\n }\n }\n\n if (!merged || !sort) return styles;\n const medias = getCachedVariants(props2, getCache(props2.theme, \"__states\"));\n return sortStyles(styles, medias);\n };\n\n const props = [];\n const cssGetters = {};\n\n for (let i = 0; i < flatGenerators.length; i++) {\n const generator = flatGenerators[i];\n props.push(...generator.meta.props);\n Object.assign(cssGetters, generator.meta.cssGetters);\n }\n\n return createStyleGenerator({\n getStyle,\n props,\n cssGetters,\n generators\n });\n}\n\nconst getMixinFromCSSProperties = properties => value => {\n if (string(properties)) return {\n [properties]: value\n };\n const style2 = {};\n\n for (const key in properties) {\n style2[properties[key]] = value;\n }\n\n return style2;\n};\n\nconst getMixinFromCSSOption = css => {\n if (func(css)) return css;\n return getMixinFromCSSProperties(css);\n};\n\nconst dasherize = key => key.replace(/[A-Z]/g, \"-$&\").toLowerCase();\n\nconst style = _ref5 => {\n let {\n prop,\n css,\n themeGet,\n key,\n transform,\n cssProps: cssPropsOption\n } = _ref5;\n const getter = themeGet || (key || transform ? themeGetter({\n key,\n transform\n }) : void 0);\n const cssProps = cssPropsOption || (string(css) ? [css] : Array.isArray(css) ? css : string(prop) ? [prop] : Array.isArray(prop) ? prop : []);\n\n if (Array.isArray(prop)) {\n const mixin2 = css ? getMixinFromCSSOption(css) : css;\n const generators2 = prop.map(prop2 => style({\n prop: prop2,\n css: mixin2,\n cssProps,\n themeGet: getter\n }));\n return compose(...generators2);\n }\n\n const props = [prop];\n const mixin = getMixinFromCSSOption(css || props);\n const generators = [];\n const getStyle = getStyleFactory(prop, mixin, getter);\n const cssGetters = getter ? cssProps.reduce((getters, cssProp) => {\n getters[dasherize(cssProp)] = getter;\n return getters;\n }, {}) : {};\n const generator = createStyleGenerator({\n getStyle,\n props,\n cssGetters\n });\n generators.push(generator);\n return compose(...generators);\n};\n\nconst getPx = themeGetter({\n name: \"px\",\n transform: (value, _ref6) => {\n let {\n props\n } = _ref6;\n\n var _a, _b, _c;\n\n const rootFontSize = (_c = (_b = (_a = props == null ? void 0 : props.theme) == null ? void 0 : _a.settings) == null ? void 0 : _b.rootFontSize) != null ? _c : void 0;\n const num = Number(value);\n return px$1(rpx(Number.isNaN(num) ? value : num, {\n rootFontSize\n }));\n }\n});\nconst getDuration = themeGetter({\n name: \"duration\",\n key: \"durations\",\n transform: value => {\n const num = Number(value);\n return ms(Number.isNaN(num) ? value : num);\n }\n});\nconst getAngle = themeGetter({\n name: \"angle\",\n transform: value => {\n const num = Number(value);\n return deg(Number.isNaN(num) ? value : num);\n }\n});\nconst getPercent = themeGetter({\n name: \"percent\",\n compose: getPx,\n transform: percent\n});\nconst getTransition = themeGetter({\n name: \"transition\",\n key: \"transitions\"\n});\nconst getTransitionProperty = themeGetter({\n name: \"transitionProperty\",\n key: \"transitionProperties\"\n});\nconst getTimingFunction = themeGetter({\n name: \"timingFunction\",\n key: \"timingFunctions\"\n});\nconst transition = style({\n prop: \"transition\",\n themeGet: getTransition\n});\nconst transitionProperty = style({\n prop: \"transitionProperty\",\n themeGet: getTransitionProperty\n});\nconst transitionDuration = style({\n prop: \"transitionDuration\",\n themeGet: getDuration\n});\nconst transitionTimingFunction = style({\n prop: \"transitionTimingFunction\",\n themeGet: getTimingFunction\n});\nconst transitionDelay = style({\n prop: \"transitionDelay\",\n themeGet: getDuration\n});\nconst transitions$1 = compose(transition, transitionProperty, transitionDuration, transitionTimingFunction, transitionDelay);\nconst getAnimation = themeGetter({\n name: \"animation\",\n key: \"animations\"\n});\nconst animation = style({\n prop: \"animation\",\n themeGet: getAnimation\n});\nconst animationDuration = style({\n prop: \"animationDuration\",\n themeGet: getDuration\n});\nconst animationTimingFunction = style({\n prop: \"animationTimingFunction\",\n themeGet: getTimingFunction\n});\nconst animations = compose(animation, animationDuration, animationTimingFunction);\nconst getColor = themeGetter({\n name: \"color\",\n key: \"colors\"\n});\nconst gradientBackgrounds = {\n \"gradient-to-t\": \"linear-gradient(to top, var(--x-gradient-stops))\",\n \"gradient-to-tr\": \"linear-gradient(to top right, var(--x-gradient-stops))\",\n \"gradient-to-r\": \"linear-gradient(to right, var(--x-gradient-stops))\",\n \"gradient-to-br\": \"linear-gradient(to bottom right, var(--x-gradient-stops))\",\n \"gradient-to-b\": \"linear-gradient(to bottom, var(--x-gradient-stops))\",\n \"gradient-to-bl\": \"linear-gradient(to bottom left, var(--x-gradient-stops))\",\n \"gradient-to-l\": \"linear-gradient(to left, var(--x-gradient-stops))\",\n \"gradient-to-tl\": \"linear-gradient(to top left, var(--x-gradient-stops))\"\n};\nconst background = style({\n prop: \"background\",\n css: value => ({\n background: gradientBackgrounds[value] || value\n })\n});\nconst backgroundColor = style({\n prop: [\"backgroundColor\", \"bg\"],\n css: \"backgroundColor\",\n themeGet: getColor\n});\nconst backgroundImage = style({\n prop: \"backgroundImage\",\n css: value => ({\n backgroundImage: gradientBackgrounds[value] || value\n })\n});\nconst backgroundSize = style({\n prop: \"backgroundSize\"\n});\nconst backgroundPosition = style({\n prop: \"backgroundPosition\"\n});\nconst backgroundRepeat = style({\n prop: \"backgroundRepeat\"\n});\nconst backgroundAttachment = style({\n prop: \"backgroundAttachment\"\n});\nconst backgroundClip = style({\n prop: \"backgroundClip\",\n css: [\"backgroundClip\", \"-webkitBackgroundClip\"]\n});\nconst gradientFrom = style({\n prop: \"gradientFrom\",\n themeGet: getColor,\n css: value => {\n return {\n \"--x-gradient-from\": value,\n \"--x-gradient-stops\": \"var(--x-gradient-from), var(--x-gradient-to, transparent)\"\n };\n }\n});\nconst gradientVia = style({\n prop: \"gradientVia\",\n themeGet: getColor,\n css: value => ({\n \"--x-gradient-stops\": \"var(--x-gradient-from), \".concat(value, \", var(--x-gradient-to, transparent)\")\n })\n});\nconst gradientTo = style({\n prop: \"gradientTo\",\n themeGet: getColor,\n css: \"--x-gradient-to\"\n});\nconst backgrounds = compose(background, backgroundColor, backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat, backgroundAttachment, backgroundClip, gradientFrom, gradientVia, gradientTo);\nconst getBorder = themeGetter({\n name: \"border\",\n key: \"borders\",\n transform: value => {\n const num = Number(value);\n return num > 0 ? \"\".concat(px$1(num), \" solid\") : value;\n }\n});\nconst getBorderWidth = themeGetter({\n name: \"borderWidth\",\n key: \"borderWidths\",\n compose: getPx,\n shorthand: true\n});\nconst getBorderColor = themeGetter({\n name: \"borderColor\",\n compose: getColor,\n shorthand: true\n});\nconst getBorderStyle = themeGetter({\n name: \"borderStyle\",\n key: \"borderStyles\"\n});\nconst border = style({\n prop: \"border\",\n themeGet: getBorder\n});\nconst borderTop = style({\n prop: \"borderTop\",\n themeGet: getBorder\n});\nconst borderRight = style({\n prop: \"borderRight\",\n themeGet: getBorder\n});\nconst borderBottom = style({\n prop: \"borderBottom\",\n themeGet: getBorder\n});\nconst borderLeft = style({\n prop: \"borderLeft\",\n themeGet: getBorder\n});\nconst borderColor = style({\n prop: \"borderColor\",\n themeGet: getBorderColor\n});\nconst borderTopColor = style({\n prop: \"borderTopColor\",\n themeGet: getColor\n});\nconst borderRightColor = style({\n prop: \"borderRightColor\",\n themeGet: getColor\n});\nconst borderBottomColor = style({\n prop: \"borderBottomColor\",\n themeGet: getColor\n});\nconst borderLeftColor = style({\n prop: \"borderLeftColor\",\n themeGet: getColor\n});\nconst borderWidth = style({\n prop: \"borderWidth\",\n themeGet: getBorderWidth\n});\nconst borderTopWidth = style({\n prop: \"borderTopWidth\",\n themeGet: getBorderWidth\n});\nconst borderRightWidth = style({\n prop: \"borderRightWidth\",\n themeGet: getBorderWidth\n});\nconst borderBottomWidth = style({\n prop: \"borderBottomWidth\",\n themeGet: getBorderWidth\n});\nconst borderLeftWidth = style({\n prop: \"borderLeftWidth\",\n themeGet: getBorderWidth\n});\nconst borderStyle = style({\n prop: \"borderStyle\",\n themeGet: getBorderStyle,\n cssProps: [\"borderStyle\", \"borderTopStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderLeftStyle\"]\n});\nconst borderTopStyle = style({\n prop: \"borderTopStyle\",\n themeGet: getBorderStyle\n});\nconst borderRightStyle = style({\n prop: \"borderRightStyle\",\n themeGet: getBorderStyle\n});\nconst borderBottomStyle = style({\n prop: \"borderBottomStyle\",\n themeGet: getBorderStyle\n});\nconst borderLeftStyle = style({\n prop: \"borderLeftStyle\",\n themeGet: getBorderStyle\n});\nconst outline = style({\n prop: \"outline\",\n themeGet: getBorder\n});\nconst outlineColor = style({\n prop: \"outlineColor\",\n themeGet: getColor\n});\nconst outlineWidth = style({\n prop: \"outlineWidth\",\n themeGet: getBorderWidth\n});\nconst outlineStyle = style({\n prop: \"outlineStyle\",\n themeGet: getBorderStyle\n});\nconst outlineOffset = style({\n prop: \"outlineOffset\",\n themeGet: getBorderWidth\n});\nconst getRadius = themeGetter({\n name: \"radius\",\n key: \"radii\",\n compose: getPx,\n shorthand: true\n});\nconst borderRadius = style({\n prop: \"borderRadius\",\n themeGet: getRadius,\n cssProps: [\"borderRadius\", \"borderTopLeftRadius\", \"borderTopRightRadius\", \"borderBottomRightRadius\", \"borderBottomLeftRadius\"]\n});\nconst divideSelector = \"& > :not([hidden]) ~ :not([hidden])\";\nconst divideY = style({\n prop: \"divideY\",\n themeGet: getBorderWidth,\n css: value => {\n const v = value === true ? 1 : value;\n return {\n [divideSelector]: {\n \"--x-divide-y-reverse\": 0,\n borderTopWidth: \"calc(\".concat(v, \" * calc(1 - var(--x-divide-y-reverse)))\"),\n borderBottomWidth: \"calc(\".concat(v, \" * var(--x-divide-y-reverse))\")\n }\n };\n }\n});\nconst divideX = style({\n prop: \"divideX\",\n themeGet: getBorderWidth,\n css: value => {\n const v = value === true ? 1 : value;\n return {\n [divideSelector]: {\n \"--x-divide-x-reverse\": 0,\n borderRightWidth: \"calc(\".concat(v, \" * var(--x-divide-x-reverse))\"),\n borderLeftWidth: \"calc(\".concat(v, \" * calc(1 - var(--x-divide-x-reverse)))\")\n }\n };\n }\n});\nconst divideXReverse = style({\n prop: \"divideXReverse\",\n css: () => ({\n [divideSelector]: {\n \"--x-divide-x-reverse\": \"1\"\n }\n })\n});\nconst divideYReverse = style({\n prop: \"divideYReverse\",\n css: () => ({\n [divideSelector]: {\n \"--x-divide-y-reverse\": \"1\"\n }\n })\n});\nconst divideColor = style({\n prop: \"divideColor\",\n themeGet: getColor,\n css: value => ({\n [divideSelector]: {\n borderColor: value\n }\n })\n});\nconst divideStyle = style({\n prop: \"divideStyle\",\n themeGet: getBorderStyle,\n css: value => ({\n [divideSelector]: {\n borderStyle: value\n }\n })\n});\nconst getRingWidth = themeGetter({\n name: \"ringWidth\",\n key: \"ringWidths\",\n compose: getPx\n});\nconst ring = style({\n prop: \"ring\",\n themeGet: getRingWidth,\n css: value => ({\n \"--x-ring-shadow\": \"var(--x-ring-inset, /*!*/ /*!*/) 0 0 0 \".concat(value, \" var(--x-ring-color)\"),\n boxShadow: \"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow, 0 0 #0000)\"\n })\n});\nconst ringInset = style({\n prop: \"ringInset\",\n css: () => ({\n \"--x-ring-inset\": \"inset\"\n })\n});\nconst ringColor = style({\n prop: \"ringColor\",\n themeGet: getColor,\n css: value => ({\n \"--x-ring-color\": value\n })\n});\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderWidth, borderTopWidth, borderRightWidth, borderBottomWidth, borderLeftWidth, borderStyle, borderTopStyle, borderRightStyle, borderBottomStyle, borderLeftStyle, borderRadius, outline, outlineColor, outlineWidth, outlineStyle, outlineOffset, divideX, divideY, divideXReverse, divideYReverse, divideColor, divideStyle, ring, ringInset, ringColor);\nconst getShadow = themeGetter({\n name: \"shadow\",\n key: \"shadows\",\n multiple: true\n});\nconst opacity = style({\n prop: \"opacity\"\n});\nconst boxShadow = style({\n prop: \"boxShadow\",\n themeGet: getShadow,\n css: value => ({\n \"--x-shadow\": value,\n boxShadow: \"var(--x-ring-shadow, 0 0 #0000), var(--x-shadow)\"\n })\n});\nconst textShadow = style({\n prop: \"textShadow\",\n themeGet: getShadow\n});\nconst effects = compose(opacity, boxShadow, textShadow);\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$4 = (obj2, key, value) => key in obj2 ? __defProp$4(obj2, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj2[key] = value;\n\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$4.call(b, prop)) __defNormalProp$4(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$4) for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop)) __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\n\nconst row = style({\n prop: \"row\",\n css: () => ({\n boxSizing: \"border-box\",\n flexGrow: 1,\n flexWrap: \"wrap\",\n display: \"flex\"\n })\n});\n\nconst getColStyle = (props, size) => {\n if (!is(size)) return null;\n\n if (size === true) {\n return {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\"\n };\n }\n\n if (size === \"auto\") {\n return {\n flex: \"0 0 auto\",\n maxWidth: \"none\",\n width: \"auto\"\n };\n }\n\n const sizeWidth = getPercent(size)(props);\n return {\n flex: \"0 0 \".concat(sizeWidth),\n maxWidth: sizeWidth\n };\n};\n\nconst col = createStyleGenerator({\n getStyle: props => {\n const value = props.col;\n const common = {\n boxSizing: \"border-box\",\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\"\n };\n\n if (obj(value)) {\n const breakpointsStyle = reduceVariants(props, value, v => getColStyle(props, v));\n return __spreadValues$4(__spreadValues$4({}, common), breakpointsStyle);\n }\n\n return __spreadValues$4(__spreadValues$4({}, common), getColStyle(props, value));\n },\n props: [\"col\"]\n});\nconst flexboxGrids = compose(row, col);\nvar __defProp$3 = Object.defineProperty;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$3 = (obj2, key, value) => key in obj2 ? __defProp$3(obj2, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj2[key] = value;\n\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$3.call(b, prop)) __defNormalProp$3(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$3) for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop)) __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\n\nconst display = style({\n prop: \"display\"\n});\nconst float = style({\n prop: \"float\"\n});\nconst boxSizing = style({\n prop: \"boxSizing\"\n});\nconst container = createStyleGenerator({\n getStyle: props => {\n if (!props.container) return null;\n const breakpoints = getScreens(props);\n let styles = reduceVariants(props, breakpoints, v => v !== 0 ? {\n maxWidth: v\n } : {});\n\n if (obj(props.container)) {\n styles = reduceVariants(props, props.container, () => styles);\n }\n\n return __spreadValues$3({\n width: \"100%\"\n }, styles);\n },\n props: [\"container\"]\n});\nconst overflow = style({\n prop: \"overflow\"\n});\nconst overflowX = style({\n prop: \"overflowX\"\n});\nconst overflowY = style({\n prop: \"overflowY\"\n});\nconst getZIndex = themeGetter({\n name: \"zIndex\",\n key: \"zIndices\"\n});\nconst zIndex = style({\n prop: \"zIndex\",\n themeGet: getZIndex\n});\nconst position = style({\n prop: \"position\"\n});\nconst getInset = themeGetter({\n name: \"inset\",\n key: \"inset\",\n compose: getPx,\n transform: transformNegative\n});\nconst top = style({\n prop: \"top\",\n themeGet: getInset\n});\nconst right = style({\n prop: \"right\",\n themeGet: getInset\n});\nconst bottom = style({\n prop: \"bottom\",\n themeGet: getInset\n});\nconst left = style({\n prop: \"left\",\n themeGet: getInset\n});\nconst visibility = style({\n prop: \"visibility\"\n});\nconst overscrollBehavior = style({\n prop: \"overscrollBehavior\"\n});\nconst objectFit = style({\n prop: \"objectFit\"\n});\nconst layout = compose(boxSizing, display, float, container, overflow, overflowX, overflowY, position, zIndex, top, right, bottom, left, visibility, overscrollBehavior, objectFit);\nconst alignItems = style({\n prop: \"alignItems\"\n});\nconst alignContent = style({\n prop: \"alignContent\"\n});\nconst justifyContent = style({\n prop: \"justifyContent\"\n});\nconst justifyItems = style({\n prop: \"justifyItems\"\n});\nconst flexWrap = style({\n prop: \"flexWrap\"\n});\nconst flexGrow = style({\n prop: \"flexGrow\"\n});\nconst flexShrink = style({\n prop: \"flexShrink\"\n});\nconst flexBasis = style({\n prop: \"flexBasis\",\n themeGet: getPercent\n});\nconst flexDirection = style({\n prop: \"flexDirection\"\n});\nconst flex = style({\n prop: \"flex\"\n});\nconst justifySelf = style({\n prop: \"justifySelf\"\n});\nconst alignSelf = style({\n prop: \"alignSelf\"\n});\nconst order = style({\n prop: \"order\"\n});\nconst flexboxes = compose(display, alignItems, alignContent, justifyContent, justifyItems, flexWrap, flexBasis, flexShrink, flexGrow, flexDirection, flex, justifySelf, alignSelf, order);\nconst getSpace = themeGetter({\n name: \"space\",\n key: \"space\",\n compose: getPx,\n shorthand: true,\n transform: transformNegative\n});\nconst margin = style({\n prop: [\"margin\", \"m\"],\n themeGet: getSpace,\n css: \"margin\"\n});\nconst marginTop = style({\n prop: [\"marginTop\", \"mt\"],\n themeGet: getSpace,\n css: \"marginTop\"\n});\nconst marginRight = style({\n prop: [\"marginRight\", \"mr\"],\n themeGet: getSpace,\n css: \"marginRight\"\n});\nconst marginBottom = style({\n prop: [\"marginBottom\", \"mb\"],\n themeGet: getSpace,\n css: \"marginBottom\"\n});\nconst marginLeft = style({\n prop: [\"marginLeft\", \"ml\"],\n themeGet: getSpace,\n css: \"marginLeft\"\n});\nconst mx = style({\n prop: \"mx\",\n themeGet: getSpace,\n css: [\"marginRight\", \"marginLeft\"]\n});\nconst my = style({\n prop: \"my\",\n themeGet: getSpace,\n css: [\"marginTop\", \"marginBottom\"]\n});\nconst padding = style({\n prop: [\"padding\", \"p\"],\n themeGet: getSpace,\n css: \"padding\"\n});\nconst paddingTop = style({\n prop: [\"paddingTop\", \"pt\"],\n themeGet: getSpace,\n css: \"paddingTop\"\n});\nconst paddingRight = style({\n prop: [\"paddingRight\", \"pr\"],\n themeGet: getSpace,\n css: \"paddingRight\"\n});\nconst paddingBottom = style({\n prop: [\"paddingBottom\", \"pb\"],\n themeGet: getSpace,\n css: \"paddingBottom\"\n});\nconst paddingLeft = style({\n prop: [\"paddingLeft\", \"pl\"],\n themeGet: getSpace,\n css: \"paddingLeft\"\n});\nconst px = style({\n prop: \"px\",\n themeGet: getSpace,\n css: [\"paddingRight\", \"paddingLeft\"]\n});\nconst py = style({\n prop: \"py\",\n themeGet: getSpace,\n css: [\"paddingTop\", \"paddingBottom\"]\n});\nconst spaceY = style({\n prop: \"spaceY\",\n themeGet: getSpace,\n css: value => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-y-reverse\": 0,\n marginTop: \"calc(\".concat(value, \" * calc(1 - var(--x-space-y-reverse)))\"),\n marginBottom: \"calc(\".concat(value, \" * var(--x-space-y-reverse))\")\n }\n })\n});\nconst spaceX = style({\n prop: \"spaceX\",\n themeGet: getSpace,\n css: value => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-x-reverse\": 0,\n marginRight: \"calc(\".concat(value, \" * var(--x-space-x-reverse))\"),\n marginLeft: \"calc(\".concat(value, \" * calc(1 - var(--x-space-x-reverse)))\")\n }\n })\n});\nconst spaceXReverse = style({\n prop: \"spaceXReverse\",\n css: () => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-x-reverse\": \"1\"\n }\n })\n});\nconst spaceYReverse = style({\n prop: \"spaceYReverse\",\n css: () => ({\n \"& > :not([hidden]) ~ :not([hidden])\": {\n \"--x-space-y-reverse\": \"1\"\n }\n })\n});\nconst space$1 = compose(margin, marginTop, marginRight, marginBottom, marginLeft, mx, my, padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py, spaceX, spaceY, spaceXReverse, spaceYReverse);\nconst gap = style({\n prop: \"gap\",\n themeGet: getSpace\n});\nconst columnGap = style({\n prop: \"columnGap\",\n themeGet: getSpace\n});\nconst rowGap = style({\n prop: \"rowGap\",\n themeGet: getSpace\n});\nconst gridColumn = style({\n prop: \"gridColumn\"\n});\nconst gridRow = style({\n prop: \"gridRow\"\n});\nconst gridAutoFlow = style({\n prop: \"gridAutoFlow\"\n});\nconst gridAutoColumns = style({\n prop: \"gridAutoColumns\"\n});\nconst gridAutoRows = style({\n prop: \"gridAutoRows\"\n});\nconst gridTemplateColumns = style({\n prop: \"gridTemplateColumns\",\n key: \"gridTemplateColumns\"\n});\nconst gridTemplateRows = style({\n prop: \"gridTemplateRows\",\n key: \"gridTemplateRows\"\n});\nconst gridTemplateAreas = style({\n prop: \"gridTemplateAreas\"\n});\nconst gridArea = style({\n prop: \"gridArea\"\n});\nconst grids = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nconst appearance = style({\n prop: \"appearance\"\n});\nconst cursor = style({\n prop: \"cursor\"\n});\nconst pointerEvents = style({\n prop: \"pointerEvents\"\n});\nconst resize = style({\n prop: \"resize\"\n});\nconst userSelect = style({\n prop: \"userSelect\"\n});\nconst interactivity = compose(appearance, cursor, pointerEvents, resize, userSelect);\nconst getSize = themeGetter({\n name: \"size\",\n key: \"sizes\",\n compose: getPercent\n});\nconst width = style({\n prop: \"w\",\n themeGet: getSize,\n css: \"width\"\n});\nconst height = style({\n prop: \"h\",\n themeGet: getSize,\n css: \"height\"\n});\nconst maxWidth = style({\n prop: [\"maxWidth\", \"maxW\"],\n themeGet: getSize,\n css: \"maxWidth\"\n});\nconst maxHeight = style({\n prop: [\"maxHeight\", \"maxH\"],\n themeGet: getSize,\n css: \"maxHeight\"\n});\nconst minWidth = style({\n prop: [\"minWidth\", \"minW\"],\n themeGet: getSize,\n css: \"minWidth\"\n});\nconst minHeight = style({\n prop: [\"minHeight\", \"minH\"],\n themeGet: getSize,\n css: \"minHeight\"\n});\nconst maskSize = style({\n prop: \"maskSize\",\n themeGet: themeGetter({\n name: \"size\",\n key: \"sizes\",\n compose: getPercent,\n multiple: true,\n shorthand: true\n })\n});\nconst sizing = compose(width, height, maxWidth, maxHeight, minWidth, minHeight, maskSize);\nconst fill = style({\n prop: \"fill\",\n themeGet: getColor\n});\nconst stroke = style({\n prop: \"stroke\",\n themeGet: getColor\n});\nconst svg = compose(fill, stroke);\nconst borderCollapse = style({\n prop: \"borderCollapse\"\n});\nconst tableLayout = style({\n prop: \"tableLayout\"\n});\nconst tables = compose(borderCollapse, tableLayout);\nconst getTransform = themeGetter({\n name: \"transform\",\n key: \"transforms\"\n});\nconst transform = style({\n prop: \"transform\",\n themeGet: getTransform,\n css: value => {\n if (value === true) {\n return {\n \"--x-translate-x\": 0,\n \"--x-translate-y\": 0,\n \"--x-rotate\": 0,\n \"--x-skew-x\": 0,\n \"--x-skew-y\": 0,\n \"--x-scale-x\": \"1\",\n \"--x-scale-y\": \"1\",\n transform: \"translate3d(var(--x-translate-x), var(--x-translate-y), 0) rotate(var(--x-rotate)) skewX(var(--x-skew-x)) skewY(var(--x-skew-y)) scaleX(var(--x-scale-x)) scaleY(var(--x-scale-y))\"\n };\n }\n\n return {\n transform: value\n };\n }\n});\nconst transformOrigin = style({\n prop: \"transformOrigin\"\n});\nconst translateX = style({\n prop: \"translateX\",\n themeGet: getSpace,\n css: \"--x-translate-x\"\n});\nconst translateY = style({\n prop: \"translateY\",\n themeGet: getSpace,\n css: \"--x-translate-y\"\n});\nconst rotate = style({\n prop: \"rotate\",\n themeGet: getAngle,\n css: \"--x-rotate\"\n});\nconst skewX = style({\n prop: \"skewX\",\n themeGet: getAngle,\n css: \"--x-skew-x\"\n});\nconst skewY = style({\n prop: \"skewY\",\n themeGet: getAngle,\n css: \"--x-skew-y\"\n});\nconst scale = style({\n prop: \"scale\",\n transform: v => String(v),\n css: [\"--x-scale-x\", \"--x-scale-y\"]\n});\nconst scaleX = style({\n prop: \"scaleX\",\n transform: v => String(v),\n css: \"--x-scale-x\"\n});\nconst scaleY = style({\n prop: \"scaleY\",\n transform: v => String(v),\n css: \"--x-scale-y\"\n});\nconst transforms = compose(transform, transformOrigin, translateX, translateY, rotate, skewX, skewY, scale, scaleX, scaleY);\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$2.call(b, prop)) __defNormalProp$2(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$2) for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop)) __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\n\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\n\nconst getFont = themeGetter({\n name: \"font\",\n key: \"fonts\"\n});\nconst getLineHeight = themeGetter({\n name: \"lineHeight\",\n key: \"lineHeights\",\n transform: (value, _ref7) => {\n let {\n props\n } = _ref7;\n\n var _a, _b, _c;\n\n const rootFontSize = (_c = (_b = (_a = props == null ? void 0 : props.theme) == null ? void 0 : _a.settings) == null ? void 0 : _b.rootFontSize) != null ? _c : void 0;\n return rpx(value, {\n rootFontSize\n });\n }\n});\nconst getFontWeight = themeGetter({\n name: \"fontWeight\",\n key: \"fontWeights\"\n});\nconst getLetterSpacing = themeGetter({\n name: \"letterSpacing\",\n key: \"letterSpacings\",\n compose: getPx\n});\nconst getFontSize = themeGetter({\n name: \"fontSize\",\n key: \"fontSizes\",\n compose: getPx\n});\nconst fontFamily = style({\n prop: \"fontFamily\",\n themeGet: getFont\n});\nconst fontSize = style({\n prop: \"fontSize\",\n themeGet: getFontSize\n});\nconst lineHeight = style({\n prop: \"lineHeight\",\n themeGet: getLineHeight\n});\nconst fontWeight = style({\n prop: \"fontWeight\",\n themeGet: getFontWeight\n});\nconst fontStyle = style({\n prop: \"fontStyle\"\n});\nconst letterSpacing = style({\n prop: \"letterSpacing\",\n themeGet: getLetterSpacing\n});\nconst color = style({\n prop: \"color\",\n themeGet: getColor\n});\nconst textTransform = style({\n prop: \"textTransform\"\n});\nconst textDecoration = style({\n prop: \"textDecoration\"\n});\nconst textAlign = style({\n prop: \"textAlign\"\n});\nconst verticalAlign = style({\n prop: \"verticalAlign\"\n});\nconst whiteSpace = style({\n prop: \"whiteSpace\"\n});\nconst textOverflow = style({\n prop: \"textOverflow\"\n});\nconst listStyleType = style({\n prop: \"listStyleType\"\n});\nconst listStylePosition = style({\n prop: \"listStylePosition\"\n});\nconst all = compose(space$1, fontFamily, fontSize, fontStyle, lineHeight, fontWeight, textAlign, letterSpacing, color, textTransform, textDecoration, verticalAlign, whiteSpace, textOverflow, listStyleType, listStylePosition);\nconst text = style({\n prop: \"text\",\n key: \"texts\",\n css: value => _ref8 => {\n let {\n theme\n } = _ref8;\n return all(__spreadProps$1(__spreadValues$2({}, value), {\n theme\n }));\n }\n});\nconst typography = compose(all, text);\nconst system = compose(animations, backgrounds, borders, effects, flexboxGrids, flexboxes, grids, interactivity, layout, sizing, space$1, svg, tables, transforms, transitions$1, typography);\n\nconst th = (path, defaultValue) => props => {\n const value = getThemeValue(props, path);\n if (is(value)) return value;\n if (is(defaultValue)) return defaultValue;\n return path;\n};\n\n[getAngle, getAnimation, getBorder, getBorderColor, getBorderStyle, getBorderWidth, getColor, getDuration, getFont, getFontSize, getFontWeight, getInset, getLetterSpacing, getLineHeight, getPercent, getPx, getRadius, getRingWidth, getShadow, getSize, getSpace, getTimingFunction, getTransform, getTransition, getTransitionProperty, getZIndex].forEach(themeGetter => {\n th[themeGetter.meta.name] = themeGetter;\n});\n\nconst up = (key, rules) => props => {\n const screens = getScreens(props);\n const value = getBreakpointMin(screens, key);\n if (value === null) return rules;\n return [\"\".concat(mediaMinWidth(value), \" {\"), rules, \"}\"];\n};\n\nconst down = (key, rules) => props => {\n const screens = getScreens(props);\n const value = getBreakpointMax(screens, key);\n if (value === null) return null;\n return [\"\".concat(mediaMaxWidth(value), \" {\"), rules, \"}\"];\n};\n\nconst between = (lower, upper, rules) => props => {\n const screens = getScreens(props);\n const min = getBreakpointMin(screens, lower);\n const max = getBreakpointMax(screens, upper);\n if (max === null) return up(lower, rules)(props);\n if (min === null) return down(upper, rules)(props);\n return [\"\".concat(mediaBetweenWidth(min, max), \" {\"), rules, \"}\"];\n};\n\nconst breakpoints = values => props => {\n const allRules = [];\n const keys = Object.keys(values);\n const keysLength = keys.length;\n\n for (let i = 0; i < keysLength; i++) {\n const key = keys[i];\n const rules = values[key];\n const result = up(key, rules)(props);\n\n if (Array.isArray(result)) {\n result.forEach(v => allRules.push(v));\n } else {\n allRules.push(result);\n }\n }\n\n return allRules;\n};\n\nconst rpxTransformers = {\n px: value => remPx(rpx(value)),\n border: value => num(value) && value > 0 ? \"\".concat(remPx(value), \" solid\") : value\n};\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp$1.call(b, prop)) __defNormalProp$1(a, prop, b[prop]);\n\n if (__getOwnPropSymbols$1) for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop)) __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\n\nconst defaultAlphaVariants = [0, 5, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90, 95, 100];\n\nconst generateHexAlphaVariants = function (colors) {\n let variants = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultAlphaVariants;\n\n const transform = (value, variant) => \"\".concat(value).concat(Math.round(variant / 100 * 255).toString(16));\n\n const alphaColors = Object.keys(colors).reduce((obj, key) => {\n variants.forEach(variant => {\n const value = colors[key];\n const variantKey = \"\".concat(key, \"-a\").concat(variant);\n obj[variantKey] = string(value) ? transform(value, variant) : generateHexAlphaVariants(value, variants);\n });\n return obj;\n }, {});\n return __spreadValues$1(__spreadValues$1({}, colors), alphaColors);\n};\n\nconst defaultTones = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];\n\nconst aliasColor = function (alias, color) {\n let tones = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultTones;\n let variants = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultAlphaVariants;\n return tones.reduce((obj, tone) => {\n obj[\"\".concat(alias, \"-\").concat(tone)] = th.color(\"\".concat(color, \"-\").concat(tone));\n variants.forEach(i => {\n obj[\"\".concat(alias, \"-\").concat(tone, \"-a\").concat(i)] = th.color(\"\".concat(color, \"-\").concat(tone, \"-a\").concat(i));\n });\n return obj;\n }, {});\n};\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\n\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value\n}) : obj[key] = value;\n\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);\n\n if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\nconst space = {\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\"\n};\nconst timingFunctions = {\n \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n};\nconst transitionProperties = {\n default: [\"background-color\", \"border-color\", \"color\", \"fill\", \"stroke\", \"opacity\", \"box-shadow\", \"transform\"],\n colors: [\"background-color\", \"border-color\", \"color\", \"fill\", \"stroke\"],\n opacity: [\"opacity\"],\n shadow: [\"box-shadow\"],\n transform: [\"transform\"]\n};\nconst transitions = Object.keys(transitionProperties).reduce((obj, key) => {\n obj[key] = transitionProperties[key].map(property => \"\".concat(property, \" \").concat(timingFunctions[\"ease-in-out\"], \" 150ms\")).join(\",\");\n return obj;\n}, {});\nconst colors = {\n black: \"#000000\",\n white: \"#ffffff\",\n \"blue-gray-50\": \"#f8fafc\",\n \"blue-gray-100\": \"#f1f5f9\",\n \"blue-gray-200\": \"#e2e8f0\",\n \"blue-gray-300\": \"#cbd5e1\",\n \"blue-gray-400\": \"#94a3b8\",\n \"blue-gray-500\": \"#64748b\",\n \"blue-gray-600\": \"#475569\",\n \"blue-gray-700\": \"#334155\",\n \"blue-gray-800\": \"#1e293b\",\n \"blue-gray-900\": \"#0f172a\",\n \"cool-gray-50\": \"#f9fafb\",\n \"cool-gray-100\": \"#f3f4f6\",\n \"cool-gray-200\": \"#e5e7eb\",\n \"cool-gray-300\": \"#d1d5db\",\n \"cool-gray-400\": \"#9ca3af\",\n \"cool-gray-500\": \"#6b7280\",\n \"cool-gray-600\": \"#4b5563\",\n \"cool-gray-700\": \"#374151\",\n \"cool-gray-800\": \"#1f2937\",\n \"cool-gray-900\": \"#111827\",\n \"gray-50\": \"#fafafa\",\n \"gray-100\": \"#f4f4f5\",\n \"gray-200\": \"#e4e4e7\",\n \"gray-300\": \"#d4d4d8\",\n \"gray-400\": \"#a1a1aa\",\n \"gray-500\": \"#71717a\",\n \"gray-600\": \"#52525b\",\n \"gray-700\": \"#3f3f46\",\n \"gray-800\": \"#27272a\",\n \"gray-900\": \"#18181b\",\n \"true-gray-50\": \"#fafafa\",\n \"true-gray-100\": \"#f5f5f5\",\n \"true-gray-200\": \"#e5e5e5\",\n \"true-gray-300\": \"#d4d4d4\",\n \"true-gray-400\": \"#a3a3a3\",\n \"true-gray-500\": \"#737373\",\n \"true-gray-600\": \"#525252\",\n \"true-gray-700\": \"#404040\",\n \"true-gray-800\": \"#262626\",\n \"true-gray-900\": \"#171717\",\n \"warm-gray-50\": \"#fafaf9\",\n \"warm-gray-100\": \"#f5f5f4\",\n \"warm-gray-200\": \"#e7e5e4\",\n \"warm-gray-300\": \"#d6d3d1\",\n \"warm-gray-400\": \"#a8a29e\",\n \"warm-gray-500\": \"#78716c\",\n \"warm-gray-600\": \"#57534e\",\n \"warm-gray-700\": \"#44403c\",\n \"warm-gray-800\": \"#292524\",\n \"warm-gray-900\": \"#1c1917\",\n \"red-50\": \"#fef2f2\",\n \"red-100\": \"#fee2e2\",\n \"red-200\": \"#fecaca\",\n \"red-300\": \"#fca5a5\",\n \"red-400\": \"#f87171\",\n \"red-500\": \"#ef4444\",\n \"red-600\": \"#dc2626\",\n \"red-700\": \"#b91c1c\",\n \"red-800\": \"#991b1b\",\n \"red-900\": \"#7f1d1d\",\n \"orange-50\": \"#fff7ed\",\n \"orange-100\": \"#ffedd5\",\n \"orange-200\": \"#fed7aa\",\n \"orange-300\": \"#fdba74\",\n \"orange-400\": \"#fb923c\",\n \"orange-500\": \"#f97316\",\n \"orange-600\": \"#ea580c\",\n \"orange-700\": \"#c2410c\",\n \"orange-800\": \"#9a3412\",\n \"orange-900\": \"#7c2d12\",\n \"amber-50\": \"#fffbeb\",\n \"amber-100\": \"#fef3c7\",\n \"amber-200\": \"#fde68a\",\n \"amber-300\": \"#fcd34d\",\n \"amber-400\": \"#fbbf24\",\n \"amber-500\": \"#f59e0b\",\n \"amber-600\": \"#d97706\",\n \"amber-700\": \"#b45309\",\n \"amber-800\": \"#92400e\",\n \"amber-900\": \"#78350f\",\n \"yellow-50\": \"#fefce8\",\n \"yellow-100\": \"#fef9c3\",\n \"yellow-200\": \"#fef08a\",\n \"yellow-300\": \"#fde047\",\n \"yellow-400\": \"#facc15\",\n \"yellow-500\": \"#eab308\",\n \"yellow-600\": \"#ca8a04\",\n \"yellow-700\": \"#a16207\",\n \"yellow-800\": \"#854d0e\",\n \"yellow-900\": \"#713f12\",\n \"lime-50\": \"#f7fee7\",\n \"lime-100\": \"#ecfccb\",\n \"lime-200\": \"#d9f99d\",\n \"lime-300\": \"#bef264\",\n \"lime-400\": \"#a3e635\",\n \"lime-500\": \"#84cc16\",\n \"lime-600\": \"#65a30d\",\n \"lime-700\": \"#4d7c0f\",\n \"lime-800\": \"#3f6212\",\n \"lime-900\": \"#365314\",\n \"green-50\": \"#f0fdf4\",\n \"green-100\": \"#dcfce7\",\n \"green-200\": \"#bbf7d0\",\n \"green-300\": \"#86efac\",\n \"green-400\": \"#4ade80\",\n \"green-500\": \"#22c55e\",\n \"green-600\": \"#16a34a\",\n \"green-700\": \"#15803d\",\n \"green-800\": \"#166534\",\n \"green-900\": \"#14532d\",\n \"emerald-50\": \"#ecfdf5\",\n \"emerald-100\": \"#d1fae5\",\n \"emerald-200\": \"#a7f3d0\",\n \"emerald-300\": \"#6ee7b7\",\n \"emerald-400\": \"#34d399\",\n \"emerald-500\": \"#10b981\",\n \"emerald-600\": \"#059669\",\n \"emerald-700\": \"#047857\",\n \"emerald-800\": \"#065f46\",\n \"emerald-900\": \"#064e3b\",\n \"teal-50\": \"#f0fdfa\",\n \"teal-100\": \"#ccfbf1\",\n \"teal-200\": \"#99f6e4\",\n \"teal-300\": \"#5eead4\",\n \"teal-400\": \"#2dd4bf\",\n \"teal-500\": \"#14b8a6\",\n \"teal-600\": \"#0d9488\",\n \"teal-700\": \"#0f766e\",\n \"teal-800\": \"#115e59\",\n \"teal-900\": \"#134e4a\",\n \"cyan-50\": \"#ecfeff\",\n \"cyan-100\": \"#cffafe\",\n \"cyan-200\": \"#a5f3fc\",\n \"cyan-300\": \"#67e8f9\",\n \"cyan-400\": \"#22d3ee\",\n \"cyan-500\": \"#06b6d4\",\n \"cyan-600\": \"#0891b2\",\n \"cyan-700\": \"#0e7490\",\n \"cyan-800\": \"#155e75\",\n \"cyan-900\": \"#164e63\",\n \"light-blue-50\": \"#f0f9ff\",\n \"light-blue-100\": \"#e0f2fe\",\n \"light-blue-200\": \"#bae6fd\",\n \"light-blue-300\": \"#7dd3fc\",\n \"light-blue-400\": \"#38bdf8\",\n \"light-blue-500\": \"#0ea5e9\",\n \"light-blue-600\": \"#0284c7\",\n \"light-blue-700\": \"#0369a1\",\n \"light-blue-800\": \"#075985\",\n \"light-blue-900\": \"#0c4a6e\",\n \"blue-50\": \"#eff6ff\",\n \"blue-100\": \"#dbeafe\",\n \"blue-200\": \"#bfdbfe\",\n \"blue-300\": \"#93c5fd\",\n \"blue-400\": \"#60a5fa\",\n \"blue-500\": \"#3b82f6\",\n \"blue-600\": \"#2563eb\",\n \"blue-700\": \"#1d4ed8\",\n \"blue-800\": \"#1e40af\",\n \"blue-900\": \"#1e3a8a\",\n \"indigo-50\": \"#eef2ff\",\n \"indigo-100\": \"#e0e7ff\",\n \"indigo-200\": \"#c7d2fe\",\n \"indigo-300\": \"#a5b4fc\",\n \"indigo-400\": \"#818cf8\",\n \"indigo-500\": \"#6366f1\",\n \"indigo-600\": \"#4f46e5\",\n \"indigo-700\": \"#4338ca\",\n \"indigo-800\": \"#3730a3\",\n \"indigo-900\": \"#312e81\",\n \"violet-50\": \"#f5f3ff\",\n \"violet-100\": \"#ede9fe\",\n \"violet-200\": \"#ddd6fe\",\n \"violet-300\": \"#c4b5fd\",\n \"violet-400\": \"#a78bfa\",\n \"violet-500\": \"#8b5cf6\",\n \"violet-600\": \"#7c3aed\",\n \"violet-700\": \"#6d28d9\",\n \"violet-800\": \"#5b21b6\",\n \"violet-900\": \"#4c1d95\",\n \"purple-50\": \"#faf5ff\",\n \"purple-100\": \"#f3e8ff\",\n \"purple-200\": \"#e9d5ff\",\n \"purple-300\": \"#d8b4fe\",\n \"purple-400\": \"#c084fc\",\n \"purple-500\": \"#a855f7\",\n \"purple-600\": \"#9333ea\",\n \"purple-700\": \"#7e22ce\",\n \"purple-800\": \"#6b21a8\",\n \"purple-900\": \"#581c87\",\n \"fuchsia-50\": \"#fdf4ff\",\n \"fuchsia-100\": \"#fae8ff\",\n \"fuchsia-200\": \"#f5d0fe\",\n \"fuchsia-300\": \"#f0abfc\",\n \"fuchsia-400\": \"#e879f9\",\n \"fuchsia-500\": \"#d946ef\",\n \"fuchsia-600\": \"#c026d3\",\n \"fuchsia-700\": \"#a21caf\",\n \"fuchsia-800\": \"#86198f\",\n \"fuchsia-900\": \"#701a75\",\n \"pink-50\": \"#fdf2f8\",\n \"pink-100\": \"#fce7f3\",\n \"pink-200\": \"#fbcfe8\",\n \"pink-300\": \"#f9a8d4\",\n \"pink-400\": \"#f472b6\",\n \"pink-500\": \"#ec4899\",\n \"pink-600\": \"#db2777\",\n \"pink-700\": \"#be185d\",\n \"pink-800\": \"#9d174d\",\n \"pink-900\": \"#831843\",\n \"rose-50\": \"#fff1f2\",\n \"rose-100\": \"#ffe4e6\",\n \"rose-200\": \"#fecdd3\",\n \"rose-300\": \"#fda4af\",\n \"rose-400\": \"#fb7185\",\n \"rose-500\": \"#f43f5e\",\n \"rose-600\": \"#e11d48\",\n \"rose-700\": \"#be123c\",\n \"rose-800\": \"#9f1239\",\n \"rose-900\": \"#881337\"\n};\nconst fontSizes = {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n default: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\"\n};\nconst texts = Object.keys(fontSizes).reduce((texts2, key) => {\n texts2[key] = {\n fontSize: key,\n lineHeight: key\n };\n return texts2;\n}, {});\nconst defaultTheme = {\n colors: generateHexAlphaVariants(colors),\n space,\n screens: {\n _: 0,\n xs: 0,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n \"2xl\": 1536\n },\n durations: {\n instant: \"100ms\",\n \"fast-in\": \"250ms\",\n \"fast-out\": \"200ms\",\n \"slow-in\": \"300ms\",\n \"slow-out\": \"250ms\"\n },\n sizes: __spreadProps(__spreadValues({}, space), {\n 0.5: void 0,\n 1: void 0,\n \"0.5s\": space[0.5],\n \"1s\": space[1],\n full: \"100%\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\"\n }),\n radii: {\n none: \"0\",\n sm: \"0.125rem\",\n default: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\"\n },\n shadows: {\n xs: \"0 0 0 1px rgba(0, 0, 0, 0.05)\",\n sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n default: \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n inner: \"inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)\",\n outline: \"0 0 0 3px rgba(66, 153, 225, 0.5)\"\n },\n fontSizes,\n fontWeights: {\n hairline: \"100\",\n thin: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\"\n },\n fonts: {\n mono: \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace\",\n serif: \"ui-serif, Georgia, Cambria, \\\"Times New Roman\\\", Times, serif\",\n sans: \"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\"\"\n },\n letterSpacings: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\"\n },\n lineHeights: {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n 3: \".75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n xs: \"1rem\",\n sm: \"1.25rem\",\n default: \"1.5rem\",\n lg: \"1.75rem\",\n xl: \"1.75rem\",\n \"2xl\": \"2rem\",\n \"3xl\": \"2.25rem\",\n \"4xl\": \"2.5rem\",\n \"5xl\": 1,\n \"6xl\": 1,\n \"7xl\": 1,\n \"8xl\": 1,\n \"9xl\": 1\n },\n gridTemplateColumns: {\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\"\n },\n gridTemplateRows: {\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\"\n },\n borderWidths: {\n default: 1\n },\n ringWidths: {\n default: 3\n },\n borders: {\n default: \"1px solid transparent\"\n },\n texts,\n transitions,\n transitionProperties,\n timingFunctions,\n animations: {\n spin: \"x-spin 1s linear infinite\",\n ping: \"x-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\",\n pulse: \"x-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\n bounce: \"x-bounce 1s infinite\"\n },\n states: {\n _: null,\n motionSafe: \"@media (prefers-reduced-motion: no-preference)\",\n motionReduce: \"@media (prefers-reduced-motion: reduce)\",\n first: \"&:first-child\",\n last: \"&:last-child\",\n odd: \"&:odd\",\n even: \"&:even\",\n visited: \"&:visited\",\n checked: \"&:checked\",\n focusWithin: \"&:focus-within\",\n hover: \"&:hover\",\n focus: \"&:focus\",\n focusVisible: \"&:focus-visible\",\n active: \"&:active\",\n disabled: \"&:disabled, &[aria-disabled=true]\",\n placeholder: \"&::placeholder\"\n }\n};\n\nconst getPreflightStyles = theme => \"\\n/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\\n*,::after,::before{box-sizing:border-box}:root{-moz-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}\\n\\n/* Role button pointer */\\n[role=button], button {\\n cursor: pointer;\\n}\\n\\n/* Remove default margins */\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\n/* Remove headings styles */\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/* Unstyle lists */\\nol,\\nul {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/* Image are block-level */\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block;\\n vertical-align: middle;\\n}\\n\\n/* Reset border styles */\\n*,\\n::before,\\n::after {\\n border-width: 0;\\n border-style: solid;\\n border-color: \".concat(th.color(\"default-border-color\", \"currentColor\")({\n theme\n}), \";\\n}\\n\\n* {\\n --x-ring-color: \").concat(th.color(\"default-ring-color\", \"rgba(59,130,246,0.5)\")({\n theme\n}), \";\\n}\\n\\n/* Default outline on buttons */\\nbutton:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n}\\n\\n// Animations\\n@keyframes x-spin {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes x-ping {\\n 0% {\\n transform: scale(1);\\n opacity: 1;\\n }\\n 75%, 100% {\\n transform: scale(2);\\n opacity: 0;\\n }\\n}\\n\\n@keyframes x-pulse {\\n 0%, 100% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: .5;\\n }\\n}\\n\\n@keyframes x-bounce {\\n 0%, 100% {\\n transform: translateY(-25%);\\n animationTimingFunction: cubic-bezier(0.8, 0, 1, 1);\\n }\\n 50% {\\n transform: translateY(0);\\n animationTimingFunction: cubic-bezier(0, 0, 0.2, 1);\\n }\\n}\\n\");\n\nexport { aliasColor, alignContent, alignItems, alignSelf, animation, animationDuration, animationTimingFunction, animations, appearance, background, backgroundAttachment, backgroundClip, backgroundColor, backgroundImage, backgroundPosition, backgroundRepeat, backgroundSize, backgrounds, between, border, borderBottom, borderBottomColor, borderBottomStyle, borderBottomWidth, borderCollapse, borderColor, borderLeft, borderLeftColor, borderLeftStyle, borderLeftWidth, borderRadius, borderRight, borderRightColor, borderRightStyle, borderRightWidth, borderStyle, borderTop, borderTopColor, borderTopStyle, borderTopWidth, borderWidth, borders, bottom, boxShadow, boxSizing, breakpoints, col, color, columnGap, compose, container, createStyleGenerator, cursor, defaultTheme, display, divideColor, divideStyle, divideX, divideXReverse, divideY, divideYReverse, down, effects, fill, flex, flexBasis, flexDirection, flexGrow, flexShrink, flexWrap, flexboxGrids, flexboxes, float, fontFamily, fontSize, fontStyle, fontWeight, gap, generateHexAlphaVariants, getAngle, getAnimation, getBorder, getBorderColor, getBorderStyle, getBorderWidth, getBreakpointMax, getBreakpointMin, getColor, getDuration, getFont, getFontSize, getFontWeight, getInset, getLetterSpacing, getLineHeight, getPercent, getPreflightStyles, getPx, getRadius, getRingWidth, getScreens, getShadow, getSize, getSpace, getStates, getTimingFunction, getTransform, getTransition, getTransitionProperty, getVariants, getZIndex, gradientFrom, gradientTo, gradientVia, gridArea, gridAutoColumns, gridAutoFlow, gridAutoRows, gridColumn, gridRow, gridTemplateAreas, gridTemplateColumns, gridTemplateRows, grids, height, interactivity, justifyContent, justifyItems, justifySelf, layout, left, letterSpacing, lineHeight, listStylePosition, listStyleType, margin, marginBottom, marginLeft, marginRight, marginTop, maskSize, maxHeight, maxWidth, minHeight, minWidth, mx, my, objectFit, opacity, order, outline, outlineColor, outlineOffset, outlineStyle, outlineWidth, overflow, overflowX, overflowY, overscrollBehavior, padding, paddingBottom, paddingLeft, paddingRight, paddingTop, pointerEvents, position, px, py, resize, right, ring, ringColor, ringInset, rotate, row, rowGap, rpxTransformers, scale, scaleX, scaleY, sizing, skewX, skewY, space$1 as space, spaceX, spaceXReverse, spaceY, spaceYReverse, stroke, style, svg, system, tableLayout, tables, text, textAlign, textDecoration, textOverflow, textShadow, textTransform, th, themeGetter, top, transform, transformOrigin, transforms, transition, transitionDelay, transitionDuration, transitionProperty, transitionTimingFunction, transitions$1 as transitions, translateX, translateY, typography, up, userSelect, verticalAlign, visibility, whiteSpace, width, zIndex };","const DEV = process.env.NODE_ENV !== \"production\";\nconst specialProperties = [\"__proto__\", \"constructor\", \"prototype\"];\n\nconst identity = x => x;\n\nconst is = n => n !== void 0 && n !== null;\n\nconst num = n => typeof n === \"number\" && !Number.isNaN(n);\n\nconst string = n => typeof n === \"string\" && n !== \"\";\n\nconst obj = n => typeof n === \"object\" && n !== null;\n\nconst func = n => typeof n === \"function\";\n\nconst negative = n => num(n) && n < 0;\n\nconst get = (from, path) => {\n const paths = String(path).split(\".\");\n const pathsLength = paths.length;\n let result = from;\n\n for (let i = 0; i < pathsLength; i += 1) {\n if (!is(result)) return result;\n const path2 = paths[i];\n result = is(result[path2]) ? result[path2] : void 0;\n }\n\n return result;\n};\n\nconst assign = (target, source) => {\n if (!is(source)) return target;\n\n for (const key in source) {\n if (specialProperties.indexOf(key) !== -1) {\n continue;\n }\n\n target[key] = source[key];\n }\n\n return target;\n};\n\nconst merge = (target, source) => {\n if (!is(source)) return target;\n\n for (const key in source) {\n if (specialProperties.indexOf(key) !== -1) {\n continue;\n }\n\n if (obj(target[key])) {\n target[key] = merge(assign({}, target[key]), source[key]);\n } else {\n target[key] = source[key];\n }\n }\n\n return target;\n};\n\nconst warn = (condition, message) => {\n if (DEV) {\n if (!condition && console.error) {\n console.error(message);\n }\n }\n};\n\nfunction cascade(value, arg) {\n if (typeof value === \"function\") {\n return cascade(value(arg), arg);\n }\n\n return value;\n}\n\nconst getThemeValue = function (props, path) {\n let initial = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : props.theme;\n return cascade(get(initial, path), props);\n};\n\nfunction omit(object, values) {\n const result = {};\n\n for (const key in object) {\n if (values.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n\n return result;\n}\n\nfunction flattenStrings(array) {\n return array.reduce((flattenedArray, value) => {\n const lastIndex = flattenedArray.length - 1;\n const last = flattenedArray[lastIndex];\n\n if (typeof last === \"string\" && typeof value === \"string\") {\n flattenedArray[lastIndex] = last + value;\n } else {\n flattenedArray.push(value);\n }\n\n return flattenedArray;\n }, []);\n}\n\nfunction flattenDown(array, result) {\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else {\n result.push(value);\n }\n }\n\n return result;\n}\n\nfunction flatten(array) {\n return flattenDown(array, []);\n}\n\nexport { assign, cascade, flatten, flattenStrings, func, get, getThemeValue, identity, is, merge, negative, num, obj, omit, string, warn };","/**\n * It's `true` if it is running in a browser environment or `false` if it is not\n * (SSR).\n * @example\n * const title = canUseDOM ? document.title : \"\";\n */\nconst canUseDOM = checkIsBrowser(); // Check if we can use the DOM. Useful for SSR purposes\n\nfunction checkIsBrowser() {\n var _window$document;\n\n return typeof window !== \"undefined\" && !!((_window$document = window.document) != null && _window$document.createElement);\n}\n/**\n * Returns `element.ownerDocument || document`.\n */\n\n\nfunction getDocument(node) {\n return node ? node.ownerDocument || node : document;\n}\n/**\n * Returns `element.ownerDocument.defaultView || window`.\n */\n\n\nfunction getWindow(node) {\n return getDocument(node).defaultView || window;\n}\n/**\n * Returns `element.ownerDocument.activeElement`.\n */\n\n\nfunction getActiveElement(node, activeDescendant) {\n if (activeDescendant === void 0) {\n activeDescendant = false;\n }\n\n const {\n activeElement\n } = getDocument(node);\n\n if (!(activeElement != null && activeElement.nodeName)) {\n // In IE11, activeElement might be an empty object if we're interacting\n // with elements inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n\n if (id) {\n const element = getDocument(activeElement).getElementById(id);\n\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement;\n}\n/**\n * Similar to `Element.prototype.contains`, but a little bit faster when\n * `element` is the same as `child`.\n * @example\n * contains(\n * document.getElementById(\"parent\"),\n * document.getElementById(\"child\")\n * );\n */\n\n\nfunction contains(parent, child) {\n return parent === child || parent.contains(child);\n}\n/**\n * Checks whether `element` is a frame element.\n */\n\n\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n/**\n * Checks whether `element` is a native HTML button element.\n * @example\n * isButton(document.querySelector(\"button\")); // true\n * isButton(document.querySelector(\"input[type='button']\")); // true\n * isButton(document.querySelector(\"div\")); // false\n * isButton(document.querySelector(\"input[type='text']\")); // false\n * isButton(document.querySelector(\"div[role='button']\")); // false\n */\n\n\nfunction isButton(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"button\") return true;\n\n if (tagName === \"input\" && element.type) {\n return buttonInputTypes.indexOf(element.type) !== -1;\n }\n\n return false;\n}\n\nconst buttonInputTypes = [\"button\", \"color\", \"file\", \"image\", \"reset\", \"submit\"];\n/**\n * Ponyfill for `Element.prototype.matches`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n */\n\nfunction matches(element, selectors) {\n if (\"matches\" in element) {\n return element.matches(selectors);\n }\n\n if (\"msMatchesSelector\" in element) {\n return element.msMatchesSelector(selectors);\n }\n\n return element.webkitMatchesSelector(selectors);\n}\n/**\n * Checks if the element is visible or not.\n */\n\n\nfunction isVisible(element) {\n const htmlElement = element;\n return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n/**\n * Ponyfill for `Element.prototype.closest`\n * @example\n * closest(document.getElementById(\"id\"), \"div\");\n * // same as\n * document.getElementById(\"id\").closest(\"div\");\n */\n\n\nfunction closest(element, selectors) {\n if (\"closest\" in element) return element.closest(selectors);\n\n do {\n if (matches(element, selectors)) return element;\n element = element.parentElement || element.parentNode;\n } while (element !== null && element.nodeType === 1);\n\n return null;\n}\n/**\n * Check whether the given element is a text field, where text field is defined\n * by the ability to select within the input.\n * @example\n * isTextField(document.querySelector(\"div\")); // false\n * isTextField(document.querySelector(\"input\")); // true\n * isTextField(document.querySelector(\"input[type='button']\")); // false\n * isTextField(document.querySelector(\"textarea\")); // true\n */\n\n\nfunction isTextField(element) {\n try {\n const isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;\n const isTextArea = element.tagName === \"TEXTAREA\";\n return isTextInput || isTextArea || false;\n } catch (error) {\n // Safari throws an exception when trying to get `selectionStart` on\n // non-text elements (which, understandably, don't have the text\n // selection API). We catch this via a try/catch block, as opposed to a more\n // explicit check of the element's input types, because of Safari's\n // non-standard behavior. This also means we don't have to worry about the\n // list of input types that support `selectionStart` changing as the HTML\n // spec evolves over time.\n return false;\n }\n}\n/**\n * Returns the element's role attribute, if it has one.\n */\n\n\nfunction getPopupRole(element, fallback) {\n const allowedPopupRoles = [\"dialog\", \"menu\", \"listbox\", \"tree\", \"grid\"];\n const role = element == null ? void 0 : element.getAttribute(\"role\");\n\n if (role && allowedPopupRoles.indexOf(role) !== -1) {\n return role;\n }\n\n return fallback;\n}\n/**\n * Returns the item role attribute based on the popup's role.\n */\n\n\nfunction getPopupItemRole(element, fallback) {\n var _itemRoleByPopupRole$;\n\n const itemRoleByPopupRole = {\n menu: \"menuitem\",\n listbox: \"option\",\n tree: \"treeitem\",\n grid: \"gridcell\"\n };\n const popupRole = getPopupRole(element);\n if (!popupRole) return fallback;\n const key = popupRole;\n return (_itemRoleByPopupRole$ = itemRoleByPopupRole[key]) != null ? _itemRoleByPopupRole$ : fallback;\n}\n/**\n * Returns the start and end offsets of the selection in the element.\n */\n\n\nfunction getTextboxSelection(element) {\n let start = 0;\n let end = 0;\n\n if (isTextField(element)) {\n start = element.selectionStart || 0;\n end = element.selectionEnd || 0;\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n\n if (selection != null && selection.rangeCount && selection.anchorNode && contains(element, selection.anchorNode) && selection.focusNode && contains(element, selection.focusNode)) {\n const range = selection.getRangeAt(0);\n const nextRange = range.cloneRange();\n nextRange.selectNodeContents(element);\n nextRange.setEnd(range.startContainer, range.startOffset);\n start = nextRange.toString().length;\n nextRange.setEnd(range.endContainer, range.endOffset);\n end = nextRange.toString().length;\n }\n }\n\n return {\n start,\n end\n };\n}\n/**\n * Calls `element.scrollIntoView()` if the element is hidden or partly hidden in\n * the viewport.\n */\n\n\nfunction scrollIntoViewIfNeeded(element, arg) {\n if (isPartiallyHidden(element) && \"scrollIntoView\" in element) {\n element.scrollIntoView(arg);\n }\n}\n/**\n * Returns the scrolling container element of a given element.\n */\n\n\nfunction getScrollingElement(element) {\n if (!element) return null;\n\n if (element.clientHeight && element.scrollHeight > element.clientHeight) {\n const {\n overflowY\n } = getComputedStyle(element);\n const isScrollable = overflowY !== \"visible\" && overflowY !== \"hidden\";\n if (isScrollable) return element;\n }\n\n return getScrollingElement(element.parentElement) || document.scrollingElement || document.body;\n}\n/**\n * Determines whether an element is hidden or partially hidden in the viewport.\n */\n\n\nfunction isPartiallyHidden(element) {\n const elementRect = element.getBoundingClientRect();\n const scroller = getScrollingElement(element);\n if (!scroller) return false;\n const scrollerRect = scroller.getBoundingClientRect();\n const isHTML = scroller.tagName === \"HTML\";\n const scrollerTop = isHTML ? scrollerRect.top + scroller.scrollTop : scrollerRect.top;\n const scrollerBottom = isHTML ? scroller.clientHeight : scrollerRect.bottom;\n const scrollerLeft = isHTML ? scrollerRect.left + scroller.scrollLeft : scrollerRect.left;\n const scrollerRight = isHTML ? scroller.clientWidth : scrollerRect.right;\n const top = elementRect.top < scrollerTop;\n const left = elementRect.left < scrollerLeft;\n const bottom = elementRect.bottom > scrollerBottom;\n const right = elementRect.right > scrollerRight;\n return top || left || bottom || right;\n}\n\nexport { canUseDOM, closest, contains, getActiveElement, getDocument, getPopupItemRole, getPopupRole, getScrollingElement, getTextboxSelection, getWindow, isButton, isFrame, isPartiallyHidden, isTextField, isVisible, matches, scrollIntoViewIfNeeded };","import { contains } from './dom.js';\nimport { isApple } from './platform.js';\n/**\n * Returns `true` if `event` has been fired within a React Portal element.\n */\n\nfunction isPortalEvent(event) {\n return !contains(event.currentTarget, event.target);\n}\n/**\n * Returns `true` if `event.target` and `event.currentTarget` are the same.\n */\n\n\nfunction isSelfTarget(event) {\n return event.target === event.currentTarget;\n}\n/**\n * Checks whether the user event is triggering a page navigation in a new tab.\n */\n\n\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const isAppleDevice = isApple();\n if (isAppleDevice && !event.metaKey) return false;\n if (!isAppleDevice && !event.ctrlKey) return false;\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\n/**\n * Checks whether the user event is triggering a download.\n */\n\n\nfunction isDownloading(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const tagName = element.tagName.toLowerCase();\n if (!event.altKey) return false;\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\n/**\n * Creates and dispatches an event.\n * @example\n * fireEvent(document.getElementById(\"id\"), \"blur\", {\n * bubbles: true,\n * cancelable: true,\n * });\n */\n\n\nfunction fireEvent(element, type, eventInit) {\n const event = new Event(type, eventInit);\n return element.dispatchEvent(event);\n}\n/**\n * Creates and dispatches a blur event.\n * @example\n * fireBlurEvent(document.getElementById(\"id\"));\n */\n\n\nfunction fireBlurEvent(element, eventInit) {\n const event = new FocusEvent(\"blur\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = { ...eventInit,\n bubbles: true\n };\n element.dispatchEvent(new FocusEvent(\"focusout\", bubbleInit));\n return defaultAllowed;\n}\n/**\n * Creates and dispatches a focus event.\n * @example\n * fireFocusEvent(document.getElementById(\"id\"));\n */\n\n\nfunction fireFocusEvent(element, eventInit) {\n const event = new FocusEvent(\"focus\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = { ...eventInit,\n bubbles: true\n };\n element.dispatchEvent(new FocusEvent(\"focusin\", bubbleInit));\n return defaultAllowed;\n}\n/**\n * Creates and dispatches a keyboard event.\n * @example\n * fireKeyboardEvent(document.getElementById(\"id\"), \"keydown\", {\n * key: \"ArrowDown\",\n * shiftKey: true,\n * });\n */\n\n\nfunction fireKeyboardEvent(element, type, eventInit) {\n const event = new KeyboardEvent(type, eventInit);\n return element.dispatchEvent(event);\n}\n/**\n * Creates and dispatches a click event.\n * @example\n * fireClickEvent(document.getElementById(\"id\"));\n */\n\n\nfunction fireClickEvent(element, eventInit) {\n const event = new MouseEvent(\"click\", eventInit);\n return element.dispatchEvent(event);\n}\n/**\n * Checks whether the focus/blur event is happening from/to outside of the\n * container element.\n * @example\n * const element = document.getElementById(\"id\");\n * element.addEventListener(\"blur\", (event) => {\n * if (isFocusEventOutside(event)) {\n * // ...\n * }\n * });\n */\n\n\nfunction isFocusEventOutside(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\n/**\n * Runs a callback on the next animation frame, but before a certain event.\n */\n\n\nfunction queueBeforeEvent(element, type, callback) {\n const raf = requestAnimationFrame(() => {\n element.removeEventListener(type, callImmediately, true);\n callback();\n });\n\n const callImmediately = () => {\n cancelAnimationFrame(raf);\n callback();\n }; // By listening to the event in the capture phase, we make sure the callback\n // is fired before the respective React events.\n\n\n element.addEventListener(type, callImmediately, {\n once: true,\n capture: true\n });\n return raf;\n}\n/**\n * Adds a global event listener, including on child frames.\n */\n\n\nfunction addGlobalEventListener(type, listener, options, scope) {\n if (scope === void 0) {\n scope = window;\n } // Prevent errors from \"sandbox\" frames.\n\n\n try {\n scope.document.addEventListener(type, listener, options);\n } catch (e) {}\n\n const listeners = [];\n\n for (let i = 0; i < ((_scope$frames = scope.frames) == null ? void 0 : _scope$frames.length); i += 1) {\n var _scope$frames;\n\n const frameWindow = scope.frames[i];\n\n if (frameWindow) {\n listeners.push(addGlobalEventListener(type, listener, options, frameWindow));\n }\n }\n\n const removeEventListener = () => {\n try {\n scope.document.removeEventListener(type, listener, options);\n } catch (e) {}\n\n listeners.forEach(listener => listener());\n };\n\n return removeEventListener;\n}\n\nexport { addGlobalEventListener, fireBlurEvent, fireClickEvent, fireEvent, fireFocusEvent, fireKeyboardEvent, isDownloading, isFocusEventOutside, isOpeningInNewTab, isPortalEvent, isSelfTarget, queueBeforeEvent };","import { matches, isVisible, isFrame, getActiveElement, closest, contains } from './dom.js';\nconst selector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), \" + \"textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], \" + \"iframe, object, embed, area[href], audio[controls], video[controls], \" + \"[contenteditable]:not([contenteditable='false'])\";\n\nfunction hasNegativeTabIndex(element) {\n const tabIndex = parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n return tabIndex < 0;\n}\n/**\n * Checks whether `element` is focusable or not.\n * @example\n * isFocusable(document.querySelector(\"input\")); // true\n * isFocusable(document.querySelector(\"input[tabindex='-1']\")); // true\n * isFocusable(document.querySelector(\"input[hidden]\")); // false\n * isFocusable(document.querySelector(\"input:disabled\")); // false\n */\n\n\nfunction isFocusable(element) {\n return matches(element, selector) && isVisible(element);\n}\n/**\n * Checks whether `element` is tabbable or not.\n * @example\n * isTabbable(document.querySelector(\"input\")); // true\n * isTabbable(document.querySelector(\"input[tabindex='-1']\")); // false\n * isTabbable(document.querySelector(\"input[hidden]\")); // false\n * isTabbable(document.querySelector(\"input:disabled\")); // false\n */\n\n\nfunction isTabbable(element) {\n return isFocusable(element) && !hasNegativeTabIndex(element);\n}\n/**\n * Returns all the focusable elements in `container`.\n */\n\n\nfunction getAllFocusableIn(container, includeContainer) {\n const elements = Array.from(container.querySelectorAll(selector));\n\n if (includeContainer) {\n elements.unshift(container);\n }\n\n const focusableElements = elements.filter(isFocusable);\n focusableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.splice(i, 1, ...getAllFocusableIn(frameBody));\n }\n });\n return focusableElements;\n}\n/**\n * Returns all the focusable elements in the document.\n */\n\n\nfunction getAllFocusable(includeBody) {\n return getAllFocusableIn(document.body, includeBody);\n}\n/**\n * Returns the first focusable element in `container`.\n */\n\n\nfunction getFirstFocusableIn(container, includeContainer) {\n const [first] = getAllFocusableIn(container, includeContainer);\n return first || null;\n}\n/**\n * Returns the first focusable element in the document.\n */\n\n\nfunction getFirstFocusable(includeBody) {\n return getFirstFocusableIn(document.body, includeBody);\n}\n/**\n * Returns all the tabbable elements in `container`, including the container\n * itself.\n */\n\n\nfunction getAllTabbableIn(container, includeContainer, fallbackToFocusable) {\n const elements = Array.from(container.querySelectorAll(selector));\n const tabbableElements = elements.filter(isTabbable);\n\n if (includeContainer && isTabbable(container)) {\n tabbableElements.unshift(container);\n }\n\n tabbableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getAllTabbableIn(frameBody, false, fallbackToFocusable);\n tabbableElements.splice(i, 1, ...allFrameTabbable);\n }\n });\n\n if (!tabbableElements.length && fallbackToFocusable) {\n return elements;\n }\n\n return tabbableElements;\n}\n/**\n * Returns all the tabbable elements in the document.\n */\n\n\nfunction getAllTabbable(fallbackToFocusable) {\n return getAllTabbableIn(document.body, false, fallbackToFocusable);\n}\n/**\n * Returns the first tabbable element in `container`, including the container\n * itself if it's tabbable.\n */\n\n\nfunction getFirstTabbableIn(container, includeContainer, fallbackToFocusable) {\n const [first] = getAllTabbableIn(container, includeContainer, fallbackToFocusable);\n return first || null;\n}\n/**\n * Returns the first tabbable element in the document.\n */\n\n\nfunction getFirstTabbable(fallbackToFocusable) {\n return getFirstTabbableIn(document.body, false, fallbackToFocusable);\n}\n/**\n * Returns the last tabbable element in `container`, including the container\n * itself if it's tabbable.\n */\n\n\nfunction getLastTabbableIn(container, includeContainer, fallbackToFocusable) {\n const allTabbable = getAllTabbableIn(container, includeContainer, fallbackToFocusable);\n return allTabbable[allTabbable.length - 1] || null;\n}\n/**\n * Returns the last tabbable element in the document.\n */\n\n\nfunction getLastTabbable(fallbackToFocusable) {\n return getLastTabbableIn(document.body, false, fallbackToFocusable);\n}\n/**\n * Returns the next tabbable element in `container`.\n */\n\n\nfunction getNextTabbableIn(container, includeContainer, fallbackToFirst, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer);\n const activeIndex = allFocusable.indexOf(activeElement);\n const nextFocusableElements = allFocusable.slice(activeIndex + 1);\n return nextFocusableElements.find(isTabbable) || (fallbackToFirst ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? nextFocusableElements[0] : null) || null;\n}\n/**\n * Returns the next tabbable element in the document.\n */\n\n\nfunction getNextTabbable(fallbackToFirst, fallbackToFocusable) {\n return getNextTabbableIn(document.body, false, fallbackToFirst, fallbackToFocusable);\n}\n/**\n * Returns the previous tabbable element in `container`.\n *\n */\n\n\nfunction getPreviousTabbableIn(container, includeContainer, fallbackToLast, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer).reverse();\n const activeIndex = allFocusable.indexOf(activeElement);\n const previousFocusableElements = allFocusable.slice(activeIndex + 1);\n return previousFocusableElements.find(isTabbable) || (fallbackToLast ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? previousFocusableElements[0] : null) || null;\n}\n/**\n * Returns the previous tabbable element in the document.\n */\n\n\nfunction getPreviousTabbable(fallbackToFirst, fallbackToFocusable) {\n return getPreviousTabbableIn(document.body, false, fallbackToFirst, fallbackToFocusable);\n}\n/**\n * Returns the closest focusable element.\n */\n\n\nfunction getClosestFocusable(element) {\n while (element && !isFocusable(element)) {\n element = closest(element, selector);\n }\n\n return element || null;\n}\n/**\n * Checks if `element` has focus. Elements that are referenced by\n * `aria-activedescendant` are also considered.\n * @example\n * hasFocus(document.getElementById(\"id\"));\n */\n\n\nfunction hasFocus(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (activeElement === element) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n return activeDescendant === element.id;\n}\n/**\n * Checks if `element` has focus within. Elements that are referenced by\n * `aria-activedescendant` are also considered.\n * @example\n * hasFocusWithin(document.getElementById(\"id\"));\n */\n\n\nfunction hasFocusWithin(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (contains(element, activeElement)) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n if (!(\"id\" in element)) return false;\n if (activeDescendant === element.id) return true;\n return !!element.querySelector(\"#\" + CSS.escape(activeDescendant));\n}\n/**\n * Focus on an element only if it's not already focused.\n */\n\n\nfunction focusIfNeeded(element) {\n if (!hasFocusWithin(element) && isFocusable(element)) {\n element.focus();\n }\n}\n/**\n * Disable focus on `element`.\n */\n\n\nfunction disableFocus(element) {\n var _element$getAttribute;\n\n const currentTabindex = (_element$getAttribute = element.getAttribute(\"tabindex\")) != null ? _element$getAttribute : \"\";\n element.setAttribute(\"data-tabindex\", currentTabindex);\n element.setAttribute(\"tabindex\", \"-1\");\n}\n/**\n * Makes elements inside container not tabbable.\n */\n\n\nfunction disableFocusIn(container, includeContainer) {\n const tabbableElements = getAllTabbableIn(container, includeContainer);\n tabbableElements.forEach(disableFocus);\n}\n/**\n * Restores tabbable elements inside container that were affected by\n * disableFocusIn.\n */\n\n\nfunction restoreFocusIn(container) {\n const elements = container.querySelectorAll(\"[data-tabindex]\");\n\n const restoreTabIndex = element => {\n const tabindex = element.getAttribute(\"data-tabindex\");\n element.removeAttribute(\"data-tabindex\");\n\n if (tabindex) {\n element.setAttribute(\"tabindex\", tabindex);\n } else {\n element.removeAttribute(\"tabindex\");\n }\n };\n\n if (container.hasAttribute(\"data-tabindex\")) {\n restoreTabIndex(container);\n }\n\n elements.forEach(restoreTabIndex);\n}\n/**\n * Focus on element and scroll into view.\n */\n\n\nfunction focusIntoView(element, options) {\n if (!(\"scrollIntoView\" in element)) {\n element.focus();\n } else {\n element.focus({\n preventScroll: true\n });\n element.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\",\n ...options\n });\n }\n}\n\nexport { disableFocus, disableFocusIn, focusIfNeeded, focusIntoView, getAllFocusable, getAllFocusableIn, getAllTabbable, getAllTabbableIn, getClosestFocusable, getFirstFocusable, getFirstFocusableIn, getFirstTabbable, getFirstTabbableIn, getLastTabbable, getLastTabbableIn, getNextTabbable, getNextTabbableIn, getPreviousTabbable, getPreviousTabbableIn, hasFocus, hasFocusWithin, isFocusable, isTabbable, restoreFocusIn };","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useState, useRef, useCallback, useMemo, useReducer } from 'react';\nimport { canUseDOM } from './dom.js';\nimport { addGlobalEventListener } from './events.js';\nimport { setRef, applyState } from './misc.js'; // @ts-ignore Access React v18 hooks using string concatenation in order to\n// prevent Webpack from inferring that they are not present in React v17. For\n// example, React.useId will raise a compile time error when using React v17,\n// but React['use' + 'Id'] will not.\n\nconst useReactId = React[\"use\" + \"Id\"]; // @ts-ignore\n\nconst useReactDeferredValue = React[\"use\" + \"DeferredValue\"]; // @ts-ignore\n\nconst useInsertionEffect = React[\"use\" + \"InsertionEffect\"];\n/**\n * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side.\n */\n\nconst useSafeLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n/**\n * Returns a value that never changes even if the argument is updated.\n * @example\n * function Component({ prop }) {\n * const initialProp = useInitialValue(prop);\n * }\n */\n\nfunction useInitialValue(value) {\n const [initialValue] = useState(value);\n return initialValue;\n}\n/**\n * Returns a value that is lazily initiated and never changes.\n * @example\n * function Component() {\n * const set = useLazyValue(() => new Set());\n * }\n */\n\n\nfunction useLazyValue(init) {\n const ref = useRef();\n\n if (ref.current === undefined) {\n ref.current = init();\n }\n\n return ref.current;\n}\n/**\n * Creates a `React.RefObject` that is constantly updated with the incoming\n * value.\n * @example\n * function Component({ prop }) {\n * const propRef = useLiveRef(prop);\n * }\n */\n\n\nfunction useLiveRef(value) {\n const ref = useRef(value);\n useSafeLayoutEffect(() => {\n ref.current = value;\n });\n return ref;\n}\n/**\n * Keeps the reference of the previous value to be used in the render phase.\n */\n\n\nfunction usePreviousValue(value) {\n const [previousValue, setPreviousValue] = useState(value);\n\n if (value !== previousValue) {\n setPreviousValue(value);\n }\n\n return previousValue;\n}\n/**\n * Creates a stable callback function that has access to the latest state and\n * can be used within event handlers and effect callbacks. Throws when used in\n * the render phase.\n * @example\n * function Component(props) {\n * const onClick = useEvent(props.onClick);\n * React.useEffect(() => {}, [onClick]);\n * }\n */\n\n\nfunction useEvent(callback) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n\n if (useInsertionEffect) {\n useInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n ref.current = callback;\n }\n\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n/**\n * Merges React Refs into a single memoized function ref so you can pass it to\n * an element.\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const internalRef = React.useRef();\n * return
;\n * });\n */\n\n\nfunction useForkRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n\n return useMemo(() => {\n if (!refs.some(Boolean)) return;\n return value => {\n refs.forEach(ref => {\n setRef(ref, value);\n });\n };\n }, refs);\n}\n/**\n * Returns the ref element's ID.\n */\n\n\nfunction useRefId(ref, deps) {\n const [id, setId] = useState(undefined);\n useSafeLayoutEffect(() => {\n var _ref$current;\n\n setId(ref == null ? void 0 : (_ref$current = ref.current) == null ? void 0 : _ref$current.id);\n }, deps);\n return id;\n}\n/**\n * Generates a unique ID. Uses React's useId if available.\n */\n\n\nfunction useId(defaultId) {\n if (useReactId) {\n const reactId = useReactId();\n if (defaultId) return defaultId;\n return reactId;\n }\n\n const [id, setId] = useState(defaultId);\n useSafeLayoutEffect(() => {\n if (defaultId || id) return;\n const random = Math.random().toString(36).substr(2, 6);\n setId(\"id-\" + random);\n }, [defaultId, id]);\n return defaultId || id;\n}\n/**\n * Uses React's useDeferredValue if available.\n */\n\n\nfunction useDeferredValue(value) {\n if (useReactDeferredValue) {\n return useReactDeferredValue(value);\n }\n\n const [deferredValue, setDeferredValue] = useState(value);\n useEffect(() => {\n const raf = requestAnimationFrame(() => setDeferredValue(value));\n return () => cancelAnimationFrame(raf);\n }, [value]);\n return deferredValue;\n}\n/**\n * Returns the tag name by parsing an element ref and the `as` prop.\n * @example\n * function Component(props) {\n * const ref = React.useRef();\n * const tagName = useTagName(ref, \"button\"); // div\n * return
;\n * }\n */\n\n\nfunction useTagName(ref, type) {\n const [tagName, setTagName] = useState(() => stringOrUndefined(type));\n useSafeLayoutEffect(() => {\n var _ref$current2;\n\n setTagName((ref == null ? void 0 : (_ref$current2 = ref.current) == null ? void 0 : _ref$current2.tagName.toLowerCase()) || stringOrUndefined(type));\n }, [ref, type]);\n return tagName;\n}\n\nfunction stringOrUndefined(type) {\n if (typeof type === \"string\") {\n return type;\n }\n\n return;\n}\n/**\n * A `React.useEffect` that will not run on the first render.\n */\n\n\nfunction useUpdateEffect(effect, deps) {\n const mounted = useRef(false);\n useEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n }, deps);\n useEffect(() => () => {\n mounted.current = false;\n }, []);\n}\n/**\n * A `React.useLayoutEffect` that will not run on the first render.\n */\n\n\nfunction useUpdateLayoutEffect(effect, deps) {\n const mounted = useRef(false);\n useSafeLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n }, deps);\n useSafeLayoutEffect(() => () => {\n mounted.current = false;\n }, []);\n}\n/**\n * A custom version of `React.useState` that uses the `state` and `setState`\n * arguments. If they're not provided, it will use the internal state.\n */\n\n\nfunction useControlledState(defaultState, state, setState) {\n const [localState, setLocalState] = useState(defaultState);\n const nextState = state !== undefined ? state : localState;\n const stateRef = useLiveRef(state);\n const setStateRef = useLiveRef(setState);\n const nextStateRef = useLiveRef(nextState);\n const setNextState = useCallback(prevValue => {\n const setStateProp = setStateRef.current;\n\n if (setStateProp) {\n if (isSetNextState(setStateProp)) {\n setStateProp(prevValue);\n } else {\n const nextValue = applyState(prevValue, nextStateRef.current);\n nextStateRef.current = nextValue;\n setStateProp(nextValue);\n }\n }\n\n if (stateRef.current === undefined) {\n setLocalState(prevValue);\n }\n }, []);\n defineSetNextState(setNextState);\n return [nextState, setNextState];\n}\n\nconst SET_NEXT_STATE = Symbol(\"setNextState\");\n\nfunction isSetNextState(arg) {\n return arg[SET_NEXT_STATE] === true;\n}\n\nfunction defineSetNextState(arg) {\n if (!isSetNextState(arg)) {\n Object.defineProperty(arg, SET_NEXT_STATE, {\n value: true\n });\n }\n}\n/**\n * A React hook similar to `useState` and `useReducer`, but with the only\n * purpose of re-rendering the component.\n */\n\n\nfunction useForceUpdate() {\n return useReducer(() => [], []);\n}\n/**\n * Returns an event callback similar to `useEvent`, but this also accepts a\n * boolean value, which will be turned into a function.\n */\n\n\nfunction useBooleanEvent(booleanOrCallback) {\n return useEvent(typeof booleanOrCallback === \"function\" ? booleanOrCallback : () => booleanOrCallback);\n}\n/**\n * Returns props with an additional `wrapElement` prop.\n */\n\n\nfunction useWrapElement(props, callback, deps) {\n if (deps === void 0) {\n deps = [];\n }\n\n const wrapElement = useCallback(element => {\n if (props.wrapElement) {\n element = props.wrapElement(element);\n }\n\n return callback(element);\n }, [...deps, props.wrapElement]);\n return { ...props,\n wrapElement\n };\n}\n/**\n * Merges the portalRef prop and returns a `domReady` to be used in the\n * components that use Portal underneath.\n */\n\n\nfunction usePortalRef(portalProp, portalRefProp) {\n if (portalProp === void 0) {\n portalProp = false;\n }\n\n const [portalNode, setPortalNode] = useState(null);\n const portalRef = useForkRef(setPortalNode, portalRefProp);\n const domReady = !portalProp || portalNode;\n return {\n portalRef,\n portalNode,\n domReady\n };\n}\n/**\n * Returns a function that checks whether the mouse is moving.\n */\n\n\nfunction useIsMouseMoving() {\n useEffect(() => {\n // We're not returning the event listener cleanup function here because we\n // may lose some events if this component is unmounted, but others are\n // still mounted.\n addGlobalEventListener(\"mousemove\", setMouseMoving, true); // See https://github.com/ariakit/ariakit/issues/1137\n\n addGlobalEventListener(\"mousedown\", resetMouseMoving, true);\n addGlobalEventListener(\"mouseup\", resetMouseMoving, true);\n addGlobalEventListener(\"keydown\", resetMouseMoving, true);\n addGlobalEventListener(\"scroll\", resetMouseMoving, true);\n }, []);\n const isMouseMoving = useEvent(() => mouseMoving);\n return isMouseMoving;\n}\n\nlet mouseMoving = false;\nlet previousScreenX = 0;\nlet previousScreenY = 0;\n\nfunction hasMouseMovement(event) {\n const movementX = event.movementX || event.screenX - previousScreenX;\n const movementY = event.movementY || event.screenY - previousScreenY;\n previousScreenX = event.screenX;\n previousScreenY = event.screenY;\n return movementX || movementY || process.env.NODE_ENV === \"test\";\n}\n\nfunction setMouseMoving(event) {\n if (!hasMouseMovement(event)) return;\n mouseMoving = true;\n}\n\nfunction resetMouseMoving() {\n mouseMoving = false;\n}\n\nexport { useBooleanEvent, useControlledState, useDeferredValue, useEvent, useForceUpdate, useForkRef, useId, useInitialValue, useIsMouseMoving, useLazyValue, useLiveRef, usePortalRef, usePreviousValue, useRefId, useSafeLayoutEffect, useTagName, useUpdateEffect, useUpdateLayoutEffect, useWrapElement };","/**\n * Empty function.\n */\nfunction noop() {}\n/**\n * Compares two objects.\n * @example\n * shallowEqual({ a: \"a\" }, {}); // false\n * shallowEqual({ a: \"a\" }, { b: \"b\" }); // false\n * shallowEqual({ a: \"a\" }, { a: \"a\" }); // true\n * shallowEqual({ a: \"a\" }, { a: \"a\", b: \"b\" }); // false\n */\n\n\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (!a) return false;\n if (!b) return false;\n if (typeof a !== \"object\") return false;\n if (typeof b !== \"object\") return false;\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const {\n length\n } = aKeys;\n if (bKeys.length !== length) return false;\n\n for (const key of aKeys) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\n/**\n * Receives a `setState` argument and calls it with `currentValue` if it's a\n * function. Otherwise return the argument as the new value.\n * @example\n * applyState((value) => value + 1, 1); // 2\n * applyState(2, 1); // 2\n */\n\n\nfunction applyState(argument, currentValue) {\n if (isUpdater(argument)) {\n const value = isLazyValue(currentValue) ? currentValue() : currentValue;\n return argument(value);\n }\n\n return argument;\n}\n\nfunction isUpdater(argument) {\n return typeof argument === \"function\";\n}\n\nfunction isLazyValue(value) {\n return typeof value === \"function\";\n}\n/**\n * Sets both a function and object React ref.\n */\n\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n/**\n * Checks whether `arg` is an object or not.\n * @returns {boolean}\n */\n\n\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg != null;\n}\n/**\n * Checks whether `arg` is empty or not.\n * @example\n * isEmpty([]); // true\n * isEmpty([\"a\"]); // false\n * isEmpty({}); // true\n * isEmpty({ a: \"a\" }); // false\n * isEmpty(); // true\n * isEmpty(null); // true\n * isEmpty(undefined); // true\n * isEmpty(\"\"); // true\n */\n\n\nfunction isEmpty(arg) {\n if (Array.isArray(arg)) return !arg.length;\n if (isObject(arg)) return !Object.keys(arg).length;\n if (arg == null) return true;\n if (arg === \"\") return true;\n return false;\n}\n/**\n * Checks whether `arg` is a promise or not.\n * @returns {boolean}\n */\n\n\nfunction isPromise(arg) {\n return Boolean(arg && \"then\" in arg && typeof arg.then === \"function\");\n}\n/**\n * Checks whether `arg` is an integer or not.\n * @example\n * isInteger(1); // true\n * isInteger(1.5); // false\n * isInteger(\"1\"); // true\n * isInteger(\"1.5\"); // false\n */\n\n\nfunction isInteger(arg) {\n if (typeof arg === \"number\") {\n return Math.floor(arg) === arg;\n }\n\n return String(Math.floor(Number(arg))) === arg;\n}\n/**\n * Checks whether `prop` is an own property of `obj` or not.\n */\n\n\nfunction hasOwnProperty(object, prop) {\n return Object.prototype.hasOwnProperty.call(object, prop);\n}\n/**\n * Receives functions as arguments and returns a new function that calls all.\n */\n\n\nfunction chain() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function () {\n for (const fn of fns) {\n if (typeof fn === \"function\") {\n // @ts-ignore\n fn(...arguments);\n }\n }\n };\n}\n/**\n * Returns a string with the truthy values of `args` separated by space.\n */\n\n\nfunction cx() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.filter(Boolean).join(\" \") || undefined;\n}\n/**\n * Removes diatrics from a string.\n * TODO: Check if it works on WebView Android.\n */\n\n\nfunction normalizeString(str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n/**\n * Queues a function to be called at the end of the current event loop.\n */\n\n\nfunction queueMicrotask(callback) {\n if (window.queueMicrotask) {\n return window.queueMicrotask(callback);\n }\n\n Promise.resolve().then(callback);\n}\n\nexport { applyState, chain, cx, hasOwnProperty, isEmpty, isInteger, isObject, isPromise, noop, normalizeString, queueMicrotask, setRef, shallowEqual };","import { canUseDOM } from './dom.js';\n/**\n * Detects if the device has touch capabilities.\n */\n\nfunction isTouchDevice() {\n return canUseDOM && !!navigator.maxTouchPoints;\n}\n/**\n * Detects Apple device.\n */\n\n\nfunction isApple() {\n if (!canUseDOM) return false;\n return /mac|iphone|ipad|ipod/i.test(navigator.platform);\n}\n/**\n * Detects Safari browser.\n */\n\n\nfunction isSafari() {\n return canUseDOM && isApple() && /apple/i.test(navigator.vendor);\n}\n/**\n * Detects Firefox browser.\n */\n\n\nfunction isFirefox() {\n return canUseDOM && /firefox\\//i.test(navigator.userAgent);\n}\n/**\n * Detects Mac computer.\n */\n\n\nfunction isMac() {\n return canUseDOM && navigator.platform.startsWith(\"Mac\") && !isTouchDevice();\n}\n\nexport { isApple, isFirefox, isMac, isSafari, isTouchDevice };","import { forwardRef } from 'react';\nimport { hasOwnProperty } from './misc.js';\nimport { jsx } from 'react/jsx-runtime';\n\nfunction isRenderProp(children) {\n return typeof children === \"function\";\n}\n/**\n * Creates a type-safe component with the `as` prop and `React.forwardRef`.\n *\n * @example\n * import { createComponent } from \"ariakit-utils/system\";\n *\n * type Props = {\n * as?: \"div\";\n * customProp?: boolean;\n * };\n *\n * const Component = createComponent(({ customProp, ...props }) => {\n * return
;\n * });\n *\n * \n */\n\n\nfunction createComponent(render) {\n const Role = (props, ref) => render({\n ref,\n ...props\n });\n\n return /*#__PURE__*/forwardRef(Role);\n}\n/**\n * Creates a React element that supports the `as` prop, children as a\n * function (render props) and a `wrapElement` function.\n *\n * @example\n * import { createElement } from \"ariakit-utils/system\";\n *\n * function Component() {\n * const props = {\n * as: \"button\" as const,\n * children: (htmlProps) => \n * ```\n */\n\nconst Button = createComponent(props => {\n const htmlProps = useButton(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Button.displayName = \"Button\";\n}\n\nexport { Button, useButton };","import { useRef, useEffect, useState } from 'react';\nimport { isButton } from 'ariakit-utils/dom';\nimport { addGlobalEventListener, isPortalEvent, queueBeforeEvent, isSelfTarget, isFocusEventOutside } from 'ariakit-utils/events';\nimport { isFocusable, focusIfNeeded, hasFocus } from 'ariakit-utils/focus';\nimport { useEvent, useSafeLayoutEffect, useTagName, useForkRef } from 'ariakit-utils/hooks';\nimport { queueMicrotask } from 'ariakit-utils/misc';\nimport { isSafari } from 'ariakit-utils/platform';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nconst isSafariBrowser = isSafari();\nconst alwaysFocusVisibleInputTypes = [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\", \"number\", \"date\", \"month\", \"week\", \"time\", \"datetime\", \"datetime-local\"];\n\nfunction isAlwaysFocusVisible(element) {\n const {\n tagName,\n readOnly,\n type\n } = element;\n if (tagName === \"TEXTAREA\" && !readOnly) return true;\n if (tagName === \"SELECT\" && !readOnly) return true;\n\n if (tagName === \"INPUT\" && !readOnly) {\n return alwaysFocusVisibleInputTypes.includes(type);\n }\n\n if (element.isContentEditable) return true;\n return false;\n} // See https://github.com/ariakit/ariakit/issues/1257\n\n\nfunction isAlwaysFocusVisibleDelayed(element) {\n const role = element.getAttribute(\"role\");\n if (role === \"combobox\") return true;\n return false;\n}\n\nfunction getLabels(element) {\n if (\"labels\" in element) {\n return element.labels;\n }\n\n return null;\n}\n\nfunction isNativeCheckboxOrRadio(element) {\n const tagName = element.tagName.toLowerCase();\n\n if (tagName === \"input\" && element.type) {\n return element.type === \"radio\" || element.type === \"checkbox\";\n }\n\n return false;\n}\n\nfunction isNativeTabbable(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\" || tagName === \"a\";\n}\n\nfunction supportsDisabledAttribute(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\";\n}\n\nfunction getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, tabIndexProp) {\n if (!focusable) {\n return tabIndexProp;\n }\n\n if (trulyDisabled) {\n if (nativeTabbable && !supportsDisabled) {\n // Anchor, audio and video tags don't support the `disabled` attribute.\n // We must pass tabIndex={-1} so they don't receive focus on tab.\n return -1;\n } // Elements that support the `disabled` attribute don't need tabIndex.\n\n\n return;\n }\n\n if (nativeTabbable) {\n // If the element is enabled and it's natively tabbable, we don't need to\n // specify a tabIndex attribute unless it's explicitly set by the user.\n return tabIndexProp;\n } // If the element is enabled and is not natively tabbable, we have to\n // fallback tabIndex={0}.\n\n\n return tabIndexProp || 0;\n}\n\nfunction useDisableEvent(onEvent, disabled) {\n return useEvent(event => {\n onEvent == null ? void 0 : onEvent(event);\n if (event.defaultPrevented) return;\n\n if (disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n });\n} // isKeyboardModality should be true by defaault.\n\n\nlet isKeyboardModality = true;\n\nfunction onGlobalMouseDown(event) {\n const target = event.target;\n\n if (target && \"hasAttribute\" in target) {\n // If the target element is already focus-visible, we keep the keyboard\n // modality.\n if (!target.hasAttribute(\"data-focus-visible\")) {\n isKeyboardModality = false;\n }\n }\n}\n\nfunction onGlobalKeyDown(event) {\n if (event.metaKey) return;\n if (event.ctrlKey) return;\n isKeyboardModality = true;\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that can be focused.\n * @see https://ariakit.org/components/focusable\n * @example\n * ```jsx\n * const props = useFocusable();\n * Focusable\n * ```\n */\n\n\nconst useFocusable = createHook(_ref => {\n let {\n focusable = true,\n accessibleWhenDisabled,\n autoFocus,\n onFocusVisible,\n ...props\n } = _ref;\n const ref = useRef(null); // Add global event listeners to determine whether the user is using a\n // keyboard to navigate the site or not.\n\n useEffect(() => {\n if (!focusable) return;\n addGlobalEventListener(\"mousedown\", onGlobalMouseDown, true);\n addGlobalEventListener(\"keydown\", onGlobalKeyDown, true);\n }, [focusable]); // Safari and Firefox on Apple devices don't focus on checkboxes or radio\n // buttons when their labels are clicked. This effect will make sure the\n // focusable element is focused on label click.\n\n if (isSafariBrowser) {\n useEffect(() => {\n if (!focusable) return;\n const element = ref.current;\n if (!element) return;\n if (!isNativeCheckboxOrRadio(element)) return;\n const labels = getLabels(element);\n if (!labels) return;\n\n const onMouseUp = () => queueMicrotask(() => element.focus());\n\n labels.forEach(label => label.addEventListener(\"mouseup\", onMouseUp));\n return () => {\n labels.forEach(label => label.removeEventListener(\"mouseup\", onMouseUp));\n };\n }, [focusable]);\n }\n\n const disabled = focusable && props.disabled;\n const trulyDisabled = !!disabled && !accessibleWhenDisabled;\n const [focusVisible, setFocusVisible] = useState(false); // When the focusable element is disabled, it doesn't trigger a blur event\n // so we can't set focusVisible to false there. Instead, we have to do it\n // here by checking the element's disabled attribute.\n\n useEffect(() => {\n if (!focusable) return;\n\n if (trulyDisabled && focusVisible) {\n setFocusVisible(false);\n }\n }, [focusable, trulyDisabled, focusVisible]); // When an element that has focus becomes hidden, it doesn't trigger a blur\n // event so we can't set focusVisible to false there. We observe the element\n // and check if it's still focusable. Otherwise, we set focusVisible to\n // false.\n\n useEffect(() => {\n if (!focusable) return;\n if (!focusVisible) return;\n const element = ref.current;\n if (!element) return;\n if (typeof IntersectionObserver === \"undefined\") return;\n const observer = new IntersectionObserver(() => {\n if (!isFocusable(element)) {\n setFocusVisible(false);\n }\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [focusable, focusVisible]); // Disable events when the element is disabled.\n\n const onKeyPressCapture = useDisableEvent(props.onKeyPressCapture, disabled);\n const onMouseDownCapture = useDisableEvent(props.onMouseDownCapture, disabled);\n const onClickCapture = useDisableEvent(props.onClickCapture, disabled);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent(event => {\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n const element = event.currentTarget; // Safari doesn't focus on buttons on mouse down like other\n // browsers/platforms. Instead, it focuses on the closest focusable\n // ancestor element, which is ultimately the body element. So we make sure\n // to give focus to this Focusable element on mouse down so it works\n // consistently across browsers.\n\n if (!isSafariBrowser) return;\n if (isPortalEvent(event)) return;\n if (!isButton(element) && !isNativeCheckboxOrRadio(element)) return; // In future versions os Safari, it may change this behavior and start\n // focusing on buttons on mouse down. To account for that, we check if the\n // element has received focus before.\n\n let receivedFocus = false;\n\n const onFocus = () => {\n receivedFocus = true;\n };\n\n const options = {\n capture: true,\n once: true\n };\n element.addEventListener(\"focusin\", onFocus, options); // We can't focus right away after on mouse down, otherwise it would\n // prevent drag events from happening. So we queue the focus to the next\n // animation frame, but always before the next mouseup event. The mouseup\n // event might happen before the next animation frame on touch devices or\n // by tapping on a MacBook's trackpad, for example.\n\n queueBeforeEvent(element, \"mouseup\", () => {\n element.removeEventListener(\"focusin\", onFocus, true);\n if (receivedFocus) return;\n focusIfNeeded(element);\n });\n });\n\n const handleFocusVisible = (event, currentTarget) => {\n if (currentTarget) {\n event.currentTarget = currentTarget;\n }\n\n onFocusVisible == null ? void 0 : onFocusVisible(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n const element = event.currentTarget;\n if (!element) return; // Some extensions like 1password dispatches some keydown events on\n // autofill and immediately moves focus to the next field. That's why we\n // need to check if the current element is still focused.\n\n if (!hasFocus(element)) return;\n setFocusVisible(true);\n };\n\n const onKeyDownCaptureProp = props.onKeyDownCapture;\n const onKeyDownCapture = useEvent(event => {\n onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (focusVisible) return;\n if (event.metaKey) return;\n if (event.altKey) return;\n if (event.ctrlKey) return;\n if (!isSelfTarget(event)) return;\n const element = event.currentTarget;\n queueMicrotask(() => handleFocusVisible(event, element));\n });\n const onFocusCaptureProp = props.onFocusCapture;\n const onFocusCapture = useEvent(event => {\n onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n\n if (!isSelfTarget(event)) {\n setFocusVisible(false);\n return;\n }\n\n const element = event.currentTarget;\n\n const applyFocusVisible = () => handleFocusVisible(event, element);\n\n if (isKeyboardModality || isAlwaysFocusVisible(event.target)) {\n queueMicrotask(applyFocusVisible);\n } // See https://github.com/ariakit/ariakit/issues/1257\n else if (isAlwaysFocusVisibleDelayed(event.target)) {\n queueBeforeEvent(event.target, \"focusout\", applyFocusVisible);\n } else {\n setFocusVisible(false);\n }\n });\n const onBlurProp = props.onBlur; // Note: Can't use onBlurCapture here otherwise it will not work with\n // CompositeItem's with the virtualFocus state set to true.\n\n const onBlur = useEvent(event => {\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (!focusable) return;\n\n if (isFocusEventOutside(event)) {\n setFocusVisible(false);\n }\n }); // The native autoFocus prop is problematic in many ways. For example, when\n // an element has the native autofocus attribute, the focus event will be\n // triggered before React effects (even layout effects) and before refs are\n // assigned. This means we won't have access to the element's ref or\n // anything else that's set up by React effects on the onFocus event. So we\n // don't pass the autoFocus prop to the element and instead manually focus\n // the element when it's mounted. The order in which this effect runs also\n // matters. It must be declared here after all the event callbacks above so\n // the event callback effects run before this one. See\n // https://twitter.com/diegohaz/status/1408180632933388289\n\n useSafeLayoutEffect(() => {\n if (!focusable) return;\n\n if (autoFocus) {\n var _ref$current;\n\n (_ref$current = ref.current) == null ? void 0 : _ref$current.focus();\n }\n }, [focusable, autoFocus]);\n const tagName = useTagName(ref, props.as);\n const nativeTabbable = focusable && isNativeTabbable(tagName);\n const supportsDisabled = focusable && supportsDisabledAttribute(tagName);\n const style = trulyDisabled ? {\n pointerEvents: \"none\",\n ...props.style\n } : props.style;\n props = {\n \"data-focus-visible\": focusable && focusVisible ? \"\" : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n ...props,\n ref: useForkRef(ref, props.ref),\n style,\n tabIndex: getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, props.tabIndex),\n disabled: supportsDisabled && trulyDisabled ? true : undefined,\n // TODO: Test Focusable contentEditable.\n contentEditable: disabled ? undefined : props.contentEditable,\n onKeyPressCapture,\n onClickCapture,\n onMouseDownCapture,\n onMouseDown,\n onKeyDownCapture,\n onFocusCapture,\n onBlur\n };\n return props;\n});\n/**\n * A component that renders an element that can be focused.\n * @see https://ariakit.org/components/focusable\n * @example\n * ```jsx\n * Focusable\n * ```\n */\n\nconst Focusable = createComponent(props => {\n props = useFocusable(props);\n return createElement(\"div\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Focusable.displayName = \"Focusable\";\n}\n\nexport { Focusable, useFocusable };","const set = require('regenerate')();\n\nset.addRange(0x0, 0x7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x46).addRange(0x61, 0x66);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x345, 0x37F, 0x386, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x9B2, 0x9CE, 0x9D7, 0x9FC, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xD4E, 0xDBD, 0xDD6, 0xE4D, 0xE84, 0xEA5, 0xEC6, 0xECD, 0xF00, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8C5, 0xA8FB, 0xA9CF, 0xAAC0, 0xAAC2, 0xFB3E, 0x10808, 0x1083C, 0x10F27, 0x110C2, 0x11176, 0x111DA, 0x111DC, 0x11237, 0x1123E, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11640, 0x11644, 0x116B8, 0x11909, 0x119E1, 0x11A9D, 0x11C40, 0x11D3A, 0x11D43, 0x11D98, 0x11FB0, 0x16FE3, 0x1BC9E, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E947, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5B0, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x657).addRange(0x659, 0x65F).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6E1, 0x6E8).addRange(0x6ED, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x710, 0x73F).addRange(0x74D, 0x7B1).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x817).addRange(0x81A, 0x82C).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x8D4, 0x8DF).addRange(0x8E3, 0x8E9).addRange(0x8F0, 0x93B).addRange(0x93D, 0x94C).addRange(0x94E, 0x950).addRange(0x955, 0x963).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8);\nset.addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BD, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9F0, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4C).addRange(0xA59, 0xA5C).addRange(0xA70, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE3).addRange(0xAF9, 0xAFC).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3D, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB56, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A);\nset.addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC00, 0xC03).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3D, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4C).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCC).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3D, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB9).addRange(0xEBB, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF81).addRange(0xF88, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1036).addRange(0x103B, 0x103F).addRange(0x1050, 0x108F).addRange(0x109A, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1713).addRange(0x171F, 0x1733).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17B3).addRange(0x17B6, 0x17C8).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E);\nset.addRange(0x1920, 0x192B).addRange(0x1930, 0x1938).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A61, 0x1A74).addRange(0x1ABF, 0x1AC0).addRange(0x1ACC, 0x1ACE).addRange(0x1B00, 0x1B33).addRange(0x1B35, 0x1B43).addRange(0x1B45, 0x1B4C).addRange(0x1B80, 0x1BA9).addRange(0x1BAC, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1BE7, 0x1BF1).addRange(0x1C00, 0x1C36).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1DE7, 0x1DF4).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149);\nset.addRange(0x2160, 0x2188).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA674, 0xA67B).addRange(0xA67F, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA805).addRange(0xA807, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FF).addRange(0xA90A, 0xA92A).addRange(0xA930, 0xA952);\nset.addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9B2).addRange(0xA9B4, 0xA9BF).addRange(0xA9E0, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAABE).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D);\nset.addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7);\nset.addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11045).addRange(0x11071, 0x11075).addRange(0x11082, 0x110B8).addRange(0x110D0, 0x110E8).addRange(0x11100, 0x11132).addRange(0x11144, 0x11147).addRange(0x11150, 0x11172).addRange(0x11180, 0x111BF).addRange(0x111C1, 0x111C4).addRange(0x111CE, 0x111CF).addRange(0x11200, 0x11211).addRange(0x11213, 0x11234).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112E8).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133D, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134C).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11441).addRange(0x11443, 0x11445).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114C1).addRange(0x114C4, 0x114C5);\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115BE).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x1163E).addRange(0x11680, 0x116B5).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172A).addRange(0x11740, 0x11746).addRange(0x11800, 0x11838).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193C).addRange(0x1193F, 0x11942).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119DF).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A32).addRange(0x11A35, 0x11A3E).addRange(0x11A50, 0x11A97).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C3E).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D41).addRange(0x11D46, 0x11D47).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D96).addRange(0x11EE0, 0x11EF6).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E);\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8);\nset.addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x0, 0x10FFFF);\nmodule.exports = set;","const set = require('regenerate')(0x38C, 0x85E, 0x9B2, 0x9D7, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1940, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA7D3, 0xFB3E, 0xFDCF, 0xFEFF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x110CD, 0x11288, 0x11350, 0x11357, 0x11909, 0x11D3A, 0x11FB0, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E2FF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0, 0xE0001);\n\nset.addRange(0x0, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x600, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x82D).addRange(0x830, 0x83E).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0);\nset.addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9);\nset.addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE3A).addRange(0xE3F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5);\nset.addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1736).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A1B).addRange(0x1A1E, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E).addRange(0x1B80, 0x1BF3).addRange(0x1BFC, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CD0, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D);\nset.addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x2000, 0x2064).addRange(0x2066, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x20D0, 0x20F0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3000, 0x303F).addRange(0x3041, 0x3096).addRange(0x3099, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31F0, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1);\nset.addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA82C).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9).addRange(0xA8E0, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAAC2).addRange(0xAADB, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xD800, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFE19).addRange(0xFE20, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE);\nset.addRange(0xFFF9, 0xFFFD).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FD).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E0, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B);\nset.addRange(0x1091F, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F27).addRange(0x10F30, 0x10F59).addRange(0x10F70, 0x10F89).addRange(0x10FB0, 0x10FCB).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075).addRange(0x1107F, 0x110C2).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147).addRange(0x11150, 0x11176).addRange(0x11180, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1123E).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112EA);\nset.addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746).addRange(0x11800, 0x1183B).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4).addRange(0x11A00, 0x11A47).addRange(0x11A50, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06);\nset.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF8).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x1342E).addRange(0x13430, 0x13438).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5).addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C);\nset.addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D1EA).addRange(0x1D200, 0x1D245).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C);\nset.addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD);\nmodule.exports = set;","const set = require('regenerate')(0x61C);\n\nset.addRange(0x200E, 0x200F).addRange(0x202A, 0x202E).addRange(0x2066, 0x2069);\nmodule.exports = set;","const set = require('regenerate')(0x3C, 0x3E, 0x5B, 0x5D, 0x7B, 0x7D, 0xAB, 0xBB, 0x2140, 0x2211, 0x2224, 0x2226, 0x2239, 0x2262, 0x2298, 0x27C0, 0x29B8, 0x29C9, 0x29E1, 0x2A24, 0x2A26, 0x2A29, 0x2ADC, 0x2ADE, 0x2AF3, 0x2AFD, 0x2BFE, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D, 0x1D6DB, 0x1D715, 0x1D74F, 0x1D789, 0x1D7C3);\n\nset.addRange(0x28, 0x29).addRange(0xF3A, 0xF3D).addRange(0x169B, 0x169C).addRange(0x2039, 0x203A).addRange(0x2045, 0x2046).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2201, 0x2204).addRange(0x2208, 0x220D).addRange(0x2215, 0x2216).addRange(0x221A, 0x221D).addRange(0x221F, 0x2222).addRange(0x222B, 0x2233).addRange(0x223B, 0x224C).addRange(0x2252, 0x2255).addRange(0x225F, 0x2260).addRange(0x2264, 0x226B).addRange(0x226E, 0x228C).addRange(0x228F, 0x2292).addRange(0x22A2, 0x22A3).addRange(0x22A6, 0x22B8).addRange(0x22BE, 0x22BF).addRange(0x22C9, 0x22CD).addRange(0x22D0, 0x22D1).addRange(0x22D6, 0x22ED).addRange(0x22F0, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C3, 0x27C6).addRange(0x27C8, 0x27C9).addRange(0x27CB, 0x27CD).addRange(0x27D3, 0x27D6).addRange(0x27DC, 0x27DE).addRange(0x27E2, 0x27EF).addRange(0x2983, 0x2998).addRange(0x299B, 0x29A0).addRange(0x29A2, 0x29AF).addRange(0x29C0, 0x29C5).addRange(0x29CE, 0x29D2).addRange(0x29D4, 0x29D5).addRange(0x29D8, 0x29DC).addRange(0x29E3, 0x29E5).addRange(0x29E8, 0x29E9).addRange(0x29F4, 0x29F9).addRange(0x29FC, 0x29FD).addRange(0x2A0A, 0x2A1C).addRange(0x2A1E, 0x2A21).addRange(0x2A2B, 0x2A2E).addRange(0x2A34, 0x2A35);\nset.addRange(0x2A3C, 0x2A3E).addRange(0x2A57, 0x2A58).addRange(0x2A64, 0x2A65).addRange(0x2A6A, 0x2A6D).addRange(0x2A6F, 0x2A70).addRange(0x2A73, 0x2A74).addRange(0x2A79, 0x2AA3).addRange(0x2AA6, 0x2AAD).addRange(0x2AAF, 0x2AD6).addRange(0x2AE2, 0x2AE6).addRange(0x2AEC, 0x2AEE).addRange(0x2AF7, 0x2AFB).addRange(0x2E02, 0x2E05).addRange(0x2E09, 0x2E0A).addRange(0x2E0C, 0x2E0D).addRange(0x2E1C, 0x2E1D).addRange(0x2E20, 0x2E29).addRange(0x2E55, 0x2E5C).addRange(0x3008, 0x3011).addRange(0x3014, 0x301B).addRange(0xFE59, 0xFE5E).addRange(0xFE64, 0xFE65).addRange(0xFF08, 0xFF09).addRange(0xFF5F, 0xFF60).addRange(0xFF62, 0xFF63);\nmodule.exports = set;","const set = require('regenerate')(0x27, 0x2E, 0x3A, 0x5E, 0x60, 0xA8, 0xAD, 0xAF, 0xB4, 0x37A, 0x387, 0x559, 0x55F, 0x5BF, 0x5C7, 0x5F4, 0x61C, 0x640, 0x670, 0x70F, 0x711, 0x7FA, 0x7FD, 0x888, 0x93A, 0x93C, 0x94D, 0x971, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xEC6, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x10FC, 0x17C6, 0x17D7, 0x17DD, 0x1843, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1AA7, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x1D78, 0x1FBD, 0x2024, 0x2027, 0x2071, 0x207F, 0x2D6F, 0x2D7F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9CF, 0xAA43, 0xAA4C, 0xAA70, 0xAA7C, 0xAAB0, 0xAAC1, 0xAADD, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0xFE13, 0xFE52, 0xFE55, 0xFEFF, 0xFF07, 0xFF0E, 0xFF1A, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110BD, 0x110C2, 0x110CD, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x16F4F, 0x1DA75, 0x1DA84, 0x1E2AE, 0xE0001);\n\nset.addRange(0xB7, 0xB8).addRange(0x2B0, 0x36F).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x600, 0x605).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DD).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x816, 0x82D).addRange(0x859, 0x85B).addRange(0x890, 0x891).addRange(0x898, 0x89F).addRange(0x8C9, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63);\nset.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE46, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180F).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0);\nset.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x200B, 0x200F).addRange(0x2018, 0x2019).addRange(0x202A, 0x202E).addRange(0x2060, 0x2064).addRange(0x2066, 0x206F).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20F0).addRange(0x2C7C, 0x2C7D).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3031, 0x3035).addRange(0x3099, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69C, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xA9E5, 0xA9E6).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xAAF3, 0xAAF4).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B);\nset.addRange(0xFBB2, 0xFBC2).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0xFFF9, 0xFFFB).addRange(0x10376, 0x1037A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B);\nset.addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x13430, 0x13438).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1BC9D, 0x1BC9E).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D173, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nset.addRange(0x1E130, 0x1E13D).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94B).addRange(0x1F3FB, 0x1F3FF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0x10780, 0x1D4A2, 0x1D4BB, 0x1D546);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149);\nset.addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69D).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514);\nset.addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E900, 0x1E943).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x345, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D1).addRange(0x3D5, 0x3D6).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4);\nset.addRange(0x1FB7, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC7, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x1BF, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1D79, 0x1D7D, 0x1D8E, 0x1E9E, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2126, 0x2132, 0x214E, 0x2D27, 0x2D2D, 0xAB53);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x137).addRange(0x139, 0x18C).addRange(0x18E, 0x19A).addRange(0x19C, 0x1A9).addRange(0x1AC, 0x1B9).addRange(0x1BC, 0x1BD).addRange(0x1C4, 0x220).addRange(0x222, 0x233).addRange(0x23A, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3D1).addRange(0x3D5, 0x3F5).addRange(0x3F7, 0x3FB).addRange(0x3FD, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x561, 0x587).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E00, 0x1E9B).addRange(0x1EA0, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC);\nset.addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2C70).addRange(0x2C72, 0x2C73).addRange(0x2C75, 0x2C76).addRange(0x2C7E, 0x2CE3).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA72F).addRange(0xA732, 0xA76F).addRange(0xA779, 0xA787).addRange(0xA78B, 0xA78D).addRange(0xA790, 0xA794).addRange(0xA796, 0xA7AE).addRange(0xA7B0, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D6, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1E900, 0x1E943);\nset;\nmodule.exports = set;","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F88, 0x1F8F).addRange(0x1F98, 0x1F9F).addRange(0x1FA8, 0x1FAF).addRange(0x1FB8, 0x1FBC).addRange(0x1FC8, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFC).addRange(0x212A, 0x212B);\nset.addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921);\nmodule.exports = set;","const set = require('regenerate')(0xA0, 0xA8, 0xAA, 0xAD, 0xAF, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x136, 0x139, 0x13B, 0x13D, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x34F, 0x370, 0x372, 0x374, 0x376, 0x37A, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x61C, 0x9DF, 0xA33, 0xA36, 0xA5E, 0xE33, 0xEB3, 0xF0C, 0xF43, 0xF4D, 0xF52, 0xF57, 0xF5C, 0xF69, 0xF73, 0xF81, 0xF93, 0xF9D, 0xFA2, 0xFA7, 0xFAC, 0xFB9, 0x10C7, 0x10CD, 0x10FC, 0x1D78, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x1F71, 0x1F73, 0x1F75, 0x1F77, 0x1F79, 0x1F7B, 0x1F7D, 0x1FD3, 0x1FE3, 0x2011, 0x2017, 0x203C, 0x203E, 0x2057, 0x20A8, 0x2124, 0x2126, 0x2128, 0x2183, 0x2189, 0x2A0C, 0x2ADC, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0x2D6F, 0x2E9F, 0x2EF3, 0x3000, 0x3036, 0x309F, 0x30FF, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA770, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xAB69, 0xFA10, 0xFA12, 0xFA20, 0xFA22, 0xFB1D, 0xFB3E, 0xFE74, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F190);\n\nset.addRange(0x41, 0x5A).addRange(0xB2, 0xB5).addRange(0xB8, 0xBA).addRange(0xBC, 0xBE).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x132, 0x134).addRange(0x13F, 0x141).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1CD).addRange(0x1F1, 0x1F4).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x2B0, 0x2B8).addRange(0x2D8, 0x2DD).addRange(0x2E0, 0x2E4).addRange(0x340, 0x341).addRange(0x343, 0x345).addRange(0x37E, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D6).addRange(0x3F0, 0x3F2).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x675, 0x678).addRange(0x958, 0x95F).addRange(0x9DC, 0x9DD).addRange(0xA59, 0xA5B).addRange(0xB5C, 0xB5D).addRange(0xEDC, 0xEDD);\nset.addRange(0xF75, 0xF79).addRange(0x10A0, 0x10C5).addRange(0x115F, 0x1160).addRange(0x13F8, 0x13FD).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D2C, 0x1D2E).addRange(0x1D30, 0x1D3A).addRange(0x1D3C, 0x1D4D).addRange(0x1D4F, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4).addRange(0x1FB7, 0x1FC4).addRange(0x1FC7, 0x1FCF).addRange(0x1FD8, 0x1FDB).addRange(0x1FDD, 0x1FDF).addRange(0x1FE8, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFE).addRange(0x2000, 0x200F).addRange(0x2024, 0x2026).addRange(0x202A, 0x202F).addRange(0x2033, 0x2034).addRange(0x2036, 0x2037).addRange(0x2047, 0x2049).addRange(0x205F, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x2100, 0x2103).addRange(0x2105, 0x2107).addRange(0x2109, 0x2113).addRange(0x2115, 0x2116).addRange(0x2119, 0x211D).addRange(0x2120, 0x2122).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213B, 0x2140).addRange(0x2145, 0x2149).addRange(0x2150, 0x217F).addRange(0x222C, 0x222D);\nset.addRange(0x222F, 0x2230).addRange(0x2329, 0x232A).addRange(0x2460, 0x24EA).addRange(0x2A74, 0x2A76).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7C, 0x2C80).addRange(0x2F00, 0x2FD5).addRange(0x3038, 0x303A).addRange(0x309B, 0x309C).addRange(0x3131, 0x318E).addRange(0x3192, 0x319F).addRange(0x3200, 0x321E).addRange(0x3220, 0x3247).addRange(0x3250, 0x327E).addRange(0x3280, 0x33FF).addRange(0xA69C, 0xA69D).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7F2, 0xA7F5).addRange(0xA7F8, 0xA7F9).addRange(0xAB5C, 0xAB5F).addRange(0xAB70, 0xABBF).addRange(0xF900, 0xFA0D).addRange(0xFA15, 0xFA1E).addRange(0xFA25, 0xFA26).addRange(0xFA2A, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFC).addRange(0xFE00, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE72).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7);\nset.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF0, 0xFFF8).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10781, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D15E, 0x1D164).addRange(0x1D173, 0x1D17A).addRange(0x1D1BB, 0x1D1C0).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E900, 0x1E921).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72);\nset.addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F100, 0x1F10A).addRange(0x1F110, 0x1F12E).addRange(0x1F130, 0x1F14F).addRange(0x1F16A, 0x1F16C).addRange(0x1F200, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1FBF0, 0x1FBF9).addRange(0x2F800, 0x2FA1D).addRange(0xE0000, 0xE0FFF);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1C4, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C6, 0x1C7).addRange(0x1C9, 0x1CA).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F1).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4);\nset.addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBC, 0x1FBE, 0x1FCC, 0x1FFC, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C5, 0x1C6).addRange(0x1C8, 0x1C9).addRange(0x1CB, 0x1CC).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x1F2, 0x1F3).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7);\nset.addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2053, 0x207B, 0x208B, 0x2212, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD);\n\nset.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32);\nmodule.exports = set;","const set = require('regenerate')(0xAD, 0x34F, 0x61C, 0x3164, 0xFEFF, 0xFFA0);\n\nset.addRange(0x115F, 0x1160).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0xFE00, 0xFE0F).addRange(0xFFF0, 0xFFF8).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D173, 0x1D17A).addRange(0xE0000, 0xE0FFF);\nmodule.exports = set;","const set = require('regenerate')(0x149, 0x673, 0xF77, 0xF79, 0xE0001);\n\nset.addRange(0x17A3, 0x17A4).addRange(0x206A, 0x206F).addRange(0x2329, 0x232A);\nmodule.exports = set;","const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0x37A, 0x559, 0x5BF, 0x5C4, 0x93C, 0x94D, 0x971, 0x9BC, 0x9CD, 0xA3C, 0xA4D, 0xABC, 0xACD, 0xB3C, 0xB4D, 0xB55, 0xBCD, 0xC3C, 0xC4D, 0xCBC, 0xCCD, 0xD4D, 0xDCA, 0xE4E, 0xEBA, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1037, 0x108F, 0x17DD, 0x1A7F, 0x1B34, 0x1B44, 0x1CED, 0x1CF4, 0x1FBD, 0x2E2F, 0x30FC, 0xA66F, 0xA67F, 0xA8C4, 0xA953, 0xA9B3, 0xA9C0, 0xA9E5, 0xAAF6, 0xFB1E, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x102E0, 0x11046, 0x11070, 0x11173, 0x111C0, 0x1133C, 0x1134D, 0x11442, 0x11446, 0x1163F, 0x1172B, 0x11943, 0x119E0, 0x11A34, 0x11A47, 0x11A99, 0x11C3F, 0x11D42, 0x11D97, 0x1E2AE);\n\nset.addRange(0xB7, 0xB8).addRange(0x2B0, 0x34E).addRange(0x350, 0x357).addRange(0x35D, 0x362).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x487).addRange(0x591, 0x5A1).addRange(0x5A3, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x64B, 0x652).addRange(0x657, 0x658).addRange(0x6DF, 0x6E0).addRange(0x6E5, 0x6E6).addRange(0x6EA, 0x6EC).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x818, 0x819).addRange(0x898, 0x89F).addRange(0x8C9, 0x8D2).addRange(0x8E3, 0x8FE).addRange(0x951, 0x954).addRange(0xAFD, 0xAFF).addRange(0xD3B, 0xD3C).addRange(0xE47, 0xE4C).addRange(0xEC8, 0xECC).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF82, 0xF84).addRange(0xF86, 0xF87).addRange(0x1039, 0x103A).addRange(0x1063, 0x1064).addRange(0x1069, 0x106D).addRange(0x1087, 0x108D).addRange(0x109A, 0x109B).addRange(0x135D, 0x135F).addRange(0x1714, 0x1715).addRange(0x17C9, 0x17D3).addRange(0x1939, 0x193B).addRange(0x1A75, 0x1A7C).addRange(0x1AB0, 0x1ABE).addRange(0x1AC1, 0x1ACB).addRange(0x1B6B, 0x1B73).addRange(0x1BAA, 0x1BAB).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1DC4, 0x1DCF);\nset.addRange(0x1DF5, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x2CEF, 0x2CF1).addRange(0x302A, 0x302F).addRange(0x3099, 0x309C).addRange(0xA67C, 0xA67D).addRange(0xA69C, 0xA69D).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F8, 0xA7F9).addRange(0xA8E0, 0xA8F1).addRange(0xA92B, 0xA92E).addRange(0xAA7B, 0xAA7D).addRange(0xAABF, 0xAAC2).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B).addRange(0xABEC, 0xABED).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10AE5, 0x10AE6).addRange(0x10D22, 0x10D27).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x110B9, 0x110BA).addRange(0x11133, 0x11134).addRange(0x111CA, 0x111CC).addRange(0x11235, 0x11236).addRange(0x112E9, 0x112EA).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x114C2, 0x114C3).addRange(0x115BF, 0x115C0).addRange(0x116B6, 0x116B7).addRange(0x11839, 0x1183A).addRange(0x1193D, 0x1193E).addRange(0x11D44, 0x11D45).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F9F).addRange(0x16FF0, 0x16FF1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE);\nset.addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E946).addRange(0x1E948, 0x1E94A);\nmodule.exports = set;","const set = require('regenerate')(0x23, 0x2A, 0xA9, 0xAE, 0x203C, 0x2049, 0x2122, 0x2139, 0x2328, 0x23CF, 0x24C2, 0x25B6, 0x25C0, 0x260E, 0x2611, 0x2618, 0x261D, 0x2620, 0x2626, 0x262A, 0x2640, 0x2642, 0x2663, 0x2668, 0x267B, 0x2699, 0x26A7, 0x26C8, 0x26D1, 0x26FD, 0x2702, 0x2705, 0x270F, 0x2712, 0x2714, 0x2716, 0x271D, 0x2721, 0x2728, 0x2744, 0x2747, 0x274C, 0x274E, 0x2757, 0x27A1, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x3030, 0x303D, 0x3297, 0x3299, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F21A, 0x1F22F, 0x1F587, 0x1F590, 0x1F5A8, 0x1F5BC, 0x1F5E1, 0x1F5E3, 0x1F5E8, 0x1F5EF, 0x1F5F3, 0x1F6E9, 0x1F6F0, 0x1F7F0);\n\nset.addRange(0x30, 0x39).addRange(0x2194, 0x2199).addRange(0x21A9, 0x21AA).addRange(0x231A, 0x231B).addRange(0x23E9, 0x23F3).addRange(0x23F8, 0x23FA).addRange(0x25AA, 0x25AB).addRange(0x25FB, 0x25FE).addRange(0x2600, 0x2604).addRange(0x2614, 0x2615).addRange(0x2622, 0x2623).addRange(0x262E, 0x262F).addRange(0x2638, 0x263A).addRange(0x2648, 0x2653).addRange(0x265F, 0x2660).addRange(0x2665, 0x2666).addRange(0x267E, 0x267F).addRange(0x2692, 0x2697).addRange(0x269B, 0x269C).addRange(0x26A0, 0x26A1).addRange(0x26AA, 0x26AB).addRange(0x26B0, 0x26B1).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26CE, 0x26CF).addRange(0x26D3, 0x26D4).addRange(0x26E9, 0x26EA).addRange(0x26F0, 0x26F5).addRange(0x26F7, 0x26FA).addRange(0x2708, 0x270D).addRange(0x2733, 0x2734).addRange(0x2753, 0x2755).addRange(0x2763, 0x2764).addRange(0x2795, 0x2797).addRange(0x2934, 0x2935).addRange(0x2B05, 0x2B07).addRange(0x2B1B, 0x2B1C).addRange(0x1F170, 0x1F171).addRange(0x1F17E, 0x1F17F).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F232, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F321).addRange(0x1F324, 0x1F393).addRange(0x1F396, 0x1F397).addRange(0x1F399, 0x1F39B).addRange(0x1F39E, 0x1F3F0).addRange(0x1F3F3, 0x1F3F5).addRange(0x1F3F7, 0x1F4FD);\nset.addRange(0x1F4FF, 0x1F53D).addRange(0x1F549, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F56F, 0x1F570).addRange(0x1F573, 0x1F57A).addRange(0x1F58A, 0x1F58D).addRange(0x1F595, 0x1F596).addRange(0x1F5A4, 0x1F5A5).addRange(0x1F5B1, 0x1F5B2).addRange(0x1F5C2, 0x1F5C4).addRange(0x1F5D1, 0x1F5D3).addRange(0x1F5DC, 0x1F5DE).addRange(0x1F5FA, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6CB, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DD, 0x1F6E5).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F3, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6);\nmodule.exports = set;","const set = require('regenerate')(0x23, 0x2A, 0x200D, 0x20E3, 0xFE0F);\n\nset.addRange(0x30, 0x39).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F3FB, 0x1F3FF).addRange(0x1F9B0, 0x1F9B3).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1F3FB, 0x1F3FF);\nmodule.exports = set;","const set = require('regenerate')(0x261D, 0x26F9, 0x1F385, 0x1F3C7, 0x1F47C, 0x1F48F, 0x1F491, 0x1F4AA, 0x1F57A, 0x1F590, 0x1F6A3, 0x1F6C0, 0x1F6CC, 0x1F90C, 0x1F90F, 0x1F926, 0x1F977, 0x1F9BB);\n\nset.addRange(0x270A, 0x270D).addRange(0x1F3C2, 0x1F3C4).addRange(0x1F3CA, 0x1F3CC).addRange(0x1F442, 0x1F443).addRange(0x1F446, 0x1F450).addRange(0x1F466, 0x1F478).addRange(0x1F481, 0x1F483).addRange(0x1F485, 0x1F487).addRange(0x1F574, 0x1F575).addRange(0x1F595, 0x1F596).addRange(0x1F645, 0x1F647).addRange(0x1F64B, 0x1F64F).addRange(0x1F6B4, 0x1F6B6).addRange(0x1F918, 0x1F91F).addRange(0x1F930, 0x1F939).addRange(0x1F93C, 0x1F93E).addRange(0x1F9B5, 0x1F9B6).addRange(0x1F9B8, 0x1F9B9).addRange(0x1F9CD, 0x1F9CF).addRange(0x1F9D1, 0x1F9DD).addRange(0x1FAC3, 0x1FAC5).addRange(0x1FAF0, 0x1FAF6);\nmodule.exports = set;","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\n\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DD, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6);\nset;\nmodule.exports = set;","const set = require('regenerate')(0xA9, 0xAE, 0x203C, 0x2049, 0x2122, 0x2139, 0x2328, 0x2388, 0x23CF, 0x24C2, 0x25B6, 0x25C0, 0x2714, 0x2716, 0x271D, 0x2721, 0x2728, 0x2744, 0x2747, 0x274C, 0x274E, 0x2757, 0x27A1, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x3030, 0x303D, 0x3297, 0x3299, 0x1F12F, 0x1F18E, 0x1F21A, 0x1F22F);\n\nset.addRange(0x2194, 0x2199).addRange(0x21A9, 0x21AA).addRange(0x231A, 0x231B).addRange(0x23E9, 0x23F3).addRange(0x23F8, 0x23FA).addRange(0x25AA, 0x25AB).addRange(0x25FB, 0x25FE).addRange(0x2600, 0x2605).addRange(0x2607, 0x2612).addRange(0x2614, 0x2685).addRange(0x2690, 0x2705).addRange(0x2708, 0x2712).addRange(0x2733, 0x2734).addRange(0x2753, 0x2755).addRange(0x2763, 0x2767).addRange(0x2795, 0x2797).addRange(0x2934, 0x2935).addRange(0x2B05, 0x2B07).addRange(0x2B1B, 0x2B1C).addRange(0x1F000, 0x1F0FF).addRange(0x1F10D, 0x1F10F).addRange(0x1F16C, 0x1F171).addRange(0x1F17E, 0x1F17F).addRange(0x1F191, 0x1F19A).addRange(0x1F1AD, 0x1F1E5).addRange(0x1F201, 0x1F20F).addRange(0x1F232, 0x1F23A).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F3FA).addRange(0x1F400, 0x1F53D).addRange(0x1F546, 0x1F64F).addRange(0x1F680, 0x1F6FF).addRange(0x1F774, 0x1F77F).addRange(0x1F7D5, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8FF).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1FAFF).addRange(0x1FC00, 0x1FFFD);\nmodule.exports = set;","const set = require('regenerate')(0xB7, 0x640, 0x7FA, 0xB55, 0xE46, 0xEC6, 0x180A, 0x1843, 0x1AA7, 0x1C36, 0x1C7B, 0x3005, 0xA015, 0xA60C, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xFF70, 0x1135D, 0x11A98, 0x16FE3);\n\nset.addRange(0x2D0, 0x2D1).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xAAF3, 0xAAF4).addRange(0x10781, 0x10782).addRange(0x115C6, 0x115C8).addRange(0x16B42, 0x16B43).addRange(0x16FE0, 0x16FE1).addRange(0x1E13C, 0x1E13D).addRange(0x1E944, 0x1E946);\nmodule.exports = set;","const set = require('regenerate')(0x38C, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6DE, 0x6E9, 0x710, 0x7B1, 0x81A, 0x824, 0x828, 0x85E, 0x93B, 0x9B2, 0x9BD, 0x9CE, 0xA03, 0xA5E, 0xA76, 0xA83, 0xAC9, 0xAD0, 0xAF9, 0xB3D, 0xB40, 0xB83, 0xB9C, 0xBBF, 0xBD0, 0xC3D, 0xC5D, 0xD3D, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF36, 0xF38, 0xF7F, 0xF85, 0x1031, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1715, 0x17B6, 0x18AA, 0x1940, 0x1A57, 0x1A61, 0x1B3B, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CD3, 0x1CE1, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA673, 0xA7D3, 0xAA4D, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFDCF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x10EAD, 0x11000, 0x11075, 0x1112C, 0x11235, 0x11288, 0x1133D, 0x1133F, 0x11350, 0x11445, 0x1145D, 0x114B9, 0x114BE, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1183B, 0x11909, 0x1193D, 0x11A00, 0x11A50, 0x11A97, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D46, 0x11D96, 0x11D98, 0x11FB0, 0x16AF5, 0x1BC9C, 0x1BC9F, 0x1D166, 0x1D245, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E2FF, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0);\n\nset.addRange(0x20, 0x7E).addRange(0xA0, 0xAC).addRange(0xAE, 0x2FF).addRange(0x370, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x482).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x606, 0x60F).addRange(0x61D, 0x64A).addRange(0x660, 0x66F).addRange(0x671, 0x6D5).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x70D).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7C0, 0x7EA).addRange(0x7F4, 0x7FA).addRange(0x7FE, 0x815).addRange(0x830, 0x83E).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x903, 0x939).addRange(0x93D, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x950).addRange(0x958, 0x961).addRange(0x964, 0x980).addRange(0x982, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BF, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9E6, 0x9FD).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28);\nset.addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA40).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA6F).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC0).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE1).addRange(0xAE6, 0xAF1).addRange(0xB02, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB66, 0xB77).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xBE6, 0xBFA).addRange(0xC01, 0xC03).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC41, 0xC44).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC66, 0xC6F);\nset.addRange(0xC77, 0xC80).addRange(0xC82, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCBE).addRange(0xCC0, 0xCC1).addRange(0xCC3, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD02, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3F, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD4E, 0xD4F).addRange(0xD54, 0xD56).addRange(0xD58, 0xD61).addRange(0xD66, 0xD7F).addRange(0xD82, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDD0, 0xDD1).addRange(0xDD8, 0xDDE).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE3F, 0xE46).addRange(0xE4F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF17).addRange(0xF1A, 0xF34).addRange(0xF3A, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C);\nset.addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x102C).addRange(0x103B, 0x103C).addRange(0x103F, 0x1057).addRange(0x105A, 0x105D).addRange(0x1061, 0x1070).addRange(0x1075, 0x1081).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x108E, 0x109C).addRange(0x109E, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1360, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1734, 0x1736).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x17D4, 0x17DC).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x180A).addRange(0x1810, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5);\nset.addRange(0x1900, 0x191E).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A16).addRange(0x1A19, 0x1A1A).addRange(0x1A1E, 0x1A55).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1B04, 0x1B33).addRange(0x1B3D, 0x1B41).addRange(0x1B43, 0x1B4C).addRange(0x1B50, 0x1B6A).addRange(0x1B74, 0x1B7E).addRange(0x1B82, 0x1BA1).addRange(0x1BA6, 0x1BA7).addRange(0x1BAE, 0x1BE5).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1BFC, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE);\nset.addRange(0x2000, 0x200A).addRange(0x2010, 0x2027).addRange(0x202F, 0x205F).addRange(0x2070, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2E00, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3000, 0x3029).addRange(0x3030, 0x303F).addRange(0x3041, 0x3096).addRange(0x309B, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31F0, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67E, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA6F2, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805);\nset.addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA824).addRange(0xA827, 0xA82B).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C3).addRange(0xA8CE, 0xA8D9).addRange(0xA8F2, 0xA8FE).addRange(0xA900, 0xA925).addRange(0xA92E, 0xA946).addRange(0xA952, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA983, 0xA9B2).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9E4).addRange(0xA9E6, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA7B).addRange(0xAA7D, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAAEB).addRange(0xAAEE, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEC).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41);\nset.addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E1, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595);\nset.addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A00).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A40, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE4).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D23).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F27).addRange(0x10F30, 0x10F45).addRange(0x10F51, 0x10F59).addRange(0x10F70, 0x10F81).addRange(0x10F86, 0x10F89).addRange(0x10FB0, 0x10FCB);\nset.addRange(0x10FE0, 0x10FF6).addRange(0x11002, 0x11037).addRange(0x11047, 0x1104D).addRange(0x11052, 0x1106F).addRange(0x11071, 0x11072).addRange(0x11082, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11103, 0x11126).addRange(0x11136, 0x11147).addRange(0x11150, 0x11172).addRange(0x11174, 0x11176).addRange(0x11182, 0x111B5).addRange(0x111BF, 0x111C8).addRange(0x111CD, 0x111CE).addRange(0x111D0, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122E).addRange(0x11232, 0x11233).addRange(0x11238, 0x1123D).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112DE).addRange(0x112E0, 0x112E2).addRange(0x112F0, 0x112F9).addRange(0x11302, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11437).addRange(0x11440, 0x11441).addRange(0x11447, 0x1145B).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114B1, 0x114B2).addRange(0x114BB, 0x114BC).addRange(0x114C4, 0x114C7).addRange(0x114D0, 0x114D9);\nset.addRange(0x11580, 0x115AE).addRange(0x115B0, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x115C1, 0x115DB).addRange(0x11600, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x11641, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116AA).addRange(0x116AE, 0x116AF).addRange(0x116B8, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x11720, 0x11721).addRange(0x11730, 0x11746).addRange(0x11800, 0x1182E).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x11931, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193F, 0x11942).addRange(0x11944, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x119E1, 0x119E4).addRange(0x11A0B, 0x11A32).addRange(0x11A39, 0x11A3A).addRange(0x11A3F, 0x11A46).addRange(0x11A57, 0x11A58).addRange(0x11A5C, 0x11A89).addRange(0x11A9A, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2F).addRange(0x11C40, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D93, 0x11D94);\nset.addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF2).addRange(0x11EF5, 0x11EF8).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B37, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F50, 0x16F87).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16D).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA);\nset.addRange(0x1D200, 0x1D241).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA8B).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E900, 0x1E943).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F);\nset.addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF);\nset.addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9BE, 0x9CD, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB4D, 0xB82, 0xBBE, 0xBC0, 0xBCD, 0xBD7, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC2, 0xCC6, 0xD3E, 0xD4D, 0xD57, 0xD81, 0xDCA, 0xDCF, 0xDD6, 0xDDF, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x200C, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x112DF, 0x1133E, 0x11340, 0x11357, 0x11446, 0x1145E, 0x114B0, 0x114BA, 0x114BD, 0x115AF, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x11930, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x16F4F, 0x16FE4, 0x1D165, 0x1DA75, 0x1DA84, 0x1E2AE);\n\nset.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB3E, 0xB3F).addRange(0xB41, 0xB44).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C);\nset.addRange(0xD41, 0xD44).addRange(0xD62, 0xD63).addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B34, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2);\nset.addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE);\nset.addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D);\nset.addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16E, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x46).addRange(0x61, 0x66).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF26).addRange(0xFF41, 0xFF46);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2FF0, 0x2FF1).addRange(0x2FF4, 0x2FFB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2FF2, 0x2FF3);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x1123E, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD);\nset.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9);\nset.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9);\nset.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0);\nset.addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7).addRange(0xA8FD, 0xA92D);\nset.addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7);\nset.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7);\nset.addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310);\nset.addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09);\nset.addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E);\nset.addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9);\nset.addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x16FE3, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8);\nset.addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96);\nset.addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309B, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42);\nset.addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C);\nset.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48);\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0);\nset.addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9);\nset.addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738);\nset.addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x16FE4);\n\nset.addRange(0x3006, 0x3007).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B170, 0x1B2FB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x200C, 0x200D);\nmodule.exports = set;","const set = require('regenerate')(0x19BA, 0xAAB9);\n\nset.addRange(0xE40, 0xE44).addRange(0xEC0, 0xEC4).addRange(0x19B5, 0x19B7).addRange(0xAAB5, 0xAAB6).addRange(0xAABB, 0xAABC);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x2071, 0x207F, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0x10780, 0x1D4BB, 0x1D7CB);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x37A, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1DBF).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7);\nset.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2090, 0x209C).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7D).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA69B, 0xA69D).addRange(0xA72F, 0xA731).addRange(0xA76F, 0xA778).addRange(0xA793, 0xA795).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607);\nset.addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x2B, 0x5E, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3D5, 0x2016, 0x2040, 0x2044, 0x2052, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x214B, 0x21DD, 0x237C, 0x23B7, 0x23D0, 0x25E2, 0x25E4, 0x2640, 0x2642, 0xFB29, 0xFE68, 0xFF0B, 0xFF3C, 0xFF3E, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x3C, 0x3E).addRange(0x3D0, 0x3D2).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F6).addRange(0x606, 0x608).addRange(0x2032, 0x2034).addRange(0x2061, 0x2064).addRange(0x207A, 0x207E).addRange(0x208A, 0x208E).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20E6).addRange(0x20EB, 0x20EF).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x2128, 0x2129).addRange(0x212C, 0x212D).addRange(0x212F, 0x2131).addRange(0x2133, 0x2138).addRange(0x213C, 0x2149).addRange(0x2190, 0x21A7).addRange(0x21A9, 0x21AE).addRange(0x21B0, 0x21B1).addRange(0x21B6, 0x21B7).addRange(0x21BC, 0x21DB).addRange(0x21E4, 0x21E5).addRange(0x21F4, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B5).addRange(0x23DC, 0x23E2).addRange(0x25A0, 0x25A1).addRange(0x25AE, 0x25B7).addRange(0x25BC, 0x25C1).addRange(0x25C6, 0x25C7).addRange(0x25CA, 0x25CB).addRange(0x25CF, 0x25D3).addRange(0x25E7, 0x25EC).addRange(0x25F8, 0x25FF).addRange(0x2605, 0x2606).addRange(0x2660, 0x2663).addRange(0x266D, 0x266F).addRange(0x27C0, 0x27FF).addRange(0x2900, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE61, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F);\nset.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xFDD0, 0xFDEF).addRange(0xFFFE, 0xFFFF).addRange(0x1FFFE, 0x1FFFF).addRange(0x2FFFE, 0x2FFFF).addRange(0x3FFFE, 0x3FFFF).addRange(0x4FFFE, 0x4FFFF).addRange(0x5FFFE, 0x5FFFF).addRange(0x6FFFE, 0x6FFFF).addRange(0x7FFFE, 0x7FFFF).addRange(0x8FFFE, 0x8FFFF).addRange(0x9FFFE, 0x9FFFF).addRange(0xAFFFE, 0xAFFFF).addRange(0xBFFFE, 0xBFFFF).addRange(0xCFFFE, 0xCFFFF).addRange(0xDFFFE, 0xDFFFF).addRange(0xEFFFE, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF);\nmodule.exports = set;","const set = require('regenerate')(0x60, 0xA9, 0xAE, 0xB6, 0xBB, 0xBF, 0xD7, 0xF7, 0x3030);\n\nset.addRange(0x21, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0x7E).addRange(0xA1, 0xA7).addRange(0xAB, 0xAC).addRange(0xB0, 0xB1).addRange(0x2010, 0x2027).addRange(0x2030, 0x203E).addRange(0x2041, 0x2053).addRange(0x2055, 0x205E).addRange(0x2190, 0x245F).addRange(0x2500, 0x2775).addRange(0x2794, 0x2BFF).addRange(0x2E00, 0x2E7F).addRange(0x3001, 0x3003).addRange(0x3008, 0x3020).addRange(0xFD3E, 0xFD3F).addRange(0xFE45, 0xFE46);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0x85);\n\nset.addRange(0x9, 0xD).addRange(0x200E, 0x200F).addRange(0x2028, 0x2029);\nmodule.exports = set;","const set = require('regenerate')(0x22, 0x27, 0xAB, 0xBB, 0x2E42, 0xFF02, 0xFF07);\n\nset.addRange(0x2018, 0x201F).addRange(0x2039, 0x203A).addRange(0x300C, 0x300F).addRange(0x301D, 0x301F).addRange(0xFE41, 0xFE44).addRange(0xFF62, 0xFF63);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1F1E6, 0x1F1FF);\nmodule.exports = set;","const set = require('regenerate')(0x21, 0x2E, 0x3F, 0x589, 0x6D4, 0x7F9, 0x837, 0x839, 0x1362, 0x166E, 0x1803, 0x1809, 0x2E2E, 0x2E3C, 0x3002, 0xA4FF, 0xA6F3, 0xA6F7, 0xA92F, 0xABEB, 0xFE52, 0xFF01, 0xFF0E, 0xFF1F, 0xFF61, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x16AF5, 0x16B44, 0x16E98, 0x1BC9F, 0x1DA88);\n\nset.addRange(0x61D, 0x61F).addRange(0x700, 0x702).addRange(0x83D, 0x83E).addRange(0x964, 0x965).addRange(0x104A, 0x104B).addRange(0x1367, 0x1368).addRange(0x1735, 0x1736).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5E, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3C).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E53, 0x2E54).addRange(0xA60E, 0xA60F).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C8, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE56, 0xFE57).addRange(0x10A56, 0x10A57).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x11048).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x11239).addRange(0x1123B, 0x1123C).addRange(0x1144B, 0x1144C).addRange(0x115C2, 0x115C3).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11C41, 0x11C42).addRange(0x11EF7, 0x11EF8).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B38);\nmodule.exports = set;","const set = require('regenerate')(0x12F, 0x249, 0x268, 0x29D, 0x2B2, 0x3F3, 0x456, 0x458, 0x1D62, 0x1D96, 0x1DA4, 0x1DA8, 0x1E2D, 0x1ECB, 0x2071, 0x2C7C, 0x1DF1A);\n\nset.addRange(0x69, 0x6A).addRange(0x2148, 0x2149).addRange(0x1D422, 0x1D423).addRange(0x1D456, 0x1D457).addRange(0x1D48A, 0x1D48B).addRange(0x1D4BE, 0x1D4BF).addRange(0x1D4F2, 0x1D4F3).addRange(0x1D526, 0x1D527).addRange(0x1D55A, 0x1D55B).addRange(0x1D58E, 0x1D58F).addRange(0x1D5C2, 0x1D5C3).addRange(0x1D5F6, 0x1D5F7).addRange(0x1D62A, 0x1D62B).addRange(0x1D65E, 0x1D65F).addRange(0x1D692, 0x1D693);\nmodule.exports = set;","const set = require('regenerate')(0x21, 0x2C, 0x2E, 0x3F, 0x37E, 0x387, 0x589, 0x5C3, 0x60C, 0x61B, 0x6D4, 0x70C, 0x85E, 0xF08, 0x166E, 0x17DA, 0x2E2E, 0x2E3C, 0x2E41, 0x2E4C, 0xA92F, 0xAADF, 0xABEB, 0xFF01, 0xFF0C, 0xFF0E, 0xFF1F, 0xFF61, 0xFF64, 0x1039F, 0x103D0, 0x10857, 0x1091F, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x11C71, 0x16AF5, 0x16B44, 0x1BC9F);\n\nset.addRange(0x3A, 0x3B).addRange(0x61D, 0x61F).addRange(0x700, 0x70A).addRange(0x7F8, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF0D, 0xF12).addRange(0x104A, 0x104B).addRange(0x1361, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x1802, 0x1805).addRange(0x1808, 0x1809).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5D, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E4E, 0x2E4F).addRange(0x2E53, 0x2E54).addRange(0x3001, 0x3002).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F3, 0xA6F7).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C7, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFF1A, 0xFF1B).addRange(0x10A56, 0x10A57).addRange(0x10AF0, 0x10AF5).addRange(0x10B3A, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x1123C).addRange(0x1144B, 0x1144D);\nset.addRange(0x1145A, 0x1145B).addRange(0x115C2, 0x115C5).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11AA1, 0x11AA2).addRange(0x11C41, 0x11C43).addRange(0x11EF7, 0x11EF8).addRange(0x12470, 0x12474).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B39).addRange(0x16E97, 0x16E98).addRange(0x1DA87, 0x1DA8A);\nmodule.exports = set;","const set = require('regenerate')(0xFA11, 0xFA1F, 0xFA21);\n\nset.addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xFA0E, 0xFA0F).addRange(0xFA13, 0xFA14).addRange(0xFA23, 0xFA24).addRange(0xFA27, 0xFA29).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2160, 0x216F);\nset.addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189);\nmodule.exports = set;","const set = require('regenerate')(0x180F);\n\nset.addRange(0x180B, 0x180D).addRange(0xFE00, 0xFE0F).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0x85, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\n\nset.addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x1123E, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD);\nset.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9);\nset.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9);\nset.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0);\nset.addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309A).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7);\nset.addRange(0xA8FD, 0xA92D).addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE7F, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE);\nset.addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939);\nset.addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C);\nset.addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06);\nset.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99);\nset.addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE);\nset.addRange(0x1E2C0, 0x1E2F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE32, 0xE84, 0xEA5, 0xEB2, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x16FE3, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E);\nset.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE);\nset.addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76);\nset.addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE7F, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0);\nset.addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2);\nset.addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32);\nset.addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3);\nset.addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D);\nset.addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0xA7FA, 0x1D4A2, 0x1D4BB, 0x1D546);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2AF).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184);\nset.addRange(0x2C00, 0x2C7B).addRange(0x2C7E, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA76F).addRange(0xA771, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550);\nset.addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E900, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x29, 0x5D, 0x7D, 0xF3B, 0xF3D, 0x169C, 0x2046, 0x207E, 0x208E, 0x2309, 0x230B, 0x232A, 0x2769, 0x276B, 0x276D, 0x276F, 0x2771, 0x2773, 0x2775, 0x27C6, 0x27E7, 0x27E9, 0x27EB, 0x27ED, 0x27EF, 0x2984, 0x2986, 0x2988, 0x298A, 0x298C, 0x298E, 0x2990, 0x2992, 0x2994, 0x2996, 0x2998, 0x29D9, 0x29DB, 0x29FD, 0x2E23, 0x2E25, 0x2E27, 0x2E29, 0x2E56, 0x2E58, 0x2E5A, 0x2E5C, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, 0x3017, 0x3019, 0x301B, 0xFD3E, 0xFE18, 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48, 0xFE5A, 0xFE5C, 0xFE5E, 0xFF09, 0xFF3D, 0xFF5D, 0xFF60, 0xFF63);\n\nset.addRange(0x301E, 0x301F);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0x2054, 0xFF3F);\n\nset.addRange(0x203F, 0x2040).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x0, 0x1F).addRange(0x7F, 0x9F);\nmodule.exports = set;","const set = require('regenerate')(0x24, 0x58F, 0x60B, 0x9FB, 0xAF1, 0xBF9, 0xE3F, 0x17DB, 0xA838, 0xFDFC, 0xFE69, 0xFF04, 0x1E2FF, 0x1ECB0);\n\nset.addRange(0xA2, 0xA5).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x20A0, 0x20C0).addRange(0xFFE0, 0xFFE1).addRange(0xFFE5, 0xFFE6).addRange(0x11FDD, 0x11FE0);\nmodule.exports = set;","const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD);\n\nset.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x30, 0x39).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xBE6, 0xBEF).addRange(0xC66, 0xC6F).addRange(0xCE6, 0xCEF).addRange(0xD66, 0xD6F).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF29).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x17E0, 0x17E9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19D9).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0xA620, 0xA629).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x104A0, 0x104A9).addRange(0x10D30, 0x10D39).addRange(0x11066, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x11739).addRange(0x118E0, 0x118E9).addRange(0x11950, 0x11959);\nset.addRange(0x11C50, 0x11C59).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E950, 0x1E959).addRange(0x1FBF0, 0x1FBF9);\nmodule.exports = set;","const set = require('regenerate')(0x1ABE);\n\nset.addRange(0x488, 0x489).addRange(0x20DD, 0x20E0).addRange(0x20E2, 0x20E4).addRange(0xA670, 0xA672);\nmodule.exports = set;","const set = require('regenerate')(0xBB, 0x2019, 0x201D, 0x203A, 0x2E03, 0x2E05, 0x2E0A, 0x2E0D, 0x2E1D, 0x2E21);\n\nmodule.exports = set;","const set = require('regenerate')(0xAD, 0x61C, 0x6DD, 0x70F, 0x8E2, 0x180E, 0xFEFF, 0x110BD, 0x110CD, 0xE0001);\n\nset.addRange(0x600, 0x605).addRange(0x890, 0x891).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x2064).addRange(0x2066, 0x206F).addRange(0xFFF9, 0xFFFB).addRange(0x13430, 0x13438).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D173, 0x1D17A).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')(0xAB, 0x2018, 0x201F, 0x2039, 0x2E02, 0x2E04, 0x2E09, 0x2E0C, 0x2E1C, 0x2E20);\n\nset.addRange(0x201B, 0x201C);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x16FE3, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884);\nset.addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25);\nset.addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3006).addRange(0x3031, 0x3035).addRange(0x303B, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6E5).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28);\nset.addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C);\nset.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48);\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0);\nset.addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3);\nset.addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D);\nset.addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x3007, 0x10341, 0x1034A);\n\nset.addRange(0x16EE, 0x16F0).addRange(0x2160, 0x2182).addRange(0x2185, 0x2188).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0xA6E6, 0xA6EF).addRange(0x10140, 0x10174).addRange(0x103D1, 0x103D5).addRange(0x12400, 0x1246E);\nmodule.exports = set;","const set = require('regenerate')(0x2028);\n\nmodule.exports = set;","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0xA7FA, 0x1D4BB, 0x1D7CB);\n\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2AF).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7);\nset.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7B).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA72F, 0xA731).addRange(0xA771, 0xA778).addRange(0xA793, 0xA795).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E);\nset.addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1E922, 0x1E943);\nmodule.exports = set;","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x9BC, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xB3C, 0xB82, 0xBD7, 0xC3C, 0xCBC, 0xD57, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x108F, 0x17DD, 0x180F, 0x18A9, 0x1A7F, 0x1CED, 0x1CF4, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9E5, 0xAA43, 0xAAB0, 0xAAC1, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11070, 0x110C2, 0x11173, 0x1123E, 0x11357, 0x1145E, 0x11940, 0x119E4, 0x11A47, 0x11D3A, 0x11D47, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E2AE);\n\nset.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x903).addRange(0x93A, 0x93C).addRange(0x93E, 0x94F).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x981, 0x983).addRange(0x9BE, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CD).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA03).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA83).addRange(0xABE, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB3E, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD);\nset.addRange(0xC00, 0xC04).addRange(0xC3E, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xC81, 0xC83).addRange(0xCBE, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD03).addRange(0xD3B, 0xD3C).addRange(0xD3E, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4D).addRange(0xD62, 0xD63).addRange(0xD81, 0xD83).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF71, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102B, 0x103E).addRange(0x1056, 0x1059).addRange(0x105E, 0x1060).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1071, 0x1074).addRange(0x1082, 0x108D).addRange(0x109A, 0x109D).addRange(0x135D, 0x135F).addRange(0x1712, 0x1715).addRange(0x1732, 0x1734).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1A17, 0x1A1B);\nset.addRange(0x1A55, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B04).addRange(0x1B34, 0x1B44).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B82).addRange(0x1BA1, 0x1BAD).addRange(0x1BE6, 0x1BF3).addRange(0x1C24, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA823, 0xA827).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA953).addRange(0xA980, 0xA983).addRange(0xA9B3, 0xA9C0).addRange(0xAA29, 0xAA36).addRange(0xAA4C, 0xAA4D).addRange(0xAA7B, 0xAA7D).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEB, 0xAAEF).addRange(0xAAF5, 0xAAF6).addRange(0xABE3, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC);\nset.addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11000, 0x11002).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11082).addRange(0x110B0, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x11134).addRange(0x11145, 0x11146).addRange(0x11180, 0x11182).addRange(0x111B3, 0x111C0).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111CF).addRange(0x1122C, 0x11237).addRange(0x112DF, 0x112EA).addRange(0x11300, 0x11303).addRange(0x1133B, 0x1133C).addRange(0x1133E, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11435, 0x11446).addRange(0x114B0, 0x114C3).addRange(0x115AF, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11630, 0x11640).addRange(0x116AB, 0x116B7).addRange(0x1171D, 0x1172B).addRange(0x1182C, 0x1183A).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193E).addRange(0x11942, 0x11943).addRange(0x119D1, 0x119D7).addRange(0x119DA, 0x119E0).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A39).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A5B).addRange(0x11A8A, 0x11A99).addRange(0x11C2F, 0x11C36).addRange(0x11C38, 0x11C3F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45);\nset.addRange(0x11D8A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D97).addRange(0x11EF3, 0x11EF6).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F51, 0x16F87).addRange(0x16F8F, 0x16F92).addRange(0x16FF0, 0x16FF1).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0x2B, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3F6, 0x2044, 0x2052, 0x2118, 0x214B, 0x21A0, 0x21A3, 0x21A6, 0x21AE, 0x21D2, 0x21D4, 0x237C, 0x25B7, 0x25C1, 0x266F, 0xFB29, 0xFE62, 0xFF0B, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3);\n\nset.addRange(0x3C, 0x3E).addRange(0x606, 0x608).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x2140, 0x2144).addRange(0x2190, 0x2194).addRange(0x219A, 0x219B).addRange(0x21CE, 0x21CF).addRange(0x21F4, 0x22FF).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B3).addRange(0x23DC, 0x23E1).addRange(0x25F8, 0x25FF).addRange(0x27C0, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x27FF).addRange(0x2900, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')(0x2EC, 0x2EE, 0x374, 0x37A, 0x559, 0x640, 0x7FA, 0x81A, 0x824, 0x828, 0x8C9, 0x971, 0xE46, 0xEC6, 0x10FC, 0x17D7, 0x1843, 0x1AA7, 0x1D78, 0x2071, 0x207F, 0x2D6F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA788, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xAB69, 0xFF70, 0x16FE3, 0x1E94B);\n\nset.addRange(0x2B0, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x6E5, 0x6E6).addRange(0x7F4, 0x7F5).addRange(0x1C78, 0x1C7D).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x2090, 0x209C).addRange(0x2C7C, 0x2C7D).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA69C, 0xA69D).addRange(0xA717, 0xA71F).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xAAF3, 0xAAF4).addRange(0xAB5C, 0xAB5F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x16B40, 0x16B43).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1E137, 0x1E13D);\nmodule.exports = set;","const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0xB8, 0x2ED, 0x375, 0x888, 0x1FBD, 0xAB5B, 0xFF3E, 0xFF40, 0xFFE3);\n\nset.addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x309B, 0x309C).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0x1F3FB, 0x1F3FF);\nmodule.exports = set;","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x20E1, 0x2D7F, 0xA66F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E2AE);\n\nset.addRange(0x300, 0x36F).addRange(0x483, 0x487).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63);\nset.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECD).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0);\nset.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231);\nset.addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169);\nset.addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')(0xB9, 0x2070, 0x2CFD, 0x3007, 0x10341, 0x1034A);\n\nset.addRange(0x30, 0x39).addRange(0xB2, 0xB3).addRange(0xBC, 0xBE).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0x9F4, 0x9F9).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xB72, 0xB77).addRange(0xBE6, 0xBF2).addRange(0xC66, 0xC6F).addRange(0xC78, 0xC7E).addRange(0xCE6, 0xCEF).addRange(0xD58, 0xD5E).addRange(0xD66, 0xD78).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF33).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x1369, 0x137C).addRange(0x16EE, 0x16F0).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19DA).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0x2074, 0x2079).addRange(0x2080, 0x2089).addRange(0x2150, 0x2182).addRange(0x2185, 0x2189).addRange(0x2460, 0x249B).addRange(0x24EA, 0x24FF).addRange(0x2776, 0x2793).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3192, 0x3195).addRange(0x3220, 0x3229).addRange(0x3248, 0x324F).addRange(0x3251, 0x325F);\nset.addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA620, 0xA629).addRange(0xA6E6, 0xA6EF).addRange(0xA830, 0xA835).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x10107, 0x10133).addRange(0x10140, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x103D1, 0x103D5).addRange(0x104A0, 0x104A9).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x111E1, 0x111F4).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x1173B);\nset.addRange(0x118E0, 0x118F2).addRange(0x11950, 0x11959).addRange(0x11C50, 0x11C6C).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11FC0, 0x11FD4).addRange(0x12400, 0x1246E).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16E80, 0x16E96).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E950, 0x1E959).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C).addRange(0x1FBF0, 0x1FBF9);\nmodule.exports = set;","const set = require('regenerate')(0x28, 0x5B, 0x7B, 0xF3A, 0xF3C, 0x169B, 0x201A, 0x201E, 0x2045, 0x207D, 0x208D, 0x2308, 0x230A, 0x2329, 0x2768, 0x276A, 0x276C, 0x276E, 0x2770, 0x2772, 0x2774, 0x27C5, 0x27E6, 0x27E8, 0x27EA, 0x27EC, 0x27EE, 0x2983, 0x2985, 0x2987, 0x2989, 0x298B, 0x298D, 0x298F, 0x2991, 0x2993, 0x2995, 0x2997, 0x29D8, 0x29DA, 0x29FC, 0x2E22, 0x2E24, 0x2E26, 0x2E28, 0x2E42, 0x2E55, 0x2E57, 0x2E59, 0x2E5B, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016, 0x3018, 0x301A, 0x301D, 0xFD3F, 0xFE17, 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47, 0xFE59, 0xFE5B, 0xFE5D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62);\n\nmodule.exports = set;","const set = require('regenerate')(0xAD, 0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x61C, 0x6DD, 0x83F, 0x85F, 0x8E2, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x180E, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x110BD, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FB93);\n\nset.addRange(0x0, 0x1F).addRange(0x7F, 0x9F).addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x605).addRange(0x70E, 0x70F).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x88F, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D);\nset.addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7).addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF3, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xECE, 0xECF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF);\nset.addRange(0x169D, 0x169F).addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E).addRange(0x1737, 0x173F).addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F);\nset.addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x2FFC, 0x2FFF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EF).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xF8FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF);\nset.addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFF00).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFFB).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E);\nset.addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F).addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77).addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFF).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x1123F, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F);\nset.addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x1342F, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF);\nset.addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B14F).addRange(0x1B153, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA0, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D173, 0x1D17A).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26);\nset.addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DC).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F774, 0x1F77F).addRange(0x1F7D9, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA75, 0x1FA77).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA87, 0x1FA8F).addRange(0x1FAAD, 0x1FAAF).addRange(0x1FABB, 0x1FABF).addRange(0x1FAC6, 0x1FACF).addRange(0x1FADA, 0x1FADF).addRange(0x1FAE8, 0x1FAEF).addRange(0x1FAF7, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B739, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0xE00FF).addRange(0xE01F0, 0x10FFFF);\nset;\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xBA, 0x1BB, 0x294, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xF00, 0x103F, 0x1061, 0x108E, 0x1258, 0x12C0, 0x17DC, 0x18AA, 0x1CFA, 0x3006, 0x303C, 0x309F, 0x30FF, 0xA66E, 0xA78F, 0xA7F7, 0xA8FB, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xAAF2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11FB0, 0x16F50, 0x1DF0A, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x1C0, 0x1C3).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C8).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x972, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39);\nset.addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE45).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066);\nset.addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x1100, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1842).addRange(0x1844, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C77).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6);\nset.addRange(0x2135, 0x2138).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3041, 0x3096).addRange(0x30A1, 0x30FA).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA014).addRange(0xA016, 0xA48C).addRange(0xA4D0, 0xA4F7).addRange(0xA500, 0xA60B).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA6A0, 0xA6E5).addRange(0xA7FB, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E7, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA6F).addRange(0xAA71, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADC).addRange(0xAAE0, 0xAAEA).addRange(0xAB01, 0xAB06);\nset.addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xABC0, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10450, 0x1049D).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nset.addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330);\nset.addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342E).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16F00, 0x16F4A).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B000, 0x1B122);\nset.addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1E100, 0x1E12C).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0xB9, 0x19DA, 0x2070, 0x2189, 0x2CFD);\n\nset.addRange(0xB2, 0xB3).addRange(0xBC, 0xBE).addRange(0x9F4, 0x9F9).addRange(0xB72, 0xB77).addRange(0xBF0, 0xBF2).addRange(0xC78, 0xC7E).addRange(0xD58, 0xD5E).addRange(0xD70, 0xD78).addRange(0xF2A, 0xF33).addRange(0x1369, 0x137C).addRange(0x17F0, 0x17F9).addRange(0x2074, 0x2079).addRange(0x2080, 0x2089).addRange(0x2150, 0x215F).addRange(0x2460, 0x249B).addRange(0x24EA, 0x24FF).addRange(0x2776, 0x2793).addRange(0x3192, 0x3195).addRange(0x3220, 0x3229).addRange(0x3248, 0x324F).addRange(0x3251, 0x325F).addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA830, 0xA835).addRange(0x10107, 0x10133).addRange(0x10175, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x11065).addRange(0x111E1, 0x111F4);\nset.addRange(0x1173A, 0x1173B).addRange(0x118EA, 0x118F2).addRange(0x11C5A, 0x11C6C).addRange(0x11FC0, 0x11FD4).addRange(0x16B5B, 0x16B61).addRange(0x16E80, 0x16E96).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1E8C7, 0x1E8CF).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C);\nmodule.exports = set;","const set = require('regenerate')(0x2A, 0x2C, 0x5C, 0xA1, 0xA7, 0xBF, 0x37E, 0x387, 0x589, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x166E, 0x1CD3, 0x2053, 0x2D70, 0x2E0B, 0x2E1B, 0x2E41, 0x303D, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE19, 0xFE30, 0xFE68, 0xFF0A, 0xFF0C, 0xFF3C, 0xFF61, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F);\n\nset.addRange(0x21, 0x23).addRange(0x25, 0x27).addRange(0x2E, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x1805).addRange(0x1807, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2016, 0x2017).addRange(0x2020, 0x2027).addRange(0x2030, 0x2038).addRange(0x203B, 0x203E).addRange(0x2041, 0x2043).addRange(0x2047, 0x2051).addRange(0x2055, 0x205E).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E01).addRange(0x2E06, 0x2E08).addRange(0x2E0E, 0x2E16).addRange(0x2E18, 0x2E19);\nset.addRange(0x2E1E, 0x2E1F).addRange(0x2E2A, 0x2E2E).addRange(0x2E30, 0x2E39).addRange(0x2E3C, 0x2E3F).addRange(0x2E43, 0x2E4F).addRange(0x2E52, 0x2E54).addRange(0x3001, 0x3003).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFE10, 0xFE16).addRange(0xFE45, 0xFE46).addRange(0xFE49, 0xFE4C).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFE5F, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF07).addRange(0xFF0E, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF64, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D).addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643);\nset.addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')(0xA6, 0xA9, 0xAE, 0xB0, 0x482, 0x6DE, 0x6E9, 0x7F6, 0x9FA, 0xB70, 0xBFA, 0xC7F, 0xD4F, 0xD79, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x1940, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214A, 0x214F, 0x21D3, 0x3004, 0x3020, 0x3250, 0xA839, 0xFDCF, 0xFFE4, 0xFFE8, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1E14F, 0x1ECAC, 0x1ED2E, 0x1F7F0);\n\nset.addRange(0x58D, 0x58E).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0xBF3, 0xBF8).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2117).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x214C, 0x214D).addRange(0x218A, 0x218B).addRange(0x2195, 0x2199).addRange(0x219C, 0x219F).addRange(0x21A1, 0x21A2).addRange(0x21A4, 0x21A5).addRange(0x21A7, 0x21AD).addRange(0x21AF, 0x21CD).addRange(0x21D0, 0x21D1).addRange(0x21D5, 0x21F3).addRange(0x2300, 0x2307).addRange(0x230C, 0x231F).addRange(0x2322, 0x2328).addRange(0x232B, 0x237B).addRange(0x237D, 0x239A).addRange(0x23B4, 0x23DB).addRange(0x23E2, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9).addRange(0x2500, 0x25B6).addRange(0x25B8, 0x25C0).addRange(0x25C2, 0x25F7).addRange(0x2600, 0x266E).addRange(0x2670, 0x2767).addRange(0x2794, 0x27BF).addRange(0x2800, 0x28FF).addRange(0x2B00, 0x2B2F).addRange(0x2B45, 0x2B46).addRange(0x2B4D, 0x2B73);\nset.addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA837).addRange(0xAA77, 0xAA79).addRange(0xFD40, 0xFD4F).addRange(0xFDFD, 0xFDFF).addRange(0xFFED, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FDC).addRange(0x11FE1, 0x11FF1).addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83);\nset.addRange(0x1DA85, 0x1DA86).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F3FA).addRange(0x1F400, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA);\nmodule.exports = set;","const set = require('regenerate')(0x2029);\n\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xE000, 0xF8FF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD);\nmodule.exports = set;","const set = require('regenerate')(0x5F, 0x7B, 0x7D, 0xA1, 0xA7, 0xAB, 0xBB, 0xBF, 0x37E, 0x387, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x1400, 0x166E, 0x1CD3, 0x2D70, 0x3030, 0x303D, 0x30A0, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE63, 0xFE68, 0xFF3F, 0xFF5B, 0xFF5D, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x10EAD, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F);\n\nset.addRange(0x21, 0x23).addRange(0x25, 0x2A).addRange(0x2C, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0x5B, 0x5D).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x589, 0x58A).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xF3A, 0xF3D).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x169B, 0x169C).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2010, 0x2027).addRange(0x2030, 0x2043).addRange(0x2045, 0x2051).addRange(0x2053, 0x205E).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2308, 0x230B).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C5, 0x27C6);\nset.addRange(0x27E6, 0x27EF).addRange(0x2983, 0x2998).addRange(0x29D8, 0x29DB).addRange(0x29FC, 0x29FD).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E2E).addRange(0x2E30, 0x2E4F).addRange(0x2E52, 0x2E5D).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3014, 0x301F).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF0A).addRange(0xFF0C, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF3B, 0xFF3D).addRange(0xFF5F, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D);\nset.addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643).addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\n\nset.addRange(0x2000, 0x200A).addRange(0x2028, 0x2029);\nmodule.exports = set;","const set = require('regenerate')(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\n\nset.addRange(0x2000, 0x200A);\nmodule.exports = set;","const set = require('regenerate')(0x903, 0x93B, 0x9D7, 0xA03, 0xA83, 0xAC9, 0xB3E, 0xB40, 0xB57, 0xBD7, 0xCBE, 0xD57, 0xF7F, 0x1031, 0x1038, 0x108F, 0x1715, 0x1734, 0x17B6, 0x1A55, 0x1A57, 0x1A61, 0x1B04, 0x1B35, 0x1B3B, 0x1B82, 0x1BA1, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CE1, 0x1CF7, 0xA827, 0xA983, 0xAA4D, 0xAA7B, 0xAA7D, 0xAAEB, 0xAAF5, 0xABEC, 0x11000, 0x11002, 0x11082, 0x1112C, 0x11182, 0x111CE, 0x11235, 0x11357, 0x11445, 0x114B9, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1193D, 0x11940, 0x11942, 0x119E4, 0x11A39, 0x11A97, 0x11C2F, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D96);\n\nset.addRange(0x93E, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x94F).addRange(0x982, 0x983).addRange(0x9BE, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0xA3E, 0xA40).addRange(0xABE, 0xAC0).addRange(0xACB, 0xACC).addRange(0xB02, 0xB03).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xBBE, 0xBBF).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC01, 0xC03).addRange(0xC41, 0xC44).addRange(0xC82, 0xC83).addRange(0xCC0, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCD5, 0xCD6).addRange(0xD02, 0xD03).addRange(0xD3E, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD82, 0xD83).addRange(0xDCF, 0xDD1).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xF3E, 0xF3F).addRange(0x102B, 0x102C).addRange(0x103B, 0x103C).addRange(0x1056, 0x1057).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x109A, 0x109C).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1A19, 0x1A1A).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1B3D, 0x1B41);\nset.addRange(0x1B43, 0x1B44).addRange(0x1BA6, 0x1BA7).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1C24, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x302E, 0x302F).addRange(0xA823, 0xA824).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C3).addRange(0xA952, 0xA953).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9C0).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAAEE, 0xAAEF).addRange(0xABE3, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEA).addRange(0x110B0, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x11145, 0x11146).addRange(0x111B3, 0x111B5).addRange(0x111BF, 0x111C0).addRange(0x1122C, 0x1122E).addRange(0x11232, 0x11233).addRange(0x112E0, 0x112E2).addRange(0x11302, 0x11303).addRange(0x1133E, 0x1133F).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11435, 0x11437).addRange(0x11440, 0x11441).addRange(0x114B0, 0x114B2).addRange(0x114BB, 0x114BE).addRange(0x115AF, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x11630, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x116AE, 0x116AF).addRange(0x11720, 0x11721).addRange(0x1182C, 0x1182E).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x119D1, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x11A57, 0x11A58).addRange(0x11D8A, 0x11D8E);\nset.addRange(0x11D93, 0x11D94).addRange(0x11EF5, 0x11EF6).addRange(0x16F51, 0x16F87).addRange(0x16FF0, 0x16FF1).addRange(0x1D165, 0x1D166).addRange(0x1D16D, 0x1D172);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xD800, 0xDFFF);\nmodule.exports = set;","const set = require('regenerate')(0x24, 0x2B, 0x5E, 0x60, 0x7C, 0x7E, 0xAC, 0xB4, 0xB8, 0xD7, 0xF7, 0x2ED, 0x375, 0x3F6, 0x482, 0x60B, 0x6DE, 0x6E9, 0x7F6, 0x888, 0xAF1, 0xB70, 0xC7F, 0xD4F, 0xD79, 0xE3F, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x17DB, 0x1940, 0x1FBD, 0x2044, 0x2052, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214F, 0x3004, 0x3020, 0x3250, 0xAB5B, 0xFB29, 0xFDCF, 0xFE62, 0xFE69, 0xFF04, 0xFF0B, 0xFF3E, 0xFF40, 0xFF5C, 0xFF5E, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3, 0x1E14F, 0x1E2FF, 0x1ECAC, 0x1ECB0, 0x1ED2E, 0x1F7F0);\n\nset.addRange(0x3C, 0x3E).addRange(0xA2, 0xA6).addRange(0xA8, 0xA9).addRange(0xAE, 0xB1).addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x58D, 0x58F).addRange(0x606, 0x608).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x9FA, 0x9FB).addRange(0xBF3, 0xBFA).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2118).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x2140, 0x2144).addRange(0x214A, 0x214D).addRange(0x218A, 0x218B).addRange(0x2190, 0x2307).addRange(0x230C, 0x2328).addRange(0x232B, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9);\nset.addRange(0x2500, 0x2767).addRange(0x2794, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFB).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x309B, 0x309C).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA839).addRange(0xAA77, 0xAA79).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0xFD40, 0xFD4F).addRange(0xFDFC, 0xFDFF).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FF1);\nset.addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA86).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7);\nset.addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA);\nmodule.exports = set;","const set = require('regenerate')(0x1C5, 0x1C8, 0x1CB, 0x1F2, 0x1FBC, 0x1FCC, 0x1FFC);\n\nset.addRange(0x1F88, 0x1F8F).addRange(0x1F98, 0x1F9F).addRange(0x1FA8, 0x1FAF);\nmodule.exports = set;","const set = require('regenerate')(0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x70E, 0x83F, 0x85F, 0x88F, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x2065, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFF00, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x1246F, 0x1342F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FB93);\n\nset.addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x5FF).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x892, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D).addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7);\nset.addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF3, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xECE, 0xECF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF).addRange(0x169D, 0x169F).addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E);\nset.addRange(0x1737, 0x173F).addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F).addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E);\nset.addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x2FFC, 0x2FFF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EF).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xD7FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFEFE).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1);\nset.addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFF8).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F).addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38);\nset.addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77).addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFF).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CC).addRange(0x110CE, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x1123F, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C);\nset.addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13439, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B14F);\nset.addRange(0x1B153, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA4, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF);\nset.addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DC).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F774, 0x1F77F).addRange(0x1F7D9, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA75, 0x1FA77).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA87, 0x1FA8F).addRange(0x1FAAD, 0x1FAAF).addRange(0x1FABB, 0x1FABF).addRange(0x1FAC6, 0x1FACF).addRange(0x1FADA, 0x1FADF).addRange(0x1FAE8, 0x1FAEF).addRange(0x1FAF7, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B739, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0xE0000).addRange(0xE0002, 0xE001F).addRange(0xE0080, 0xE00FF).addRange(0xE01F0, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF);\nmodule.exports = set;","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA);\n\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2C00, 0x2C2F);\nset.addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x14400, 0x14646);\nmodule.exports = set;","const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x600, 0x604).addRange(0x606, 0x60B).addRange(0x60D, 0x61A).addRange(0x61C, 0x61E).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x656, 0x66F).addRange(0x671, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD3D).addRange(0xFD40, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x10E60, 0x10E7E).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0xFB13, 0xFB17);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA6A0, 0xA6F7).addRange(0x16800, 0x16A38);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC0, 0x1BF3).addRange(0x1BFC, 0x1BFF);\nmodule.exports = set;","const set = require('regenerate')(0x9B2, 0x9D7);\n\nset.addRange(0x980, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2EA, 0x2EB).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF);\nmodule.exports = set;","const set = require('regenerate')(0x1107F);\n\nset.addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2800, 0x28FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1A00, 0x1A1B).addRange(0x1A1E, 0x1A1F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1740, 0x1753);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1400, 0x167F).addRange(0x18B0, 0x18F5).addRange(0x11AB0, 0x11ABF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x102A0, 0x102D0);\nmodule.exports = set;","const set = require('regenerate')(0x1056F);\n\nset.addRange(0x10530, 0x10563);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11100, 0x11134).addRange(0x11136, 0x11147);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FB0, 0x10FCB);\nmodule.exports = set;","const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x60C, 0x61B, 0x61F, 0x640, 0x6DD, 0x8E2, 0xE3F, 0x10FB, 0x1805, 0x1CD3, 0x1CE1, 0x1CFA, 0x3006, 0x30A0, 0x32FF, 0xA92E, 0xA9CF, 0xAB5B, 0xFEFF, 0xFF70, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001);\n\nset.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0x964, 0x965).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x1802, 0x1803).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x2000, 0x200B).addRange(0x200E, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E5D).addRange(0x2FF0, 0x2FFB).addRange(0x3000, 0x3004).addRange(0x3008, 0x3020).addRange(0x3030, 0x3037).addRange(0x303C, 0x303F).addRange(0x309B, 0x309C).addRange(0x30FB, 0x30FC).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x325F).addRange(0x327F, 0x32CF).addRange(0x3358, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA830, 0xA839);\nset.addRange(0xAB6A, 0xAB6B).addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x102E1, 0x102FB).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D);\nset.addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543);\nmodule.exports = set;","const set = require('regenerate')(0x10808, 0x1083C, 0x1083F);\n\nset.addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x12F90, 0x12FF2);\nmodule.exports = set;","const set = require('regenerate')(0x1D2B, 0x1D78);\n\nset.addRange(0x400, 0x484).addRange(0x487, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10400, 0x1044F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x900, 0x950).addRange(0x955, 0x963).addRange(0x966, 0x97F).addRange(0xA8E0, 0xA8FF);\nmodule.exports = set;","const set = require('regenerate')(0x11909);\n\nset.addRange(0x11900, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11800, 0x1183B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BC9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13000, 0x1342E).addRange(0x13430, 0x13438);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10500, 0x10527);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FE0, 0x10FF6);\nmodule.exports = set;","const set = require('regenerate')(0x1258, 0x12C0);\n\nset.addRange(0x1200, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE);\nmodule.exports = set;","const set = require('regenerate')(0x10C7, 0x10CD, 0x2D27, 0x2D2D);\n\nset.addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x2D00, 0x2D25);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2C00, 0x2C5F).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10330, 0x1034A);\nmodule.exports = set;","const set = require('regenerate')(0x11350, 0x11357);\n\nset.addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133C, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374);\nmodule.exports = set;","const set = require('regenerate')(0x37F, 0x384, 0x386, 0x38C, 0x1DBF, 0x1F59, 0x1F5B, 0x1F5D, 0x2126, 0xAB65, 0x101A0);\n\nset.addRange(0x370, 0x373).addRange(0x375, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245);\nmodule.exports = set;","const set = require('regenerate')(0xAD0);\n\nset.addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9);\nmodule.exports = set;","const set = require('regenerate')(0xA3C, 0xA51, 0xA5E);\n\nset.addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76);\nmodule.exports = set;","const set = require('regenerate')(0x3005, 0x3007);\n\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x3021, 0x3029).addRange(0x3038, 0x303B).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1100, 0x11FF).addRange(0x302E, 0x302F).addRange(0x3131, 0x318E).addRange(0x3200, 0x321E).addRange(0x3260, 0x327E).addRange(0xA960, 0xA97C).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1720, 0x1734);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x108FF);\nmodule.exports = set;","const set = require('regenerate')(0xFB3E);\n\nset.addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F);\nmodule.exports = set;","const set = require('regenerate')(0x1F200);\n\nset.addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x1B001, 0x1B11F).addRange(0x1B150, 0x1B152);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10840, 0x10855).addRange(0x10857, 0x1085F);\nmodule.exports = set;","const set = require('regenerate')(0x670, 0x1CED, 0x1CF4, 0x101FD, 0x102E0, 0x1133B);\n\nset.addRange(0x300, 0x36F).addRange(0x485, 0x486).addRange(0x64B, 0x655).addRange(0x951, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20F0).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B60, 0x10B72).addRange(0x10B78, 0x10B7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B40, 0x10B55).addRange(0x10B58, 0x10B5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA980, 0xA9CD).addRange(0xA9D0, 0xA9D9).addRange(0xA9DE, 0xA9DF);\nmodule.exports = set;","const set = require('regenerate')(0x110CD);\n\nset.addRange(0x11080, 0x110C2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2);\nmodule.exports = set;","const set = require('regenerate')(0x1B000);\n\nset.addRange(0x30A1, 0x30FA).addRange(0x30FD, 0x30FF).addRange(0x31F0, 0x31FF).addRange(0x32D0, 0x32FE).addRange(0x3300, 0x3357).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B120, 0x1B122).addRange(0x1B164, 0x1B167);\nmodule.exports = set;","const set = require('regenerate')(0xA92F);\n\nset.addRange(0xA900, 0xA92D);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58);\nmodule.exports = set;","const set = require('regenerate')(0x16FE4);\n\nset.addRange(0x18B00, 0x18CD5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x19E0, 0x19FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11200, 0x11211).addRange(0x11213, 0x1123E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9);\nmodule.exports = set;","const set = require('regenerate')(0xE84, 0xEA5, 0xEC6);\n\nset.addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xBA, 0x2071, 0x207F, 0x2132, 0x214E, 0xA7D3);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C00, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C4F);\nmodule.exports = set;","const set = require('regenerate')(0x1940);\n\nset.addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x194F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA);\nmodule.exports = set;","const set = require('regenerate')(0x11FB0);\n\nset.addRange(0xA4D0, 0xA4FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10280, 0x1029C);\nmodule.exports = set;","const set = require('regenerate')(0x1093F);\n\nset.addRange(0x10920, 0x10939);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11150, 0x11176);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11EE0, 0x11EF8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F);\nmodule.exports = set;","const set = require('regenerate')(0x85E);\n\nset.addRange(0x840, 0x85B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6);\nmodule.exports = set;","const set = require('regenerate')(0x11D3A);\n\nset.addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16E40, 0x16E9A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAAE0, 0xAAF6).addRange(0xABC0, 0xABED).addRange(0xABF0, 0xABF9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x109A0, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x109FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10980, 0x1099F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11600, 0x11644).addRange(0x11650, 0x11659);\nmodule.exports = set;","const set = require('regenerate')(0x1804);\n\nset.addRange(0x1800, 0x1801).addRange(0x1806, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x11660, 0x1166C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16A6F);\nmodule.exports = set;","const set = require('regenerate')(0x11288);\n\nset.addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10880, 0x1089E).addRange(0x108A7, 0x108AF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x19DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x7FF);\nmodule.exports = set;","const set = require('regenerate')(0x16FE1);\n\nset.addRange(0x1B170, 0x1B2FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1680, 0x169C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C50, 0x1C7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10CFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10300, 0x10323).addRange(0x1032D, 0x1032F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A80, 0x10A9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10350, 0x1037A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103D5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F00, 0x10F27);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A60, 0x10A7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C00, 0x10C48);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F70, 0x10F89);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10480, 0x1049D).addRange(0x104A0, 0x104A9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10860, 0x1087F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11AC0, 0x11AF8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA840, 0xA877);\nmodule.exports = set;","const set = require('regenerate')(0x1091F);\n\nset.addRange(0x10900, 0x1091B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B80, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF);\nmodule.exports = set;","const set = require('regenerate')(0xA95F);\n\nset.addRange(0xA930, 0xA953);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x800, 0x82D).addRange(0x830, 0x83E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11180, 0x111DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10450, 0x1047F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1D800, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF);\nmodule.exports = set;","const set = require('regenerate')(0xDBD, 0xDCA, 0xDD6);\n\nset.addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0x111E1, 0x111F4);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F30, 0x10F59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A50, 0x11AA2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B80, 0x1BBF).addRange(0x1CC0, 0x1CC7);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA800, 0xA82C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A);\nmodule.exports = set;","const set = require('regenerate')(0x171F);\n\nset.addRange(0x1700, 0x1715);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA80, 0xAAC2).addRange(0xAADB, 0xAADF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9);\nmodule.exports = set;","const set = require('regenerate')(0xB9C, 0xBD0, 0xBD7, 0x11FFF);\n\nset.addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0x11FC0, 0x11FF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9);\nmodule.exports = set;","const set = require('regenerate')(0x16FE0);\n\nset.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08);\nmodule.exports = set;","const set = require('regenerate')(0xC5D);\n\nset.addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x780, 0x7B1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xE01, 0xE3A).addRange(0xE40, 0xE5B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA);\nmodule.exports = set;","const set = require('regenerate')(0x2D7F);\n\nset.addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E290, 0x1E2AE);\nmodule.exports = set;","const set = require('regenerate')(0x1039F);\n\nset.addRange(0x10380, 0x1039D);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA500, 0xA62B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC);\nmodule.exports = set;","const set = require('regenerate')(0x1E2FF);\n\nset.addRange(0x1E2C0, 0x1E2F9);\nmodule.exports = set;","const set = require('regenerate')(0x118FF);\n\nset.addRange(0x118A0, 0x118F2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA000, 0xA48C).addRange(0xA490, 0xA4C6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A00, 0x11A47);\nmodule.exports = set;","const set = require('regenerate')(0x61F, 0x640);\n\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x14400, 0x14646);\nmodule.exports = set;","const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\n\nset.addRange(0x600, 0x604).addRange(0x606, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x102E0, 0x102FB).addRange(0x10E60, 0x10E7E).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0xFB13, 0xFB17);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA6A0, 0xA6F7).addRange(0x16800, 0x16A38);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC0, 0x1BF3).addRange(0x1BFC, 0x1BFF);\nmodule.exports = set;","const set = require('regenerate')(0x9B2, 0x9D7, 0x1CD0, 0x1CD2, 0x1CD8, 0x1CE1, 0x1CEA, 0x1CED, 0x1CF2, 0xA8F1);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0x980, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0x1CD5, 0x1CD6).addRange(0x1CF5, 0x1CF7);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C);\nmodule.exports = set;","const set = require('regenerate')(0x3030, 0x3037, 0x30FB);\n\nset.addRange(0x2EA, 0x2EB).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302A, 0x302D).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65);\nmodule.exports = set;","const set = require('regenerate')(0x1107F);\n\nset.addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x2800, 0x28FF);\nmodule.exports = set;","const set = require('regenerate')(0xA9CF);\n\nset.addRange(0x1A00, 0x1A1B).addRange(0x1A1E, 0x1A1F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1735, 0x1736).addRange(0x1740, 0x1753);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1400, 0x167F).addRange(0x18B0, 0x18F5).addRange(0x11AB0, 0x11ABF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x102A0, 0x102D0);\nmodule.exports = set;","const set = require('regenerate')(0x1056F);\n\nset.addRange(0x10530, 0x10563);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x9E6, 0x9EF).addRange(0x1040, 0x1049).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FB0, 0x10FCB);\nmodule.exports = set;","const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x6DD, 0x8E2, 0xE3F, 0x3000, 0x3004, 0x3012, 0x3020, 0x3036, 0x327F, 0x33FF, 0xAB5B, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001);\n\nset.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x2000, 0x200B).addRange(0x200E, 0x202E).addRange(0x2030, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E42).addRange(0x2E44, 0x2E5D).addRange(0x2FF0, 0x2FFB).addRange(0x3248, 0x325F).addRange(0x32B1, 0x32BF).addRange(0x32CC, 0x32CF).addRange(0x3371, 0x337A).addRange(0x3380, 0x33DF).addRange(0x4DC0, 0x4DFF).addRange(0xA708, 0xA721).addRange(0xA788, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF60).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE);\nset.addRange(0xFFF9, 0xFFFD).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D372, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DD, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F773).addRange(0x1F780, 0x1F7D8);\nset.addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA74).addRange(0x1FA78, 0x1FA7C).addRange(0x1FA80, 0x1FA86).addRange(0x1FA90, 0x1FAAC).addRange(0x1FAB0, 0x1FABA).addRange(0x1FAC0, 0x1FAC5).addRange(0x1FAD0, 0x1FAD9).addRange(0x1FAE0, 0x1FAE7).addRange(0x1FAF0, 0x1FAF6).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF).addRange(0x102E0, 0x102FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543);\nmodule.exports = set;","const set = require('regenerate')(0x10808, 0x1083C, 0x1083F);\n\nset.addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10100, 0x10101).addRange(0x12F90, 0x12FF2);\nmodule.exports = set;","const set = require('regenerate')(0x1D2B, 0x1D78, 0x1DF8, 0x2E43);\n\nset.addRange(0x400, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10400, 0x1044F);\nmodule.exports = set;","const set = require('regenerate')(0x20F0);\n\nset.addRange(0x900, 0x952).addRange(0x955, 0x97F).addRange(0x1CD0, 0x1CF6).addRange(0x1CF8, 0x1CF9).addRange(0xA830, 0xA839).addRange(0xA8E0, 0xA8FF);\nmodule.exports = set;","const set = require('regenerate')(0x11909);\n\nset.addRange(0x11900, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x96F).addRange(0xA830, 0xA839).addRange(0x11800, 0x1183B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x13000, 0x1342E).addRange(0x13430, 0x13438);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10500, 0x10527);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10FE0, 0x10FF6);\nmodule.exports = set;","const set = require('regenerate')(0x1258, 0x12C0);\n\nset.addRange(0x1200, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE);\nmodule.exports = set;","const set = require('regenerate')(0x10C7, 0x10CD, 0x2D27, 0x2D2D);\n\nset.addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FF).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x2D00, 0x2D25);\nmodule.exports = set;","const set = require('regenerate')(0x484, 0x487, 0x2E43, 0xA66F);\n\nset.addRange(0x2C00, 0x2C5F).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10330, 0x1034A);\nmodule.exports = set;","const set = require('regenerate')(0x1CD0, 0x20F0, 0x11350, 0x11357, 0x11FD3);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xBE6, 0xBF3).addRange(0x1CD2, 0x1CD3).addRange(0x1CF2, 0x1CF4).addRange(0x1CF8, 0x1CF9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11FD0, 0x11FD1);\nmodule.exports = set;","const set = require('regenerate')(0x342, 0x345, 0x37F, 0x384, 0x386, 0x38C, 0x1F59, 0x1F5B, 0x1F5D, 0x2126, 0xAB65, 0x101A0);\n\nset.addRange(0x370, 0x373).addRange(0x375, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1DBF, 0x1DC1).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245);\nmodule.exports = set;","const set = require('regenerate')(0xAD0);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF).addRange(0xA830, 0xA839);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9);\nmodule.exports = set;","const set = require('regenerate')(0xA3C, 0xA51, 0xA5E);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA830, 0xA839);\nmodule.exports = set;","const set = require('regenerate')(0x3030, 0x30FB, 0x32FF);\n\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x3001, 0x3003).addRange(0x3005, 0x3011).addRange(0x3013, 0x301F).addRange(0x3021, 0x302D).addRange(0x3037, 0x303F).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x3247).addRange(0x3280, 0x32B0).addRange(0x32C0, 0x32CB).addRange(0x3358, 0x3370).addRange(0x337B, 0x337F).addRange(0x33E0, 0x33FE).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xA700, 0xA707).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x1D360, 0x1D371).addRange(0x1F250, 0x1F251).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B738).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A);\nmodule.exports = set;","const set = require('regenerate')(0x3037, 0x30FB);\n\nset.addRange(0x1100, 0x11FF).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302E, 0x3030).addRange(0x3131, 0x318E).addRange(0x3200, 0x321E).addRange(0x3260, 0x327E).addRange(0xA960, 0xA97C).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61B, 0x61F, 0x640, 0x6D4);\n\nset.addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1720, 0x1736);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x108FF);\nmodule.exports = set;","const set = require('regenerate')(0xFB3E);\n\nset.addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F);\nmodule.exports = set;","const set = require('regenerate')(0x3037, 0xFF70, 0x1F200);\n\nset.addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x3030, 0x3035).addRange(0x303C, 0x303D).addRange(0x3041, 0x3096).addRange(0x3099, 0x30A0).addRange(0x30FB, 0x30FC).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0x1B001, 0x1B11F).addRange(0x1B150, 0x1B152);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10840, 0x10855).addRange(0x10857, 0x1085F);\nmodule.exports = set;","const set = require('regenerate')(0x1DF9, 0x101FD);\n\nset.addRange(0x300, 0x341).addRange(0x343, 0x344).addRange(0x346, 0x362).addRange(0x953, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1DC2, 0x1DF7).addRange(0x1DFB, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20EF).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B60, 0x10B72).addRange(0x10B78, 0x10B7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10B40, 0x10B55).addRange(0x10B58, 0x10B5F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9DF);\nmodule.exports = set;","const set = require('regenerate')(0x110CD);\n\nset.addRange(0x966, 0x96F).addRange(0xA830, 0xA839).addRange(0x11080, 0x110C2);\nmodule.exports = set;","const set = require('regenerate')(0x1CD0, 0x1CD2, 0x1CDA, 0x1CF2, 0x1CF4);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF2).addRange(0xA830, 0xA835);\nmodule.exports = set;","const set = require('regenerate')(0x3037, 0x1B000);\n\nset.addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x3030, 0x3035).addRange(0x303C, 0x303D).addRange(0x3099, 0x309C).addRange(0x30A0, 0x30FF).addRange(0x31F0, 0x31FF).addRange(0x32D0, 0x32FE).addRange(0x3300, 0x3357).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF9F).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B120, 0x1B122).addRange(0x1B164, 0x1B167);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA900, 0xA92F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58);\nmodule.exports = set;","const set = require('regenerate')(0x16FE4);\n\nset.addRange(0x18B00, 0x18CD5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x19E0, 0x19FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAE6, 0xAEF).addRange(0xA830, 0xA839).addRange(0x11200, 0x11211).addRange(0x11213, 0x1123E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9);\nmodule.exports = set;","const set = require('regenerate')(0xE84, 0xEA5, 0xEC6);\n\nset.addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECD).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF);\nmodule.exports = set;","const set = require('regenerate')(0xAA, 0xBA, 0x10FB, 0x202F, 0x2071, 0x207F, 0x20F0, 0x2132, 0x214E, 0xA7D3, 0xA92E);\n\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x363, 0x36F).addRange(0x485, 0x486).addRange(0x951, 0x952).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA700, 0xA707).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C00, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C4F);\nmodule.exports = set;","const set = require('regenerate')(0x965, 0x1940);\n\nset.addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x194F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10107, 0x10133).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F);\nmodule.exports = set;","const set = require('regenerate')(0x11FB0);\n\nset.addRange(0xA4D0, 0xA4FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10280, 0x1029C);\nmodule.exports = set;","const set = require('regenerate')(0x1093F);\n\nset.addRange(0x10920, 0x10939);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x96F).addRange(0xA830, 0xA839).addRange(0x11150, 0x11176);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11EE0, 0x11EF8);\nmodule.exports = set;","const set = require('regenerate')(0x1CDA);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F).addRange(0xA830, 0xA832);\nmodule.exports = set;","const set = require('regenerate')(0x640, 0x85E);\n\nset.addRange(0x840, 0x85B);\nmodule.exports = set;","const set = require('regenerate')(0x640);\n\nset.addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6);\nmodule.exports = set;","const set = require('regenerate')(0x11D3A);\n\nset.addRange(0x964, 0x965).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16E40, 0x16E9A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAAE0, 0xAAF6).addRange(0xABC0, 0xABED).addRange(0xABF0, 0xABF9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x109A0, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x109FF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10980, 0x1099F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA830, 0xA839).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659);\nmodule.exports = set;","const set = require('regenerate')(0x202F);\n\nset.addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x11660, 0x1166C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16A6F);\nmodule.exports = set;","const set = require('regenerate')(0x11288);\n\nset.addRange(0xA66, 0xA6F).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9);\nmodule.exports = set;","const set = require('regenerate')(0xA92E);\n\nset.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10880, 0x1089E).addRange(0x108A7, 0x108AF);\nmodule.exports = set;","const set = require('regenerate')(0x1CE9, 0x1CF2, 0x1CFA);\n\nset.addRange(0x964, 0x965).addRange(0xCE6, 0xCEF).addRange(0xA830, 0xA835).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x19DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61B, 0x61F);\n\nset.addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x7FF).addRange(0xFD3E, 0xFD3F);\nmodule.exports = set;","const set = require('regenerate')(0x16FE1);\n\nset.addRange(0x1B170, 0x1B2FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1680, 0x169C);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1C50, 0x1C7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10CFF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10300, 0x10323).addRange(0x1032D, 0x1032F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A80, 0x10A9F);\nmodule.exports = set;","const set = require('regenerate')(0x483);\n\nset.addRange(0x10350, 0x1037A);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103D5);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10F00, 0x10F27);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10A60, 0x10A7F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10C00, 0x10C48);\nmodule.exports = set;","const set = require('regenerate')(0x640, 0x10AF2);\n\nset.addRange(0x10F70, 0x10F89);\nmodule.exports = set;","const set = require('regenerate')(0x1CDA, 0x1CF2);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10480, 0x1049D).addRange(0x104A0, 0x104A9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10860, 0x1087F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11AC0, 0x11AF8);\nmodule.exports = set;","const set = require('regenerate')(0x1805);\n\nset.addRange(0x1802, 0x1803).addRange(0xA840, 0xA877);\nmodule.exports = set;","const set = require('regenerate')(0x1091F);\n\nset.addRange(0x10900, 0x1091B);\nmodule.exports = set;","const set = require('regenerate')(0x640);\n\nset.addRange(0x10B80, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF);\nmodule.exports = set;","const set = require('regenerate')(0xA95F);\n\nset.addRange(0xA930, 0xA953);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x800, 0x82D).addRange(0x830, 0x83E);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9);\nmodule.exports = set;","const set = require('regenerate')(0x951, 0x1CD7, 0x1CD9, 0x1CE0);\n\nset.addRange(0x1CDC, 0x1CDD).addRange(0x11180, 0x111DF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10450, 0x1047F);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1D800, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF);\nmodule.exports = set;","const set = require('regenerate')(0xDBD, 0xDCA, 0xDD6);\n\nset.addRange(0x964, 0x965).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0x111E1, 0x111F4);\nmodule.exports = set;","const set = require('regenerate')(0x640);\n\nset.addRange(0x10F30, 0x10F59);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A50, 0x11AA2);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1B80, 0x1BBF).addRange(0x1CC0, 0x1CC7);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0x9E6, 0x9EF).addRange(0xA800, 0xA82C);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61F, 0x640, 0x670, 0x1DF8, 0x1DFA);\n\nset.addRange(0x61B, 0x61C).addRange(0x64B, 0x655).addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A);\nmodule.exports = set;","const set = require('regenerate')(0x171F);\n\nset.addRange(0x1700, 0x1715).addRange(0x1735, 0x1736);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1735, 0x1736).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1040, 0x1049).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xAA80, 0xAAC2).addRange(0xAADB, 0xAADF);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9);\nmodule.exports = set;","const set = require('regenerate')(0xB9C, 0xBD0, 0xBD7, 0x1CDA, 0xA8F3, 0x11301, 0x11303, 0x11FFF);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0x1133B, 0x1133C).addRange(0x11FC0, 0x11FF1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9);\nmodule.exports = set;","const set = require('regenerate')(0x16FE0);\n\nset.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08);\nmodule.exports = set;","const set = require('regenerate')(0xC5D, 0x1CDA, 0x1CF2);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC7F);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61F, 0xFDF2, 0xFDFD);\n\nset.addRange(0x61B, 0x61C).addRange(0x660, 0x669).addRange(0x780, 0x7B1);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xE01, 0xE3A).addRange(0xE40, 0xE5B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA);\nmodule.exports = set;","const set = require('regenerate')(0x2D7F);\n\nset.addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70);\nmodule.exports = set;","const set = require('regenerate')(0x1CF2);\n\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x1E290, 0x1E2AE);\nmodule.exports = set;","const set = require('regenerate')(0x1039F);\n\nset.addRange(0x10380, 0x1039D);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0xA500, 0xA62B);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC);\nmodule.exports = set;","const set = require('regenerate')(0x1E2FF);\n\nset.addRange(0x1E2C0, 0x1E2F9);\nmodule.exports = set;","const set = require('regenerate')(0x118FF);\n\nset.addRange(0x118A0, 0x118F2);\nmodule.exports = set;","const set = require('regenerate')(0x60C, 0x61B, 0x61F);\n\nset.addRange(0x660, 0x669).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1);\nmodule.exports = set;","const set = require('regenerate')(0x30FB);\n\nset.addRange(0x3001, 0x3002).addRange(0x3008, 0x3011).addRange(0x3014, 0x301B).addRange(0xA000, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xFF61, 0xFF65);\nmodule.exports = set;","const set = require('regenerate')();\n\nset.addRange(0x11A00, 0x11A47);\nmodule.exports = set;","module.exports = new Map([['General_Category', ['Cased_Letter', 'Close_Punctuation', 'Connector_Punctuation', 'Control', 'Currency_Symbol', 'Dash_Punctuation', 'Decimal_Number', 'Enclosing_Mark', 'Final_Punctuation', 'Format', 'Initial_Punctuation', 'Letter', 'Letter_Number', 'Line_Separator', 'Lowercase_Letter', 'Mark', 'Math_Symbol', 'Modifier_Letter', 'Modifier_Symbol', 'Nonspacing_Mark', 'Number', 'Open_Punctuation', 'Other', 'Other_Letter', 'Other_Number', 'Other_Punctuation', 'Other_Symbol', 'Paragraph_Separator', 'Private_Use', 'Punctuation', 'Separator', 'Space_Separator', 'Spacing_Mark', 'Surrogate', 'Symbol', 'Titlecase_Letter', 'Unassigned', 'Uppercase_Letter']], ['Script', ['Adlam', 'Ahom', 'Anatolian_Hieroglyphs', 'Arabic', 'Armenian', 'Avestan', 'Balinese', 'Bamum', 'Bassa_Vah', 'Batak', 'Bengali', 'Bhaiksuki', 'Bopomofo', 'Brahmi', 'Braille', 'Buginese', 'Buhid', 'Canadian_Aboriginal', 'Carian', 'Caucasian_Albanian', 'Chakma', 'Cham', 'Cherokee', 'Chorasmian', 'Common', 'Coptic', 'Cuneiform', 'Cypriot', 'Cypro_Minoan', 'Cyrillic', 'Deseret', 'Devanagari', 'Dives_Akuru', 'Dogra', 'Duployan', 'Egyptian_Hieroglyphs', 'Elbasan', 'Elymaic', 'Ethiopic', 'Georgian', 'Glagolitic', 'Gothic', 'Grantha', 'Greek', 'Gujarati', 'Gunjala_Gondi', 'Gurmukhi', 'Han', 'Hangul', 'Hanifi_Rohingya', 'Hanunoo', 'Hatran', 'Hebrew', 'Hiragana', 'Imperial_Aramaic', 'Inherited', 'Inscriptional_Pahlavi', 'Inscriptional_Parthian', 'Javanese', 'Kaithi', 'Kannada', 'Katakana', 'Kayah_Li', 'Kharoshthi', 'Khitan_Small_Script', 'Khmer', 'Khojki', 'Khudawadi', 'Lao', 'Latin', 'Lepcha', 'Limbu', 'Linear_A', 'Linear_B', 'Lisu', 'Lycian', 'Lydian', 'Mahajani', 'Makasar', 'Malayalam', 'Mandaic', 'Manichaean', 'Marchen', 'Masaram_Gondi', 'Medefaidrin', 'Meetei_Mayek', 'Mende_Kikakui', 'Meroitic_Cursive', 'Meroitic_Hieroglyphs', 'Miao', 'Modi', 'Mongolian', 'Mro', 'Multani', 'Myanmar', 'Nabataean', 'Nandinagari', 'New_Tai_Lue', 'Newa', 'Nko', 'Nushu', 'Nyiakeng_Puachue_Hmong', 'Ogham', 'Ol_Chiki', 'Old_Hungarian', 'Old_Italic', 'Old_North_Arabian', 'Old_Permic', 'Old_Persian', 'Old_Sogdian', 'Old_South_Arabian', 'Old_Turkic', 'Old_Uyghur', 'Oriya', 'Osage', 'Osmanya', 'Pahawh_Hmong', 'Palmyrene', 'Pau_Cin_Hau', 'Phags_Pa', 'Phoenician', 'Psalter_Pahlavi', 'Rejang', 'Runic', 'Samaritan', 'Saurashtra', 'Sharada', 'Shavian', 'Siddham', 'SignWriting', 'Sinhala', 'Sogdian', 'Sora_Sompeng', 'Soyombo', 'Sundanese', 'Syloti_Nagri', 'Syriac', 'Tagalog', 'Tagbanwa', 'Tai_Le', 'Tai_Tham', 'Tai_Viet', 'Takri', 'Tamil', 'Tangsa', 'Tangut', 'Telugu', 'Thaana', 'Thai', 'Tibetan', 'Tifinagh', 'Tirhuta', 'Toto', 'Ugaritic', 'Vai', 'Vithkuqi', 'Wancho', 'Warang_Citi', 'Yezidi', 'Yi', 'Zanabazar_Square']], ['Script_Extensions', ['Adlam', 'Ahom', 'Anatolian_Hieroglyphs', 'Arabic', 'Armenian', 'Avestan', 'Balinese', 'Bamum', 'Bassa_Vah', 'Batak', 'Bengali', 'Bhaiksuki', 'Bopomofo', 'Brahmi', 'Braille', 'Buginese', 'Buhid', 'Canadian_Aboriginal', 'Carian', 'Caucasian_Albanian', 'Chakma', 'Cham', 'Cherokee', 'Chorasmian', 'Common', 'Coptic', 'Cuneiform', 'Cypriot', 'Cypro_Minoan', 'Cyrillic', 'Deseret', 'Devanagari', 'Dives_Akuru', 'Dogra', 'Duployan', 'Egyptian_Hieroglyphs', 'Elbasan', 'Elymaic', 'Ethiopic', 'Georgian', 'Glagolitic', 'Gothic', 'Grantha', 'Greek', 'Gujarati', 'Gunjala_Gondi', 'Gurmukhi', 'Han', 'Hangul', 'Hanifi_Rohingya', 'Hanunoo', 'Hatran', 'Hebrew', 'Hiragana', 'Imperial_Aramaic', 'Inherited', 'Inscriptional_Pahlavi', 'Inscriptional_Parthian', 'Javanese', 'Kaithi', 'Kannada', 'Katakana', 'Kayah_Li', 'Kharoshthi', 'Khitan_Small_Script', 'Khmer', 'Khojki', 'Khudawadi', 'Lao', 'Latin', 'Lepcha', 'Limbu', 'Linear_A', 'Linear_B', 'Lisu', 'Lycian', 'Lydian', 'Mahajani', 'Makasar', 'Malayalam', 'Mandaic', 'Manichaean', 'Marchen', 'Masaram_Gondi', 'Medefaidrin', 'Meetei_Mayek', 'Mende_Kikakui', 'Meroitic_Cursive', 'Meroitic_Hieroglyphs', 'Miao', 'Modi', 'Mongolian', 'Mro', 'Multani', 'Myanmar', 'Nabataean', 'Nandinagari', 'New_Tai_Lue', 'Newa', 'Nko', 'Nushu', 'Nyiakeng_Puachue_Hmong', 'Ogham', 'Ol_Chiki', 'Old_Hungarian', 'Old_Italic', 'Old_North_Arabian', 'Old_Permic', 'Old_Persian', 'Old_Sogdian', 'Old_South_Arabian', 'Old_Turkic', 'Old_Uyghur', 'Oriya', 'Osage', 'Osmanya', 'Pahawh_Hmong', 'Palmyrene', 'Pau_Cin_Hau', 'Phags_Pa', 'Phoenician', 'Psalter_Pahlavi', 'Rejang', 'Runic', 'Samaritan', 'Saurashtra', 'Sharada', 'Shavian', 'Siddham', 'SignWriting', 'Sinhala', 'Sogdian', 'Sora_Sompeng', 'Soyombo', 'Sundanese', 'Syloti_Nagri', 'Syriac', 'Tagalog', 'Tagbanwa', 'Tai_Le', 'Tai_Tham', 'Tai_Viet', 'Takri', 'Tamil', 'Tangsa', 'Tangut', 'Telugu', 'Thaana', 'Thai', 'Tibetan', 'Tifinagh', 'Tirhuta', 'Toto', 'Ugaritic', 'Vai', 'Vithkuqi', 'Wancho', 'Warang_Citi', 'Yezidi', 'Yi', 'Zanabazar_Square']], ['Binary_Property', ['ASCII', 'ASCII_Hex_Digit', 'Alphabetic', 'Any', 'Assigned', 'Bidi_Control', 'Bidi_Mirrored', 'Case_Ignorable', 'Cased', 'Changes_When_Casefolded', 'Changes_When_Casemapped', 'Changes_When_Lowercased', 'Changes_When_NFKC_Casefolded', 'Changes_When_Titlecased', 'Changes_When_Uppercased', 'Dash', 'Default_Ignorable_Code_Point', 'Deprecated', 'Diacritic', 'Emoji', 'Emoji_Component', 'Emoji_Modifier', 'Emoji_Modifier_Base', 'Emoji_Presentation', 'Extended_Pictographic', 'Extender', 'Grapheme_Base', 'Grapheme_Extend', 'Hex_Digit', 'IDS_Binary_Operator', 'IDS_Trinary_Operator', 'ID_Continue', 'ID_Start', 'Ideographic', 'Join_Control', 'Logical_Order_Exception', 'Lowercase', 'Math', 'Noncharacter_Code_Point', 'Pattern_Syntax', 'Pattern_White_Space', 'Quotation_Mark', 'Radical', 'Regional_Indicator', 'Sentence_Terminal', 'Soft_Dotted', 'Terminal_Punctuation', 'Unified_Ideograph', 'Uppercase', 'Variation_Selector', 'White_Space', 'XID_Continue', 'XID_Start']]]);","module.exports = '14.0.0';","// Generated using `npm run build`. Do not edit.\n'use strict';\n\nconst regenerate = require('regenerate');\n\nexports.REGULAR = new Map([['d', regenerate().addRange(0x30, 0x39)], ['D', regenerate().addRange(0x0, 0x2F).addRange(0x3A, 0xFFFF)], ['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF).addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029)], ['S', regenerate().addRange(0x0, 0x8).addRange(0xE, 0x1F).addRange(0x21, 0x9F).addRange(0xA1, 0x167F).addRange(0x1681, 0x1FFF).addRange(0x200B, 0x2027).addRange(0x202A, 0x202E).addRange(0x2030, 0x205E).addRange(0x2060, 0x2FFF).addRange(0x3001, 0xFEFE).addRange(0xFF00, 0xFFFF)], ['w', regenerate(0x5F).addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A)], ['W', regenerate(0x60).addRange(0x0, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0xFFFF)]]);\nexports.UNICODE = new Map([['d', regenerate().addRange(0x30, 0x39)], ['D', regenerate().addRange(0x0, 0x2F).addRange(0x3A, 0x10FFFF)], ['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF).addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029)], ['S', regenerate().addRange(0x0, 0x8).addRange(0xE, 0x1F).addRange(0x21, 0x9F).addRange(0xA1, 0x167F).addRange(0x1681, 0x1FFF).addRange(0x200B, 0x2027).addRange(0x202A, 0x202E).addRange(0x2030, 0x205E).addRange(0x2060, 0x2FFF).addRange(0x3001, 0xFEFE).addRange(0xFF00, 0x10FFFF)], ['w', regenerate(0x5F).addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A)], ['W', regenerate(0x60).addRange(0x0, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0x10FFFF)]]);\nexports.UNICODE_IGNORE_CASE = new Map([['d', regenerate().addRange(0x30, 0x39)], ['D', regenerate().addRange(0x0, 0x2F).addRange(0x3A, 0x10FFFF)], ['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF).addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029)], ['S', regenerate().addRange(0x0, 0x8).addRange(0xE, 0x1F).addRange(0x21, 0x9F).addRange(0xA1, 0x167F).addRange(0x1681, 0x1FFF).addRange(0x200B, 0x2027).addRange(0x202A, 0x202E).addRange(0x2030, 0x205E).addRange(0x2060, 0x2FFF).addRange(0x3001, 0xFEFE).addRange(0xFF00, 0x10FFFF)], ['w', regenerate(0x5F, 0x17F, 0x212A).addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A)], ['W', regenerate(0x60).addRange(0x0, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0x17E).addRange(0x180, 0x2129).addRange(0x212B, 0x10FFFF)]]);","module.exports = new Map([[0x4B, 0x212A], [0x53, 0x17F], [0x6B, 0x212A], [0x73, 0x17F], [0xB5, 0x39C], [0xC5, 0x212B], [0xDF, 0x1E9E], [0xE5, 0x212B], [0x17F, 0x53], [0x1C4, 0x1C5], [0x1C5, 0x1C4], [0x1C7, 0x1C8], [0x1C8, 0x1C7], [0x1CA, 0x1CB], [0x1CB, 0x1CA], [0x1F1, 0x1F2], [0x1F2, 0x1F1], [0x345, 0x1FBE], [0x392, 0x3D0], [0x395, 0x3F5], [0x398, 0x3F4], [0x399, 0x1FBE], [0x39A, 0x3F0], [0x39C, 0xB5], [0x3A0, 0x3D6], [0x3A1, 0x3F1], [0x3A3, 0x3C2], [0x3A6, 0x3D5], [0x3A9, 0x2126], [0x3B8, 0x3F4], [0x3C2, 0x3A3], [0x3C9, 0x2126], [0x3D0, 0x392], [0x3D1, 0x3F4], [0x3D5, 0x3A6], [0x3D6, 0x3A0], [0x3F0, 0x39A], [0x3F1, 0x3A1], [0x3F4, [0x398, 0x3D1, 0x3B8]], [0x3F5, 0x395], [0x412, 0x1C80], [0x414, 0x1C81], [0x41E, 0x1C82], [0x421, 0x1C83], [0x422, 0x1C85], [0x42A, 0x1C86], [0x462, 0x1C87], [0x1C80, 0x412], [0x1C81, 0x414], [0x1C82, 0x41E], [0x1C83, 0x421], [0x1C84, 0x1C85], [0x1C85, [0x422, 0x1C84]], [0x1C86, 0x42A], [0x1C87, 0x462], [0x1C88, 0xA64A], [0x1E60, 0x1E9B], [0x1E9B, 0x1E60], [0x1E9E, 0xDF], [0x1F80, 0x1F88], [0x1F81, 0x1F89], [0x1F82, 0x1F8A], [0x1F83, 0x1F8B], [0x1F84, 0x1F8C], [0x1F85, 0x1F8D], [0x1F86, 0x1F8E], [0x1F87, 0x1F8F], [0x1F88, 0x1F80], [0x1F89, 0x1F81], [0x1F8A, 0x1F82], [0x1F8B, 0x1F83], [0x1F8C, 0x1F84], [0x1F8D, 0x1F85], [0x1F8E, 0x1F86], [0x1F8F, 0x1F87], [0x1F90, 0x1F98], [0x1F91, 0x1F99], [0x1F92, 0x1F9A], [0x1F93, 0x1F9B], [0x1F94, 0x1F9C], [0x1F95, 0x1F9D], [0x1F96, 0x1F9E], [0x1F97, 0x1F9F], [0x1F98, 0x1F90], [0x1F99, 0x1F91], [0x1F9A, 0x1F92], [0x1F9B, 0x1F93], [0x1F9C, 0x1F94], [0x1F9D, 0x1F95], [0x1F9E, 0x1F96], [0x1F9F, 0x1F97], [0x1FA0, 0x1FA8], [0x1FA1, 0x1FA9], [0x1FA2, 0x1FAA], [0x1FA3, 0x1FAB], [0x1FA4, 0x1FAC], [0x1FA5, 0x1FAD], [0x1FA6, 0x1FAE], [0x1FA7, 0x1FAF], [0x1FA8, 0x1FA0], [0x1FA9, 0x1FA1], [0x1FAA, 0x1FA2], [0x1FAB, 0x1FA3], [0x1FAC, 0x1FA4], [0x1FAD, 0x1FA5], [0x1FAE, 0x1FA6], [0x1FAF, 0x1FA7], [0x1FB3, 0x1FBC], [0x1FBC, 0x1FB3], [0x1FBE, [0x345, 0x399]], [0x1FC3, 0x1FCC], [0x1FCC, 0x1FC3], [0x1FF3, 0x1FFC], [0x1FFC, 0x1FF3], [0x2126, [0x3A9, 0x3C9]], [0x212A, 0x4B], [0x212B, [0xC5, 0xE5]], [0x2C2F, 0x2C5F], [0x2C5F, 0x2C2F], [0xA64A, 0x1C88], [0xA7C0, 0xA7C1], [0xA7C1, 0xA7C0], [0xA7D0, 0xA7D1], [0xA7D1, 0xA7D0], [0xA7D6, 0xA7D7], [0xA7D7, 0xA7D6], [0xA7D8, 0xA7D9], [0xA7D9, 0xA7D8], [0x10400, 0x10428], [0x10401, 0x10429], [0x10402, 0x1042A], [0x10403, 0x1042B], [0x10404, 0x1042C], [0x10405, 0x1042D], [0x10406, 0x1042E], [0x10407, 0x1042F], [0x10408, 0x10430], [0x10409, 0x10431], [0x1040A, 0x10432], [0x1040B, 0x10433], [0x1040C, 0x10434], [0x1040D, 0x10435], [0x1040E, 0x10436], [0x1040F, 0x10437], [0x10410, 0x10438], [0x10411, 0x10439], [0x10412, 0x1043A], [0x10413, 0x1043B], [0x10414, 0x1043C], [0x10415, 0x1043D], [0x10416, 0x1043E], [0x10417, 0x1043F], [0x10418, 0x10440], [0x10419, 0x10441], [0x1041A, 0x10442], [0x1041B, 0x10443], [0x1041C, 0x10444], [0x1041D, 0x10445], [0x1041E, 0x10446], [0x1041F, 0x10447], [0x10420, 0x10448], [0x10421, 0x10449], [0x10422, 0x1044A], [0x10423, 0x1044B], [0x10424, 0x1044C], [0x10425, 0x1044D], [0x10426, 0x1044E], [0x10427, 0x1044F], [0x10428, 0x10400], [0x10429, 0x10401], [0x1042A, 0x10402], [0x1042B, 0x10403], [0x1042C, 0x10404], [0x1042D, 0x10405], [0x1042E, 0x10406], [0x1042F, 0x10407], [0x10430, 0x10408], [0x10431, 0x10409], [0x10432, 0x1040A], [0x10433, 0x1040B], [0x10434, 0x1040C], [0x10435, 0x1040D], [0x10436, 0x1040E], [0x10437, 0x1040F], [0x10438, 0x10410], [0x10439, 0x10411], [0x1043A, 0x10412], [0x1043B, 0x10413], [0x1043C, 0x10414], [0x1043D, 0x10415], [0x1043E, 0x10416], [0x1043F, 0x10417], [0x10440, 0x10418], [0x10441, 0x10419], [0x10442, 0x1041A], [0x10443, 0x1041B], [0x10444, 0x1041C], [0x10445, 0x1041D], [0x10446, 0x1041E], [0x10447, 0x1041F], [0x10448, 0x10420], [0x10449, 0x10421], [0x1044A, 0x10422], [0x1044B, 0x10423], [0x1044C, 0x10424], [0x1044D, 0x10425], [0x1044E, 0x10426], [0x1044F, 0x10427], [0x104B0, 0x104D8], [0x104B1, 0x104D9], [0x104B2, 0x104DA], [0x104B3, 0x104DB], [0x104B4, 0x104DC], [0x104B5, 0x104DD], [0x104B6, 0x104DE], [0x104B7, 0x104DF], [0x104B8, 0x104E0], [0x104B9, 0x104E1], [0x104BA, 0x104E2], [0x104BB, 0x104E3], [0x104BC, 0x104E4], [0x104BD, 0x104E5], [0x104BE, 0x104E6], [0x104BF, 0x104E7], [0x104C0, 0x104E8], [0x104C1, 0x104E9], [0x104C2, 0x104EA], [0x104C3, 0x104EB], [0x104C4, 0x104EC], [0x104C5, 0x104ED], [0x104C6, 0x104EE], [0x104C7, 0x104EF], [0x104C8, 0x104F0], [0x104C9, 0x104F1], [0x104CA, 0x104F2], [0x104CB, 0x104F3], [0x104CC, 0x104F4], [0x104CD, 0x104F5], [0x104CE, 0x104F6], [0x104CF, 0x104F7], [0x104D0, 0x104F8], [0x104D1, 0x104F9], [0x104D2, 0x104FA], [0x104D3, 0x104FB], [0x104D8, 0x104B0], [0x104D9, 0x104B1], [0x104DA, 0x104B2], [0x104DB, 0x104B3], [0x104DC, 0x104B4], [0x104DD, 0x104B5], [0x104DE, 0x104B6], [0x104DF, 0x104B7], [0x104E0, 0x104B8], [0x104E1, 0x104B9], [0x104E2, 0x104BA], [0x104E3, 0x104BB], [0x104E4, 0x104BC], [0x104E5, 0x104BD], [0x104E6, 0x104BE], [0x104E7, 0x104BF], [0x104E8, 0x104C0], [0x104E9, 0x104C1], [0x104EA, 0x104C2], [0x104EB, 0x104C3], [0x104EC, 0x104C4], [0x104ED, 0x104C5], [0x104EE, 0x104C6], [0x104EF, 0x104C7], [0x104F0, 0x104C8], [0x104F1, 0x104C9], [0x104F2, 0x104CA], [0x104F3, 0x104CB], [0x104F4, 0x104CC], [0x104F5, 0x104CD], [0x104F6, 0x104CE], [0x104F7, 0x104CF], [0x104F8, 0x104D0], [0x104F9, 0x104D1], [0x104FA, 0x104D2], [0x104FB, 0x104D3], [0x10570, 0x10597], [0x10571, 0x10598], [0x10572, 0x10599], [0x10573, 0x1059A], [0x10574, 0x1059B], [0x10575, 0x1059C], [0x10576, 0x1059D], [0x10577, 0x1059E], [0x10578, 0x1059F], [0x10579, 0x105A0], [0x1057A, 0x105A1], [0x1057C, 0x105A3], [0x1057D, 0x105A4], [0x1057E, 0x105A5], [0x1057F, 0x105A6], [0x10580, 0x105A7], [0x10581, 0x105A8], [0x10582, 0x105A9], [0x10583, 0x105AA], [0x10584, 0x105AB], [0x10585, 0x105AC], [0x10586, 0x105AD], [0x10587, 0x105AE], [0x10588, 0x105AF], [0x10589, 0x105B0], [0x1058A, 0x105B1], [0x1058C, 0x105B3], [0x1058D, 0x105B4], [0x1058E, 0x105B5], [0x1058F, 0x105B6], [0x10590, 0x105B7], [0x10591, 0x105B8], [0x10592, 0x105B9], [0x10594, 0x105BB], [0x10595, 0x105BC], [0x10597, 0x10570], [0x10598, 0x10571], [0x10599, 0x10572], [0x1059A, 0x10573], [0x1059B, 0x10574], [0x1059C, 0x10575], [0x1059D, 0x10576], [0x1059E, 0x10577], [0x1059F, 0x10578], [0x105A0, 0x10579], [0x105A1, 0x1057A], [0x105A3, 0x1057C], [0x105A4, 0x1057D], [0x105A5, 0x1057E], [0x105A6, 0x1057F], [0x105A7, 0x10580], [0x105A8, 0x10581], [0x105A9, 0x10582], [0x105AA, 0x10583], [0x105AB, 0x10584], [0x105AC, 0x10585], [0x105AD, 0x10586], [0x105AE, 0x10587], [0x105AF, 0x10588], [0x105B0, 0x10589], [0x105B1, 0x1058A], [0x105B3, 0x1058C], [0x105B4, 0x1058D], [0x105B5, 0x1058E], [0x105B6, 0x1058F], [0x105B7, 0x10590], [0x105B8, 0x10591], [0x105B9, 0x10592], [0x105BB, 0x10594], [0x105BC, 0x10595], [0x10C80, 0x10CC0], [0x10C81, 0x10CC1], [0x10C82, 0x10CC2], [0x10C83, 0x10CC3], [0x10C84, 0x10CC4], [0x10C85, 0x10CC5], [0x10C86, 0x10CC6], [0x10C87, 0x10CC7], [0x10C88, 0x10CC8], [0x10C89, 0x10CC9], [0x10C8A, 0x10CCA], [0x10C8B, 0x10CCB], [0x10C8C, 0x10CCC], [0x10C8D, 0x10CCD], [0x10C8E, 0x10CCE], [0x10C8F, 0x10CCF], [0x10C90, 0x10CD0], [0x10C91, 0x10CD1], [0x10C92, 0x10CD2], [0x10C93, 0x10CD3], [0x10C94, 0x10CD4], [0x10C95, 0x10CD5], [0x10C96, 0x10CD6], [0x10C97, 0x10CD7], [0x10C98, 0x10CD8], [0x10C99, 0x10CD9], [0x10C9A, 0x10CDA], [0x10C9B, 0x10CDB], [0x10C9C, 0x10CDC], [0x10C9D, 0x10CDD], [0x10C9E, 0x10CDE], [0x10C9F, 0x10CDF], [0x10CA0, 0x10CE0], [0x10CA1, 0x10CE1], [0x10CA2, 0x10CE2], [0x10CA3, 0x10CE3], [0x10CA4, 0x10CE4], [0x10CA5, 0x10CE5], [0x10CA6, 0x10CE6], [0x10CA7, 0x10CE7], [0x10CA8, 0x10CE8], [0x10CA9, 0x10CE9], [0x10CAA, 0x10CEA], [0x10CAB, 0x10CEB], [0x10CAC, 0x10CEC], [0x10CAD, 0x10CED], [0x10CAE, 0x10CEE], [0x10CAF, 0x10CEF], [0x10CB0, 0x10CF0], [0x10CB1, 0x10CF1], [0x10CB2, 0x10CF2], [0x10CC0, 0x10C80], [0x10CC1, 0x10C81], [0x10CC2, 0x10C82], [0x10CC3, 0x10C83], [0x10CC4, 0x10C84], [0x10CC5, 0x10C85], [0x10CC6, 0x10C86], [0x10CC7, 0x10C87], [0x10CC8, 0x10C88], [0x10CC9, 0x10C89], [0x10CCA, 0x10C8A], [0x10CCB, 0x10C8B], [0x10CCC, 0x10C8C], [0x10CCD, 0x10C8D], [0x10CCE, 0x10C8E], [0x10CCF, 0x10C8F], [0x10CD0, 0x10C90], [0x10CD1, 0x10C91], [0x10CD2, 0x10C92], [0x10CD3, 0x10C93], [0x10CD4, 0x10C94], [0x10CD5, 0x10C95], [0x10CD6, 0x10C96], [0x10CD7, 0x10C97], [0x10CD8, 0x10C98], [0x10CD9, 0x10C99], [0x10CDA, 0x10C9A], [0x10CDB, 0x10C9B], [0x10CDC, 0x10C9C], [0x10CDD, 0x10C9D], [0x10CDE, 0x10C9E], [0x10CDF, 0x10C9F], [0x10CE0, 0x10CA0], [0x10CE1, 0x10CA1], [0x10CE2, 0x10CA2], [0x10CE3, 0x10CA3], [0x10CE4, 0x10CA4], [0x10CE5, 0x10CA5], [0x10CE6, 0x10CA6], [0x10CE7, 0x10CA7], [0x10CE8, 0x10CA8], [0x10CE9, 0x10CA9], [0x10CEA, 0x10CAA], [0x10CEB, 0x10CAB], [0x10CEC, 0x10CAC], [0x10CED, 0x10CAD], [0x10CEE, 0x10CAE], [0x10CEF, 0x10CAF], [0x10CF0, 0x10CB0], [0x10CF1, 0x10CB1], [0x10CF2, 0x10CB2], [0x118A0, 0x118C0], [0x118A1, 0x118C1], [0x118A2, 0x118C2], [0x118A3, 0x118C3], [0x118A4, 0x118C4], [0x118A5, 0x118C5], [0x118A6, 0x118C6], [0x118A7, 0x118C7], [0x118A8, 0x118C8], [0x118A9, 0x118C9], [0x118AA, 0x118CA], [0x118AB, 0x118CB], [0x118AC, 0x118CC], [0x118AD, 0x118CD], [0x118AE, 0x118CE], [0x118AF, 0x118CF], [0x118B0, 0x118D0], [0x118B1, 0x118D1], [0x118B2, 0x118D2], [0x118B3, 0x118D3], [0x118B4, 0x118D4], [0x118B5, 0x118D5], [0x118B6, 0x118D6], [0x118B7, 0x118D7], [0x118B8, 0x118D8], [0x118B9, 0x118D9], [0x118BA, 0x118DA], [0x118BB, 0x118DB], [0x118BC, 0x118DC], [0x118BD, 0x118DD], [0x118BE, 0x118DE], [0x118BF, 0x118DF], [0x118C0, 0x118A0], [0x118C1, 0x118A1], [0x118C2, 0x118A2], [0x118C3, 0x118A3], [0x118C4, 0x118A4], [0x118C5, 0x118A5], [0x118C6, 0x118A6], [0x118C7, 0x118A7], [0x118C8, 0x118A8], [0x118C9, 0x118A9], [0x118CA, 0x118AA], [0x118CB, 0x118AB], [0x118CC, 0x118AC], [0x118CD, 0x118AD], [0x118CE, 0x118AE], [0x118CF, 0x118AF], [0x118D0, 0x118B0], [0x118D1, 0x118B1], [0x118D2, 0x118B2], [0x118D3, 0x118B3], [0x118D4, 0x118B4], [0x118D5, 0x118B5], [0x118D6, 0x118B6], [0x118D7, 0x118B7], [0x118D8, 0x118B8], [0x118D9, 0x118B9], [0x118DA, 0x118BA], [0x118DB, 0x118BB], [0x118DC, 0x118BC], [0x118DD, 0x118BD], [0x118DE, 0x118BE], [0x118DF, 0x118BF], [0x16E40, 0x16E60], [0x16E41, 0x16E61], [0x16E42, 0x16E62], [0x16E43, 0x16E63], [0x16E44, 0x16E64], [0x16E45, 0x16E65], [0x16E46, 0x16E66], [0x16E47, 0x16E67], [0x16E48, 0x16E68], [0x16E49, 0x16E69], [0x16E4A, 0x16E6A], [0x16E4B, 0x16E6B], [0x16E4C, 0x16E6C], [0x16E4D, 0x16E6D], [0x16E4E, 0x16E6E], [0x16E4F, 0x16E6F], [0x16E50, 0x16E70], [0x16E51, 0x16E71], [0x16E52, 0x16E72], [0x16E53, 0x16E73], [0x16E54, 0x16E74], [0x16E55, 0x16E75], [0x16E56, 0x16E76], [0x16E57, 0x16E77], [0x16E58, 0x16E78], [0x16E59, 0x16E79], [0x16E5A, 0x16E7A], [0x16E5B, 0x16E7B], [0x16E5C, 0x16E7C], [0x16E5D, 0x16E7D], [0x16E5E, 0x16E7E], [0x16E5F, 0x16E7F], [0x16E60, 0x16E40], [0x16E61, 0x16E41], [0x16E62, 0x16E42], [0x16E63, 0x16E43], [0x16E64, 0x16E44], [0x16E65, 0x16E45], [0x16E66, 0x16E46], [0x16E67, 0x16E47], [0x16E68, 0x16E48], [0x16E69, 0x16E49], [0x16E6A, 0x16E4A], [0x16E6B, 0x16E4B], [0x16E6C, 0x16E4C], [0x16E6D, 0x16E4D], [0x16E6E, 0x16E4E], [0x16E6F, 0x16E4F], [0x16E70, 0x16E50], [0x16E71, 0x16E51], [0x16E72, 0x16E52], [0x16E73, 0x16E53], [0x16E74, 0x16E54], [0x16E75, 0x16E55], [0x16E76, 0x16E56], [0x16E77, 0x16E57], [0x16E78, 0x16E58], [0x16E79, 0x16E59], [0x16E7A, 0x16E5A], [0x16E7B, 0x16E5B], [0x16E7C, 0x16E5C], [0x16E7D, 0x16E5D], [0x16E7E, 0x16E5E], [0x16E7F, 0x16E5F], [0x1E900, 0x1E922], [0x1E901, 0x1E923], [0x1E902, 0x1E924], [0x1E903, 0x1E925], [0x1E904, 0x1E926], [0x1E905, 0x1E927], [0x1E906, 0x1E928], [0x1E907, 0x1E929], [0x1E908, 0x1E92A], [0x1E909, 0x1E92B], [0x1E90A, 0x1E92C], [0x1E90B, 0x1E92D], [0x1E90C, 0x1E92E], [0x1E90D, 0x1E92F], [0x1E90E, 0x1E930], [0x1E90F, 0x1E931], [0x1E910, 0x1E932], [0x1E911, 0x1E933], [0x1E912, 0x1E934], [0x1E913, 0x1E935], [0x1E914, 0x1E936], [0x1E915, 0x1E937], [0x1E916, 0x1E938], [0x1E917, 0x1E939], [0x1E918, 0x1E93A], [0x1E919, 0x1E93B], [0x1E91A, 0x1E93C], [0x1E91B, 0x1E93D], [0x1E91C, 0x1E93E], [0x1E91D, 0x1E93F], [0x1E91E, 0x1E940], [0x1E91F, 0x1E941], [0x1E920, 0x1E942], [0x1E921, 0x1E943], [0x1E922, 0x1E900], [0x1E923, 0x1E901], [0x1E924, 0x1E902], [0x1E925, 0x1E903], [0x1E926, 0x1E904], [0x1E927, 0x1E905], [0x1E928, 0x1E906], [0x1E929, 0x1E907], [0x1E92A, 0x1E908], [0x1E92B, 0x1E909], [0x1E92C, 0x1E90A], [0x1E92D, 0x1E90B], [0x1E92E, 0x1E90C], [0x1E92F, 0x1E90D], [0x1E930, 0x1E90E], [0x1E931, 0x1E90F], [0x1E932, 0x1E910], [0x1E933, 0x1E911], [0x1E934, 0x1E912], [0x1E935, 0x1E913], [0x1E936, 0x1E914], [0x1E937, 0x1E915], [0x1E938, 0x1E916], [0x1E939, 0x1E917], [0x1E93A, 0x1E918], [0x1E93B, 0x1E919], [0x1E93C, 0x1E91A], [0x1E93D, 0x1E91B], [0x1E93E, 0x1E91C], [0x1E93F, 0x1E91D], [0x1E940, 0x1E91E], [0x1E941, 0x1E91F], [0x1E942, 0x1E920], [0x1E943, 0x1E921]]);","'use strict';\n\nconst generate = require('regjsgen').generate;\n\nconst parse = require('regjsparser').parse;\n\nconst regenerate = require('regenerate');\n\nconst unicodeMatchProperty = require('unicode-match-property-ecmascript');\n\nconst unicodeMatchPropertyValue = require('unicode-match-property-value-ecmascript');\n\nconst iuMappings = require('./data/iu-mappings.js');\n\nconst ESCAPE_SETS = require('./data/character-class-escape-sets.js'); // Prepare a Regenerate set containing all code points, used for negative\n// character classes (if any).\n\n\nconst UNICODE_SET = regenerate().addRange(0x0, 0x10FFFF); // Without the `u` flag, the range stops at 0xFFFF.\n// https://mths.be/es6#sec-pattern-semantics\n\nconst BMP_SET = regenerate().addRange(0x0, 0xFFFF); // Prepare a Regenerate set containing all code points that are supposed to be\n// matched by `/./u`. https://mths.be/es6#sec-atom\n\nconst DOT_SET_UNICODE = UNICODE_SET.clone() // all Unicode code points\n.remove( // minus `LineTerminator`s (https://mths.be/es6#sec-line-terminators):\n0x000A, // Line Feed \n0x000D, // Carriage Return \n0x2028, // Line Separator \n0x2029 // Paragraph Separator \n);\n\nconst getCharacterClassEscapeSet = (character, unicode, ignoreCase) => {\n if (unicode) {\n if (ignoreCase) {\n return ESCAPE_SETS.UNICODE_IGNORE_CASE.get(character);\n }\n\n return ESCAPE_SETS.UNICODE.get(character);\n }\n\n return ESCAPE_SETS.REGULAR.get(character);\n};\n\nconst getUnicodeDotSet = dotAll => {\n return dotAll ? UNICODE_SET : DOT_SET_UNICODE;\n};\n\nconst getUnicodePropertyValueSet = (property, value) => {\n const path = value ? \"\".concat(property, \"/\").concat(value) : \"Binary_Property/\".concat(property);\n\n try {\n return require(\"regenerate-unicode-properties/\".concat(path, \".js\"));\n } catch (exception) {\n throw new Error(\"Failed to recognize value `\".concat(value, \"` for property \") + \"`\".concat(property, \"`.\"));\n }\n};\n\nconst handleLoneUnicodePropertyNameOrValue = value => {\n // It could be a `General_Category` value or a binary property.\n // Note: `unicodeMatchPropertyValue` throws on invalid values.\n try {\n const property = 'General_Category';\n const category = unicodeMatchPropertyValue(property, value);\n return getUnicodePropertyValueSet(property, category);\n } catch (exception) {} // It’s not a `General_Category` value, so check if it’s a binary\n // property. Note: `unicodeMatchProperty` throws on invalid properties.\n\n\n const property = unicodeMatchProperty(value);\n return getUnicodePropertyValueSet(property);\n};\n\nconst getUnicodePropertyEscapeSet = (value, isNegative) => {\n const parts = value.split('=');\n const firstPart = parts[0];\n let set;\n\n if (parts.length == 1) {\n set = handleLoneUnicodePropertyNameOrValue(firstPart);\n } else {\n // The pattern consists of two parts, i.e. `Property=Value`.\n const property = unicodeMatchProperty(firstPart);\n const value = unicodeMatchPropertyValue(property, parts[1]);\n set = getUnicodePropertyValueSet(property, value);\n }\n\n if (isNegative) {\n return UNICODE_SET.clone().remove(set);\n }\n\n return set.clone();\n}; // Given a range of code points, add any case-folded code points in that range\n// to a set.\n\n\nregenerate.prototype.iuAddRange = function (min, max) {\n const $this = this;\n\n do {\n const folded = caseFold(min);\n\n if (folded) {\n $this.add(folded);\n }\n } while (++min <= max);\n\n return $this;\n};\n\nconst update = (item, pattern) => {\n let tree = parse(pattern, config.useUnicodeFlag ? 'u' : '');\n\n switch (tree.type) {\n case 'characterClass':\n case 'group':\n case 'value':\n // No wrapping needed.\n break;\n\n default:\n // Wrap the pattern in a non-capturing group.\n tree = wrap(tree, pattern);\n }\n\n Object.assign(item, tree);\n};\n\nconst wrap = (tree, pattern) => {\n // Wrap the pattern in a non-capturing group.\n return {\n 'type': 'group',\n 'behavior': 'ignore',\n 'body': [tree],\n 'raw': \"(?:\".concat(pattern, \")\")\n };\n};\n\nconst caseFold = codePoint => {\n return iuMappings.get(codePoint) || false;\n};\n\nconst processCharacterClass = (characterClassItem, regenerateOptions) => {\n const set = regenerate();\n\n for (const item of characterClassItem.body) {\n switch (item.type) {\n case 'value':\n set.add(item.codePoint);\n\n if (config.ignoreCase && config.unicode && !config.useUnicodeFlag) {\n const folded = caseFold(item.codePoint);\n\n if (folded) {\n set.add(folded);\n }\n }\n\n break;\n\n case 'characterClassRange':\n const min = item.min.codePoint;\n const max = item.max.codePoint;\n set.addRange(min, max);\n\n if (config.ignoreCase && config.unicode && !config.useUnicodeFlag) {\n set.iuAddRange(min, max);\n }\n\n break;\n\n case 'characterClassEscape':\n set.add(getCharacterClassEscapeSet(item.value, config.unicode, config.ignoreCase));\n break;\n\n case 'unicodePropertyEscape':\n set.add(getUnicodePropertyEscapeSet(item.value, item.negative));\n break;\n // The `default` clause is only here as a safeguard; it should never be\n // reached. Code coverage tools should ignore it.\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown term type: \".concat(item.type));\n }\n }\n\n if (characterClassItem.negative) {\n update(characterClassItem, \"(?!\".concat(set.toString(regenerateOptions), \")[\\\\s\\\\S]\"));\n } else {\n update(characterClassItem, set.toString(regenerateOptions));\n }\n\n return characterClassItem;\n};\n\nconst updateNamedReference = (item, index) => {\n delete item.name;\n item.matchIndex = index;\n};\n\nconst assertNoUnmatchedReferences = groups => {\n const unmatchedReferencesNames = Object.keys(groups.unmatchedReferences);\n\n if (unmatchedReferencesNames.length > 0) {\n throw new Error(\"Unknown group names: \".concat(unmatchedReferencesNames));\n }\n};\n\nconst processTerm = (item, regenerateOptions, groups) => {\n switch (item.type) {\n case 'dot':\n if (config.useDotAllFlag) {\n break;\n } else if (config.unicode) {\n update(item, getUnicodeDotSet(config.dotAll).toString(regenerateOptions));\n } else if (config.dotAll) {\n // TODO: consider changing this at the regenerate level.\n update(item, '[\\\\s\\\\S]');\n }\n\n break;\n\n case 'characterClass':\n item = processCharacterClass(item, regenerateOptions);\n break;\n\n case 'unicodePropertyEscape':\n if (config.unicodePropertyEscape) {\n update(item, getUnicodePropertyEscapeSet(item.value, item.negative).toString(regenerateOptions));\n }\n\n break;\n\n case 'characterClassEscape':\n update(item, getCharacterClassEscapeSet(item.value, config.unicode, config.ignoreCase).toString(regenerateOptions));\n break;\n\n case 'group':\n if (item.behavior == 'normal') {\n groups.lastIndex++;\n }\n\n if (item.name && config.namedGroup) {\n const name = item.name.value;\n\n if (groups.names[name]) {\n throw new Error(\"Multiple groups with the same name (\".concat(name, \") are not allowed.\"));\n }\n\n const index = groups.lastIndex;\n delete item.name;\n groups.names[name] = index;\n\n if (groups.onNamedGroup) {\n groups.onNamedGroup.call(null, name, index);\n }\n\n if (groups.unmatchedReferences[name]) {\n groups.unmatchedReferences[name].forEach(reference => {\n updateNamedReference(reference, index);\n });\n delete groups.unmatchedReferences[name];\n }\n }\n\n /* falls through */\n\n case 'alternative':\n case 'disjunction':\n case 'quantifier':\n item.body = item.body.map(term => {\n return processTerm(term, regenerateOptions, groups);\n });\n break;\n\n case 'value':\n const codePoint = item.codePoint;\n const set = regenerate(codePoint);\n\n if (config.ignoreCase && config.unicode && !config.useUnicodeFlag) {\n const folded = caseFold(codePoint);\n\n if (folded) {\n set.add(folded);\n }\n }\n\n update(item, set.toString(regenerateOptions));\n break;\n\n case 'reference':\n if (item.name) {\n const name = item.name.value;\n const index = groups.names[name];\n\n if (index) {\n updateNamedReference(item, index);\n break;\n }\n\n if (!groups.unmatchedReferences[name]) {\n groups.unmatchedReferences[name] = [];\n } // Keep track of references used before the corresponding group.\n\n\n groups.unmatchedReferences[name].push(item);\n }\n\n break;\n\n case 'anchor':\n case 'empty':\n case 'group':\n // Nothing to do here.\n break;\n // The `default` clause is only here as a safeguard; it should never be\n // reached. Code coverage tools should ignore it.\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown term type: \".concat(item.type));\n }\n\n return item;\n};\n\nconst config = {\n 'ignoreCase': false,\n 'unicode': false,\n 'dotAll': false,\n 'useDotAllFlag': false,\n 'useUnicodeFlag': false,\n 'unicodePropertyEscape': false,\n 'namedGroup': false\n};\n\nconst rewritePattern = (pattern, flags, options) => {\n config.unicode = flags && flags.includes('u');\n const regjsparserFeatures = {\n 'unicodePropertyEscape': config.unicode,\n 'namedGroups': true,\n 'lookbehind': options && options.lookbehind\n };\n config.ignoreCase = flags && flags.includes('i');\n const supportDotAllFlag = options && options.dotAllFlag;\n config.dotAll = supportDotAllFlag && flags && flags.includes('s');\n config.namedGroup = options && options.namedGroup;\n config.useDotAllFlag = options && options.useDotAllFlag;\n config.useUnicodeFlag = options && options.useUnicodeFlag;\n config.unicodePropertyEscape = options && options.unicodePropertyEscape;\n\n if (supportDotAllFlag && config.useDotAllFlag) {\n throw new Error('`useDotAllFlag` and `dotAllFlag` cannot both be true!');\n }\n\n const regenerateOptions = {\n 'hasUnicodeFlag': config.useUnicodeFlag,\n 'bmpOnly': !config.unicode\n };\n const groups = {\n 'onNamedGroup': options && options.onNamedGroup,\n 'lastIndex': 0,\n 'names': Object.create(null),\n // { [name]: index }\n 'unmatchedReferences': Object.create(null) // { [name]: Array }\n\n };\n const tree = parse(pattern, flags, regjsparserFeatures); // Note: `processTerm` mutates `tree` and `groups`.\n\n processTerm(tree, regenerateOptions, groups);\n assertNoUnmatchedReferences(groups);\n return generate(tree);\n};\n\nmodule.exports = rewritePattern;","/*!\n * regjsgen 0.5.2\n * Copyright 2014-2020 Benjamin Tan \n * Available under the MIT license \n */\n;\n(function () {\n 'use strict'; // Used to determine if values are of the language type `Object`.\n\n var objectTypes = {\n 'function': true,\n 'object': true\n }; // Used as a reference to the global object.\n\n var root = objectTypes[typeof window] && window || this; // Detect free variable `exports`.\n\n var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; // Detect free variable `module`.\n\n var hasFreeModule = objectTypes[typeof module] && module && !module.nodeType; // Detect free variable `global` from Node.js or Browserified code and use it as `root`.\n\n var freeGlobal = freeExports && hasFreeModule && typeof global == 'object' && global;\n\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n } // Used to check objects for own properties.\n\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /*--------------------------------------------------------------------------*/\n // Generates a string based on the given code point.\n // Based on https://mths.be/fromcodepoint by @mathias.\n\n function fromCodePoint() {\n var codePoint = Number(arguments[0]);\n\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xFFFF) {\n // BMP code point\n return String.fromCharCode(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n var highSurrogate = (codePoint >> 10) + 0xD800;\n var lowSurrogate = codePoint % 0x400 + 0xDC00;\n return String.fromCharCode(highSurrogate, lowSurrogate);\n }\n }\n /*--------------------------------------------------------------------------*/\n // Ensures that nodes have the correct types.\n\n\n var assertTypeRegexMap = {};\n\n function assertType(type, expected) {\n if (expected.indexOf('|') == -1) {\n if (type == expected) {\n return;\n }\n\n throw Error('Invalid node type: ' + type + '; expected type: ' + expected);\n }\n\n expected = hasOwnProperty.call(assertTypeRegexMap, expected) ? assertTypeRegexMap[expected] : assertTypeRegexMap[expected] = RegExp('^(?:' + expected + ')$');\n\n if (expected.test(type)) {\n return;\n }\n\n throw Error('Invalid node type: ' + type + '; expected types: ' + expected);\n }\n /*--------------------------------------------------------------------------*/\n // Generates a regular expression string based on an AST.\n\n\n function generate(node) {\n var type = node.type;\n\n if (hasOwnProperty.call(generators, type)) {\n return generators[type](node);\n }\n\n throw Error('Invalid node type: ' + type);\n } // Constructs a string by concatentating the output of each term.\n\n\n function generateSequence(generator, terms) {\n var i = -1,\n length = terms.length,\n result = '',\n term;\n\n while (++i < length) {\n term = terms[i]; // Ensure that `\\0` null escapes followed by number symbols are not\n // treated as backreferences.\n\n if (i + 1 < length && terms[i].type == 'value' && terms[i].kind == 'null' && terms[i + 1].type == 'value' && terms[i + 1].kind == 'symbol' && terms[i + 1].codePoint >= 48 && terms[i + 1].codePoint <= 57) {\n result += '\\\\000';\n continue;\n }\n\n result += generator(term);\n }\n\n return result;\n }\n /*--------------------------------------------------------------------------*/\n\n\n function generateAlternative(node) {\n assertType(node.type, 'alternative');\n return generateSequence(generateTerm, node.body);\n }\n\n function generateAnchor(node) {\n assertType(node.type, 'anchor');\n\n switch (node.kind) {\n case 'start':\n return '^';\n\n case 'end':\n return '$';\n\n case 'boundary':\n return '\\\\b';\n\n case 'not-boundary':\n return '\\\\B';\n\n default:\n throw Error('Invalid assertion');\n }\n }\n\n function generateAtom(node) {\n assertType(node.type, 'anchor|characterClass|characterClassEscape|dot|group|reference|value');\n return generate(node);\n }\n\n function generateCharacterClass(node) {\n assertType(node.type, 'characterClass');\n return '[' + (node.negative ? '^' : '') + generateSequence(generateClassAtom, node.body) + ']';\n }\n\n function generateCharacterClassEscape(node) {\n assertType(node.type, 'characterClassEscape');\n return '\\\\' + node.value;\n }\n\n function generateCharacterClassRange(node) {\n assertType(node.type, 'characterClassRange');\n var min = node.min,\n max = node.max;\n\n if (min.type == 'characterClassRange' || max.type == 'characterClassRange') {\n throw Error('Invalid character class range');\n }\n\n return generateClassAtom(min) + '-' + generateClassAtom(max);\n }\n\n function generateClassAtom(node) {\n assertType(node.type, 'anchor|characterClassEscape|characterClassRange|dot|value');\n return generate(node);\n }\n\n function generateDisjunction(node) {\n assertType(node.type, 'disjunction');\n var body = node.body,\n i = -1,\n length = body.length,\n result = '';\n\n while (++i < length) {\n if (i != 0) {\n result += '|';\n }\n\n result += generate(body[i]);\n }\n\n return result;\n }\n\n function generateDot(node) {\n assertType(node.type, 'dot');\n return '.';\n }\n\n function generateGroup(node) {\n assertType(node.type, 'group');\n var result = '';\n\n switch (node.behavior) {\n case 'normal':\n if (node.name) {\n result += '?<' + generateIdentifier(node.name) + '>';\n }\n\n break;\n\n case 'ignore':\n result += '?:';\n break;\n\n case 'lookahead':\n result += '?=';\n break;\n\n case 'negativeLookahead':\n result += '?!';\n break;\n\n case 'lookbehind':\n result += '?<=';\n break;\n\n case 'negativeLookbehind':\n result += '?';\n }\n\n throw new Error('Unknown reference type');\n }\n\n function generateTerm(node) {\n assertType(node.type, 'anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|unicodePropertyEscape|value|dot');\n return generate(node);\n }\n\n function generateUnicodePropertyEscape(node) {\n assertType(node.type, 'unicodePropertyEscape');\n return '\\\\' + (node.negative ? 'P' : 'p') + '{' + node.value + '}';\n }\n\n function generateValue(node) {\n assertType(node.type, 'value');\n var kind = node.kind,\n codePoint = node.codePoint;\n\n if (typeof codePoint != 'number') {\n throw new Error('Invalid code point: ' + codePoint);\n }\n\n switch (kind) {\n case 'controlLetter':\n return '\\\\c' + fromCodePoint(codePoint + 64);\n\n case 'hexadecimalEscape':\n return '\\\\x' + ('00' + codePoint.toString(16).toUpperCase()).slice(-2);\n\n case 'identifier':\n return '\\\\' + fromCodePoint(codePoint);\n\n case 'null':\n return '\\\\' + codePoint;\n\n case 'octal':\n return '\\\\' + ('000' + codePoint.toString(8)).slice(-3);\n\n case 'singleEscape':\n switch (codePoint) {\n case 0x0008:\n return '\\\\b';\n\n case 0x0009:\n return '\\\\t';\n\n case 0x000A:\n return '\\\\n';\n\n case 0x000B:\n return '\\\\v';\n\n case 0x000C:\n return '\\\\f';\n\n case 0x000D:\n return '\\\\r';\n\n case 0x002D:\n return '\\\\-';\n\n default:\n throw Error('Invalid code point: ' + codePoint);\n }\n\n case 'symbol':\n return fromCodePoint(codePoint);\n\n case 'unicodeEscape':\n return '\\\\u' + ('0000' + codePoint.toString(16).toUpperCase()).slice(-4);\n\n case 'unicodeCodePointEscape':\n return '\\\\u{' + codePoint.toString(16).toUpperCase() + '}';\n\n default:\n throw Error('Unsupported node kind: ' + kind);\n }\n }\n /*--------------------------------------------------------------------------*/\n // Used to generate strings for each node type.\n\n\n var generators = {\n 'alternative': generateAlternative,\n 'anchor': generateAnchor,\n 'characterClass': generateCharacterClass,\n 'characterClassEscape': generateCharacterClassEscape,\n 'characterClassRange': generateCharacterClassRange,\n 'disjunction': generateDisjunction,\n 'dot': generateDot,\n 'group': generateGroup,\n 'quantifier': generateQuantifier,\n 'reference': generateReference,\n 'unicodePropertyEscape': generateUnicodePropertyEscape,\n 'value': generateValue\n };\n /*--------------------------------------------------------------------------*/\n // Export regjsgen.\n\n var regjsgen = {\n 'generate': generate\n }; // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Define as an anonymous module so it can be aliased through path mapping.\n define(function () {\n return regjsgen;\n });\n root.regjsgen = regjsgen;\n } // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else if (freeExports && hasFreeModule) {\n // Export for CommonJS support.\n freeExports.generate = generate;\n } else {\n // Export to the global object.\n root.regjsgen = regjsgen;\n }\n}).call(this);","// regjsparser\n//\n// ==================================================================\n//\n// See ECMA-262 Standard: 15.10.1\n//\n// NOTE: The ECMA-262 standard uses the term \"Assertion\" for /^/. Here the\n// term \"Anchor\" is used.\n//\n// Pattern ::\n// Disjunction\n//\n// Disjunction ::\n// Alternative\n// Alternative | Disjunction\n//\n// Alternative ::\n// [empty]\n// Alternative Term\n//\n// Term ::\n// Anchor\n// Atom\n// Atom Quantifier\n//\n// Anchor ::\n// ^\n// $\n// \\ b\n// \\ B\n// ( ? = Disjunction )\n// ( ? ! Disjunction )\n// ( ? < = Disjunction )\n// ( ? < ! Disjunction )\n//\n// Quantifier ::\n// QuantifierPrefix\n// QuantifierPrefix ?\n//\n// QuantifierPrefix ::\n// *\n// +\n// ?\n// { DecimalDigits }\n// { DecimalDigits , }\n// { DecimalDigits , DecimalDigits }\n//\n// Atom ::\n// PatternCharacter\n// .\n// \\ AtomEscape\n// CharacterClass\n// ( GroupSpecifier Disjunction )\n// ( ? : Disjunction )\n//\n// PatternCharacter ::\n// SourceCharacter but not any of: ^ $ \\ . * + ? ( ) [ ] { } |\n//\n// AtomEscape ::\n// DecimalEscape\n// CharacterClassEscape\n// CharacterEscape\n// k GroupName\n//\n// CharacterEscape[U] ::\n// ControlEscape\n// c ControlLetter\n// HexEscapeSequence\n// RegExpUnicodeEscapeSequence[?U] (ES6)\n// IdentityEscape[?U]\n//\n// ControlEscape ::\n// one of f n r t v\n// ControlLetter ::\n// one of\n// a b c d e f g h i j k l m n o p q r s t u v w x y z\n// A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n//\n// IdentityEscape ::\n// SourceCharacter but not c\n//\n// DecimalEscape ::\n// DecimalIntegerLiteral [lookahead ∉ DecimalDigit]\n//\n// CharacterClassEscape ::\n// one of d D s S w W\n//\n// CharacterClass ::\n// [ [lookahead ∉ {^}] ClassRanges ]\n// [ ^ ClassRanges ]\n//\n// ClassRanges ::\n// [empty]\n// [~V] NonemptyClassRanges\n// [+V] ClassContents\n//\n// NonemptyClassRanges ::\n// ClassAtom\n// ClassAtom NonemptyClassRangesNoDash\n// ClassAtom - ClassAtom ClassRanges\n//\n// NonemptyClassRangesNoDash ::\n// ClassAtom\n// ClassAtomNoDash NonemptyClassRangesNoDash\n// ClassAtomNoDash - ClassAtom ClassRanges\n//\n// ClassAtom ::\n// -\n// ClassAtomNoDash\n//\n// ClassAtomNoDash ::\n// SourceCharacter but not one of \\ or ] or -\n// \\ ClassEscape\n//\n// ClassEscape ::\n// DecimalEscape\n// b\n// CharacterEscape\n// CharacterClassEscape\n//\n// GroupSpecifier ::\n// [empty]\n// ? GroupName\n//\n// GroupName ::\n// < RegExpIdentifierName >\n//\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierContinue\n//\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// $\n// _\n// \\ RegExpUnicodeEscapeSequence\n//\n// RegExpIdentifierContinue ::\n// UnicodeIDContinue\n// $\n// _\n// \\ RegExpUnicodeEscapeSequence\n// \n// \n//\n// --------------------------------------------------------------\n// NOTE: The following productions refer to the \"set notation and\n// properties of strings\" proposal.\n// https://github.com/tc39/proposal-regexp-set-notation\n// --------------------------------------------------------------\n//\n// ClassContents ::\n// ClassUnion\n// ClassIntersection\n// ClassSubtraction\n//\n// ClassUnion ::\n// ClassRange ClassUnion?\n// ClassOperand ClassUnion?\n//\n// ClassIntersection ::\n// ClassOperand && [lookahead ≠ &] ClassOperand\n// ClassIntersection && [lookahead ≠ &] ClassOperand\n//\n// ClassSubtraction ::\n// ClassOperand -- ClassOperand\n// ClassSubtraction -- ClassOperand\n//\n// ClassOperand ::\n// ClassCharacter\n// ClassStrings\n// NestedClass\n//\n// NestedClass ::\n// [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n// [ ^ ClassRanges[+U,+V] ]\n// \\ CharacterClassEscape[+U, +V]\n//\n// ClassRange ::\n// ClassCharacter - ClassCharacter\n//\n// ClassCharacter ::\n// [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n// \\ CharacterEscape[+U]\n// \\ ClassHalfOfDouble\n// \\ b\n//\n// ClassSyntaxCharacter ::\n// one of ( ) [ ] { } / - \\ |\n//\n// ClassStrings ::\n// ( ClassString MoreClassStrings? )\n//\n// MoreClassStrings ::\n// | ClassString MoreClassStrings?\n//\n// ClassString ::\n// [empty]\n// NonEmptyClassString\n//\n// NonEmptyClassString ::\n// ClassCharacter NonEmptyClassString?\n//\n// ClassReservedDouble ::\n// one of && !! ## $$ %% ** ++ ,, .. :: ;; << == >> ?? @@ ^^ __ `` ~~\n//\n// ClassHalfOfDouble ::\n// one of & - ! # % , : ; < = > @ _ ` ~\n//\n(function () {\n var fromCodePoint = String.fromCodePoint || function () {\n // Implementation taken from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n return function fromCodePoint() {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n\n if (!length) {\n return '';\n }\n\n var result = '';\n\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xFFFF) {\n // BMP code point\n codeUnits.push(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xD800;\n lowSurrogate = codePoint % 0x400 + 0xDC00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n\n if (index + 1 == length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n\n return result;\n };\n }();\n\n function parse(str, flags, features) {\n if (!features) {\n features = {};\n }\n\n function addRaw(node) {\n node.raw = str.substring(node.range[0], node.range[1]);\n return node;\n }\n\n function updateRawStart(node, start) {\n node.range[0] = start;\n return addRaw(node);\n }\n\n function createAnchor(kind, rawLength) {\n return addRaw({\n type: 'anchor',\n kind: kind,\n range: [pos - rawLength, pos]\n });\n }\n\n function createValue(kind, codePoint, from, to) {\n return addRaw({\n type: 'value',\n kind: kind,\n codePoint: codePoint,\n range: [from, to]\n });\n }\n\n function createEscaped(kind, codePoint, value, fromOffset) {\n fromOffset = fromOffset || 0;\n return createValue(kind, codePoint, pos - (value.length + fromOffset), pos);\n }\n\n function createCharacter(matches) {\n var _char = matches[0];\n\n var first = _char.charCodeAt(0);\n\n if (hasUnicodeFlag) {\n var second;\n\n if (_char.length === 1 && first >= 0xD800 && first <= 0xDBFF) {\n second = lookahead().charCodeAt(0);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n pos++;\n return createValue('symbol', (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000, pos - 2, pos);\n }\n }\n }\n\n return createValue('symbol', first, pos - 1, pos);\n }\n\n function createDisjunction(alternatives, from, to) {\n return addRaw({\n type: 'disjunction',\n body: alternatives,\n range: [from, to]\n });\n }\n\n function createDot() {\n return addRaw({\n type: 'dot',\n range: [pos - 1, pos]\n });\n }\n\n function createCharacterClassEscape(value) {\n return addRaw({\n type: 'characterClassEscape',\n value: value,\n range: [pos - 2, pos]\n });\n }\n\n function createReference(matchIndex) {\n return addRaw({\n type: 'reference',\n matchIndex: parseInt(matchIndex, 10),\n range: [pos - 1 - matchIndex.length, pos]\n });\n }\n\n function createNamedReference(name) {\n return addRaw({\n type: 'reference',\n name: name,\n range: [name.range[0] - 3, pos]\n });\n }\n\n function createGroup(behavior, disjunction, from, to) {\n return addRaw({\n type: 'group',\n behavior: behavior,\n body: disjunction,\n range: [from, to]\n });\n }\n\n function createQuantifier(min, max, from, to) {\n if (to == null) {\n from = pos - 1;\n to = pos;\n }\n\n return addRaw({\n type: 'quantifier',\n min: min,\n max: max,\n greedy: true,\n body: null,\n // set later on\n range: [from, to]\n });\n }\n\n function createAlternative(terms, from, to) {\n return addRaw({\n type: 'alternative',\n body: terms,\n range: [from, to]\n });\n }\n\n function createCharacterClass(contents, negative, from, to) {\n return addRaw({\n type: 'characterClass',\n kind: contents.kind,\n body: contents.body,\n negative: negative,\n range: [from, to]\n });\n }\n\n function createClassRange(min, max, from, to) {\n // See 15.10.2.15:\n if (min.codePoint > max.codePoint) {\n bail('invalid range in character class', min.raw + '-' + max.raw, from, to);\n }\n\n return addRaw({\n type: 'characterClassRange',\n min: min,\n max: max,\n range: [from, to]\n });\n }\n\n function createClassStrings(strings, from, to) {\n return addRaw({\n type: 'classStrings',\n strings: strings,\n range: [from, to]\n });\n }\n\n function createClassString(characters, from, to) {\n return addRaw({\n type: 'classString',\n characters: characters,\n range: [from, to]\n });\n }\n\n function flattenBody(body) {\n if (body.type === 'alternative') {\n return body.body;\n } else {\n return [body];\n }\n }\n\n function incr(amount) {\n amount = amount || 1;\n var res = str.substring(pos, pos + amount);\n pos += amount || 1;\n return res;\n }\n\n function skip(value) {\n if (!match(value)) {\n bail('character', value);\n }\n }\n\n function match(value) {\n if (str.indexOf(value, pos) === pos) {\n return incr(value.length);\n }\n }\n\n function lookahead() {\n return str[pos];\n }\n\n function current(value) {\n return str.indexOf(value, pos) === pos;\n }\n\n function next(value) {\n return str[pos + 1] === value;\n }\n\n function matchReg(regExp) {\n var subStr = str.substring(pos);\n var res = subStr.match(regExp);\n\n if (res) {\n res.range = [];\n res.range[0] = pos;\n incr(res[0].length);\n res.range[1] = pos;\n }\n\n return res;\n }\n\n function parseDisjunction() {\n // Disjunction ::\n // Alternative\n // Alternative | Disjunction\n var res = [],\n from = pos;\n res.push(parseAlternative());\n\n while (match('|')) {\n res.push(parseAlternative());\n }\n\n if (res.length === 1) {\n return res[0];\n }\n\n return createDisjunction(res, from, pos);\n }\n\n function parseAlternative() {\n var res = [],\n from = pos;\n var term; // Alternative ::\n // [empty]\n // Alternative Term\n\n while (term = parseTerm()) {\n res.push(term);\n }\n\n if (res.length === 1) {\n return res[0];\n }\n\n return createAlternative(res, from, pos);\n }\n\n function parseTerm() {\n // Term ::\n // Anchor\n // Atom\n // Atom Quantifier\n if (pos >= str.length || current('|') || current(')')) {\n return null;\n /* Means: The term is empty */\n }\n\n var anchor = parseAnchor();\n\n if (anchor) {\n return anchor;\n }\n\n var atom = parseAtomAndExtendedAtom();\n\n if (!atom) {\n // Check if a quantifier is following. A quantifier without an atom\n // is an error.\n pos_backup = pos;\n var quantifier = parseQuantifier() || false;\n\n if (quantifier) {\n pos = pos_backup;\n bail('Expected atom');\n } // If no unicode flag, then try to parse ExtendedAtom -> ExtendedPatternCharacter.\n // ExtendedPatternCharacter\n\n\n if (!hasUnicodeFlag && (res = matchReg(/^{/))) {\n atom = createCharacter(res);\n } else {\n bail('Expected atom');\n }\n }\n\n var quantifier = parseQuantifier() || false;\n\n if (quantifier) {\n quantifier.body = flattenBody(atom); // The quantifier contains the atom. Therefore, the beginning of the\n // quantifier range is given by the beginning of the atom.\n\n updateRawStart(quantifier, atom.range[0]);\n return quantifier;\n }\n\n return atom;\n }\n\n function parseGroup(matchA, typeA, matchB, typeB) {\n var type = null,\n from = pos;\n\n if (match(matchA)) {\n type = typeA;\n } else if (match(matchB)) {\n type = typeB;\n } else {\n return false;\n }\n\n return finishGroup(type, from);\n }\n\n function finishGroup(type, from) {\n var body = parseDisjunction();\n\n if (!body) {\n bail('Expected disjunction');\n }\n\n skip(')');\n var group = createGroup(type, flattenBody(body), from, pos);\n\n if (type == 'normal') {\n // Keep track of the number of closed groups. This is required for\n // parseDecimalEscape(). In case the string is parsed a second time the\n // value already holds the total count and no incrementation is required.\n if (firstIteration) {\n closedCaptureCounter++;\n }\n }\n\n return group;\n }\n\n function parseAnchor() {\n // Anchor ::\n // ^\n // $\n // \\ b\n // \\ B\n // ( ? = Disjunction )\n // ( ? ! Disjunction )\n var res,\n from = pos;\n\n if (match('^')) {\n return createAnchor('start', 1\n /* rawLength */\n );\n } else if (match('$')) {\n return createAnchor('end', 1\n /* rawLength */\n );\n } else if (match('\\\\b')) {\n return createAnchor('boundary', 2\n /* rawLength */\n );\n } else if (match('\\\\B')) {\n return createAnchor('not-boundary', 2\n /* rawLength */\n );\n } else {\n return parseGroup('(?=', 'lookahead', '(?!', 'negativeLookahead');\n }\n }\n\n function parseQuantifier() {\n // Quantifier ::\n // QuantifierPrefix\n // QuantifierPrefix ?\n //\n // QuantifierPrefix ::\n // *\n // +\n // ?\n // { DecimalDigits }\n // { DecimalDigits , }\n // { DecimalDigits , DecimalDigits }\n var res,\n from = pos;\n var quantifier;\n var min, max;\n\n if (match('*')) {\n quantifier = createQuantifier(0);\n } else if (match('+')) {\n quantifier = createQuantifier(1);\n } else if (match('?')) {\n quantifier = createQuantifier(0, 1);\n } else if (res = matchReg(/^\\{([0-9]+)\\}/)) {\n min = parseInt(res[1], 10);\n quantifier = createQuantifier(min, min, res.range[0], res.range[1]);\n } else if (res = matchReg(/^\\{([0-9]+),\\}/)) {\n min = parseInt(res[1], 10);\n quantifier = createQuantifier(min, undefined, res.range[0], res.range[1]);\n } else if (res = matchReg(/^\\{([0-9]+),([0-9]+)\\}/)) {\n min = parseInt(res[1], 10);\n max = parseInt(res[2], 10);\n\n if (min > max) {\n bail('numbers out of order in {} quantifier', '', from, pos);\n }\n\n quantifier = createQuantifier(min, max, res.range[0], res.range[1]);\n }\n\n if (quantifier) {\n if (match('?')) {\n quantifier.greedy = false;\n quantifier.range[1] += 1;\n }\n }\n\n return quantifier;\n }\n\n function parseAtomAndExtendedAtom() {\n // Parsing Atom and ExtendedAtom together due to redundancy.\n // ExtendedAtom is defined in Apendix B of the ECMA-262 standard.\n //\n // SEE: https://www.ecma-international.org/ecma-262/10.0/index.html#prod-annexB-ExtendedPatternCharacter\n //\n // Atom ::\n // PatternCharacter\n // .\n // \\ AtomEscape\n // CharacterClass\n // ( GroupSpecifier Disjunction )\n // ( ? : Disjunction )\n // ExtendedAtom ::\n // ExtendedPatternCharacter\n // ExtendedPatternCharacter ::\n // SourceCharacter but not one of ^$\\.*+?()[|\n var res; // jviereck: allow ']', '}' here as well to be compatible with browser's\n // implementations: ']'.match(/]/);\n\n if (res = matchReg(/^[^^$\\\\.*+?()[\\]{}|]/)) {\n // PatternCharacter\n return createCharacter(res);\n } else if (!hasUnicodeFlag && (res = matchReg(/^(?:]|})/))) {\n // ExtendedPatternCharacter, first part. See parseTerm.\n return createCharacter(res);\n } else if (match('.')) {\n // .\n return createDot();\n } else if (match('\\\\')) {\n // \\ AtomEscape\n res = parseAtomEscape();\n\n if (!res) {\n if (!hasUnicodeFlag && lookahead() == 'c') {\n // B.1.4 ExtendedAtom\n // \\[lookahead = c]\n return createValue('symbol', 92, pos - 1, pos);\n }\n\n bail('atomEscape');\n }\n\n return res;\n } else if (res = parseCharacterClass()) {\n return res;\n } else if (features.lookbehind && (res = parseGroup('(?<=', 'lookbehind', '(?\");\n var group = finishGroup(\"normal\", name.range[0] - 3);\n group.name = name;\n return group;\n } else {\n // ( Disjunction )\n // ( ? : Disjunction )\n return parseGroup('(?:', 'ignore', '(', 'normal');\n }\n }\n\n function parseUnicodeSurrogatePairEscape(firstEscape) {\n if (hasUnicodeFlag) {\n var first, second;\n\n if (firstEscape.kind == 'unicodeEscape' && (first = firstEscape.codePoint) >= 0xD800 && first <= 0xDBFF && current('\\\\') && next('u')) {\n var prevPos = pos;\n pos++;\n var secondEscape = parseClassEscape();\n\n if (secondEscape.kind == 'unicodeEscape' && (second = secondEscape.codePoint) >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n firstEscape.range[1] = secondEscape.range[1];\n firstEscape.codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n firstEscape.type = 'value';\n firstEscape.kind = 'unicodeCodePointEscape';\n addRaw(firstEscape);\n } else {\n pos = prevPos;\n }\n }\n }\n\n return firstEscape;\n }\n\n function parseClassEscape() {\n return parseAtomEscape(true);\n }\n\n function parseAtomEscape(insideCharacterClass) {\n // AtomEscape ::\n // DecimalEscape\n // CharacterEscape\n // CharacterClassEscape\n // k GroupName\n var res,\n from = pos;\n res = parseDecimalEscape() || parseNamedReference();\n\n if (res) {\n return res;\n } // For ClassEscape\n\n\n if (insideCharacterClass) {\n // b\n if (match('b')) {\n // 15.10.2.19\n // The production ClassEscape :: b evaluates by returning the\n // CharSet containing the one character (Unicode value 0008).\n return createEscaped('singleEscape', 0x0008, '\\\\b');\n } else if (match('B')) {\n bail('\\\\B not possible inside of CharacterClass', '', from);\n } else if (!hasUnicodeFlag && (res = matchReg(/^c([0-9])/))) {\n // B.1.4\n // c ClassControlLetter, ClassControlLetter = DecimalDigit\n return createEscaped('controlLetter', res[1] + 16, res[1], 2);\n } else if (!hasUnicodeFlag && (res = matchReg(/^c_/))) {\n // B.1.4\n // c ClassControlLetter, ClassControlLetter = _\n return createEscaped('controlLetter', 31, '_', 2);\n } // [+U] -\n\n\n if (hasUnicodeFlag && match('-')) {\n return createEscaped('singleEscape', 0x002d, '\\\\-');\n }\n }\n\n res = parseCharacterClassEscape() || parseCharacterEscape();\n return res;\n }\n\n function parseDecimalEscape() {\n // DecimalEscape ::\n // DecimalIntegerLiteral [lookahead ∉ DecimalDigit]\n var res, match;\n\n if (res = matchReg(/^(?!0)\\d+/)) {\n match = res[0];\n var refIdx = parseInt(res[0], 10);\n\n if (refIdx <= closedCaptureCounter) {\n // If the number is smaller than the normal-groups found so\n // far, then it is a reference...\n return createReference(res[0]);\n } else {\n // ... otherwise it needs to be interpreted as a octal (if the\n // number is in an octal format). If it is NOT octal format,\n // then the slash is ignored and the number is matched later\n // as normal characters.\n // Recall the negative decision to decide if the input must be parsed\n // a second time with the total normal-groups.\n backrefDenied.push(refIdx); // Reset the position again, as maybe only parts of the previous\n // matched numbers are actual octal numbers. E.g. in '019' only\n // the '01' should be matched.\n\n incr(-res[0].length);\n\n if (res = matchReg(/^[0-7]{1,3}/)) {\n return createEscaped('octal', parseInt(res[0], 8), res[0], 1);\n } else {\n // If we end up here, we have a case like /\\91/. Then the\n // first slash is to be ignored and the 9 & 1 to be treated\n // like ordinary characters. Create a character for the\n // first number only here - other number-characters\n // (if available) will be matched later.\n res = createCharacter(matchReg(/^[89]/));\n return updateRawStart(res, res.range[0] - 1);\n }\n }\n } // Only allow octal numbers in the following. All matched numbers start\n // with a zero (if the do not, the previous if-branch is executed).\n // If the number is not octal format and starts with zero (e.g. `091`)\n // then only the zeros `0` is treated here and the `91` are ordinary\n // characters.\n // Example:\n // /\\091/.exec('\\091')[0].length === 3\n else if (res = matchReg(/^[0-7]{1,3}/)) {\n match = res[0];\n\n if (/^0{1,3}$/.test(match)) {\n // If they are all zeros, then only take the first one.\n return createEscaped('null', 0x0000, '0', match.length);\n } else {\n return createEscaped('octal', parseInt(match, 8), match, 1);\n }\n }\n\n return false;\n }\n\n function parseCharacterClassEscape() {\n // CharacterClassEscape :: one of d D s S w W\n var res;\n\n if (res = matchReg(/^[dDsSwW]/)) {\n return createCharacterClassEscape(res[0]);\n } else if (features.unicodePropertyEscape && (hasUnicodeFlag || hasUnicodeSetFlag) && (res = matchReg(/^([pP])\\{([^\\}]+)\\}/))) {\n // https://github.com/jviereck/regjsparser/issues/77\n return addRaw({\n type: 'unicodePropertyEscape',\n negative: res[1] === 'P',\n value: res[2],\n range: [res.range[0] - 1, res.range[1]],\n raw: res[0]\n });\n }\n\n return false;\n }\n\n function parseNamedReference() {\n if (features.namedGroups && matchReg(/^k<(?=.*?>)/)) {\n var name = parseIdentifier();\n skip('>');\n return createNamedReference(name);\n }\n }\n\n function parseRegExpUnicodeEscapeSequence() {\n var res;\n\n if (res = matchReg(/^u([0-9a-fA-F]{4})/)) {\n // UnicodeEscapeSequence\n return parseUnicodeSurrogatePairEscape(createEscaped('unicodeEscape', parseInt(res[1], 16), res[1], 2));\n } else if (hasUnicodeFlag && (res = matchReg(/^u\\{([0-9a-fA-F]+)\\}/))) {\n // RegExpUnicodeEscapeSequence (ES6 Unicode code point escape)\n return createEscaped('unicodeCodePointEscape', parseInt(res[1], 16), res[1], 4);\n }\n }\n\n function parseCharacterEscape() {\n // CharacterEscape ::\n // ControlEscape\n // c ControlLetter\n // HexEscapeSequence\n // UnicodeEscapeSequence\n // IdentityEscape\n var res;\n var from = pos;\n\n if (res = matchReg(/^[fnrtv]/)) {\n // ControlEscape\n var codePoint = 0;\n\n switch (res[0]) {\n case 't':\n codePoint = 0x009;\n break;\n\n case 'n':\n codePoint = 0x00A;\n break;\n\n case 'v':\n codePoint = 0x00B;\n break;\n\n case 'f':\n codePoint = 0x00C;\n break;\n\n case 'r':\n codePoint = 0x00D;\n break;\n }\n\n return createEscaped('singleEscape', codePoint, '\\\\' + res[0]);\n } else if (res = matchReg(/^c([a-zA-Z])/)) {\n // c ControlLetter\n return createEscaped('controlLetter', res[1].charCodeAt(0) % 32, res[1], 2);\n } else if (res = matchReg(/^x([0-9a-fA-F]{2})/)) {\n // HexEscapeSequence\n return createEscaped('hexadecimalEscape', parseInt(res[1], 16), res[1], 2);\n } else if (res = parseRegExpUnicodeEscapeSequence()) {\n if (!res || res.codePoint > 0x10FFFF) {\n bail('Invalid escape sequence', null, from, pos);\n }\n\n return res;\n } else {\n // IdentityEscape\n return parseIdentityEscape();\n }\n }\n\n function parseIdentifierAtom(check) {\n var ch = lookahead();\n var from = pos;\n\n if (ch === '\\\\') {\n incr();\n var esc = parseRegExpUnicodeEscapeSequence();\n\n if (!esc || !check(esc.codePoint)) {\n bail('Invalid escape sequence', null, from, pos);\n }\n\n return fromCodePoint(esc.codePoint);\n }\n\n var code = ch.charCodeAt(0);\n\n if (code >= 0xD800 && code <= 0xDBFF) {\n ch += str[pos + 1];\n var second = ch.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n if (!check(code)) return;\n incr();\n if (code > 0xFFFF) incr();\n return ch;\n }\n\n function parseIdentifier() {\n // RegExpIdentifierName ::\n // RegExpIdentifierStart\n // RegExpIdentifierName RegExpIdentifierContinue\n //\n // RegExpIdentifierStart ::\n // UnicodeIDStart\n // $\n // _\n // \\ RegExpUnicodeEscapeSequence\n //\n // RegExpIdentifierContinue ::\n // UnicodeIDContinue\n // $\n // _\n // \\ RegExpUnicodeEscapeSequence\n // \n // \n var start = pos;\n var res = parseIdentifierAtom(isIdentifierStart);\n\n if (!res) {\n bail('Invalid identifier');\n }\n\n var ch;\n\n while (ch = parseIdentifierAtom(isIdentifierPart)) {\n res += ch;\n }\n\n return addRaw({\n type: 'identifier',\n value: res,\n range: [start, pos]\n });\n }\n\n function isIdentifierStart(ch) {\n // Generated by `tools/generate-identifier-regex.js`.\n var NonAsciiIdentifierStart = /[\\$A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEF\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7B9\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF1A]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDE9D\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFF1]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\n return ch === 36 || ch === 95 || // $ (dollar) and _ (underscore)\n ch >= 65 && ch <= 90 || // A..Z\n ch >= 97 && ch <= 122 || // a..z\n ch >= 0x80 && NonAsciiIdentifierStart.test(fromCodePoint(ch));\n } // Taken from the Esprima parser.\n\n\n function isIdentifierPart(ch) {\n // Generated by `tools/generate-identifier-regex.js`.\n var NonAsciiIdentifierPartOnly = /[0-9_\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200C\\u200D\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD801[\\uDCA0-\\uDCA9]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDD30-\\uDD39\\uDF46-\\uDF50]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCF0-\\uDCF9\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD36-\\uDD3F\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDD0-\\uDDD9\\uDE2C-\\uDE37\\uDE3E\\uDEDF-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC50-\\uDC59\\uDC5E\\uDCB0-\\uDCC3\\uDCD0-\\uDCD9\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDE50-\\uDE59\\uDEAB-\\uDEB7\\uDEC0-\\uDEC9\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDC2C-\\uDC3A\\uDCE0-\\uDCE9\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC50-\\uDC59\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD50-\\uDD59\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDDA0-\\uDDA9\\uDEF3-\\uDEF6]|\\uD81A[\\uDE60-\\uDE69\\uDEF0-\\uDEF4\\uDF30-\\uDF36\\uDF50-\\uDF59]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A\\uDD50-\\uDD59]|\\uDB40[\\uDD00-\\uDDEF]/;\n return isIdentifierStart(ch) || ch >= 48 && ch <= 57 || // 0..9\n ch >= 0x80 && NonAsciiIdentifierPartOnly.test(fromCodePoint(ch));\n }\n\n function parseIdentityEscape() {\n // IdentityEscape ::\n // [+U] SyntaxCharacter\n // [+U] /\n // [~U] SourceCharacterIdentityEscape[?N]\n // SourceCharacterIdentityEscape[?N] ::\n // [~N] SourceCharacter but not c\n // [+N] SourceCharacter but not one of c or k\n var tmp;\n var l = lookahead();\n\n if (hasUnicodeFlag && /[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/.test(l) || !hasUnicodeFlag && l !== \"c\") {\n if (l === \"k\" && features.lookbehind) {\n return null;\n }\n\n tmp = incr();\n return createEscaped('identifier', tmp.charCodeAt(0), tmp, 1);\n }\n\n return null;\n }\n\n function parseCharacterClass() {\n // CharacterClass ::\n // [ [lookahead ∉ {^}] ClassRanges ]\n // [ ^ ClassRanges ]\n var res,\n from = pos;\n\n if (res = matchReg(/^\\[\\^/)) {\n res = parseClassRanges();\n skip(']');\n return createCharacterClass(res, true, from, pos);\n } else if (match('[')) {\n res = parseClassRanges();\n skip(']');\n return createCharacterClass(res, false, from, pos);\n }\n\n return null;\n }\n\n function parseClassRanges() {\n // ClassRanges ::\n // [empty]\n // [~V] NonemptyClassRanges\n // [+V] ClassContents\n var res;\n\n if (current(']')) {\n // Empty array means nothing inside of the ClassRange.\n return {\n kind: 'union',\n body: []\n };\n } else if (hasUnicodeSetFlag) {\n return parseClassContents();\n } else {\n res = parseNonemptyClassRanges();\n\n if (!res) {\n bail('nonEmptyClassRanges');\n }\n\n return {\n kind: 'union',\n body: res\n };\n }\n }\n\n function parseHelperClassRanges(atom) {\n var from, to, res, atomTo, dash;\n\n if (current('-') && !next(']')) {\n // ClassAtom - ClassAtom ClassRanges\n from = atom.range[0];\n dash = createCharacter(match('-'));\n atomTo = parseClassAtom();\n\n if (!atomTo) {\n bail('classAtom');\n }\n\n to = pos; // Parse the next class range if exists.\n\n var classRanges = parseClassRanges();\n\n if (!classRanges) {\n bail('classRanges');\n } // Check if both the from and atomTo have codePoints.\n\n\n if (!('codePoint' in atom) || !('codePoint' in atomTo)) {\n if (!hasUnicodeFlag) {\n // If not, don't create a range but treat them as\n // `atom` `-` `atom` instead.\n //\n // SEE: https://tc39.es/ecma262/#sec-regular-expression-patterns-semantics\n // NonemptyClassRanges::ClassAtom-ClassAtomClassRanges\n // CharacterRangeOrUnion\n res = [atom, dash, atomTo];\n } else {\n // With unicode flag, both sides must have codePoints if\n // one side has a codePoint.\n //\n // SEE: https://tc39.es/ecma262/#sec-patterns-static-semantics-early-errors\n // NonemptyClassRanges :: ClassAtom - ClassAtom ClassRanges\n bail('invalid character class');\n }\n } else {\n res = [createClassRange(atom, atomTo, from, to)];\n }\n\n if (classRanges.type === 'empty') {\n return res;\n }\n\n return res.concat(classRanges.body);\n }\n\n res = parseNonemptyClassRangesNoDash();\n\n if (!res) {\n bail('nonEmptyClassRangesNoDash');\n }\n\n return [atom].concat(res);\n }\n\n function parseNonemptyClassRanges() {\n // NonemptyClassRanges ::\n // ClassAtom\n // ClassAtom NonemptyClassRangesNoDash\n // ClassAtom - ClassAtom ClassRanges\n var atom = parseClassAtom();\n\n if (!atom) {\n bail('classAtom');\n }\n\n if (current(']')) {\n // ClassAtom\n return [atom];\n } // ClassAtom NonemptyClassRangesNoDash\n // ClassAtom - ClassAtom ClassRanges\n\n\n return parseHelperClassRanges(atom);\n }\n\n function parseNonemptyClassRangesNoDash() {\n // NonemptyClassRangesNoDash ::\n // ClassAtom\n // ClassAtomNoDash NonemptyClassRangesNoDash\n // ClassAtomNoDash - ClassAtom ClassRanges\n var res = parseClassAtom();\n\n if (!res) {\n bail('classAtom');\n }\n\n if (current(']')) {\n // ClassAtom\n return res;\n } // ClassAtomNoDash NonemptyClassRangesNoDash\n // ClassAtomNoDash - ClassAtom ClassRanges\n\n\n return parseHelperClassRanges(res);\n }\n\n function parseClassAtom() {\n // ClassAtom ::\n // -\n // ClassAtomNoDash\n if (match('-')) {\n return createCharacter('-');\n } else {\n return parseClassAtomNoDash();\n }\n }\n\n function parseClassAtomNoDash() {\n // ClassAtomNoDash ::\n // SourceCharacter but not one of \\ or ] or -\n // \\ ClassEscape\n var res;\n\n if (res = matchReg(/^[^\\\\\\]-]/)) {\n return createCharacter(res[0]);\n } else if (match('\\\\')) {\n res = parseClassEscape();\n\n if (!res) {\n bail('classEscape');\n }\n\n return parseUnicodeSurrogatePairEscape(res);\n }\n }\n\n function parseClassContents() {\n // ClassContents ::\n // ClassUnion\n // ClassIntersection\n // ClassSubtraction\n //\n // ClassUnion ::\n // ClassRange ClassUnion?\n // ClassOperand ClassUnion?\n //\n // ClassIntersection ::\n // ClassOperand && [lookahead ≠ &] ClassOperand\n // ClassIntersection && [lookahead ≠ &] ClassOperand\n //\n // ClassSubtraction ::\n // ClassOperand -- ClassOperand\n // ClassSubtraction -- ClassOperand\n var body = [];\n var kind;\n var from = pos;\n var operand = parseClassOperand(\n /* allowRanges*/\n true);\n body.push(operand);\n\n if (operand.type === 'classRange') {\n kind = 'union';\n } else if (current('&')) {\n kind = 'intersection';\n } else if (current('-')) {\n kind = 'subtraction';\n } else {\n kind = 'union';\n }\n\n while (!current(']')) {\n if (kind === 'intersection') {\n skip('&');\n skip('&');\n\n if (current('&')) {\n bail('&& cannot be followed by &. Wrap it in parentheses: &&(&).');\n }\n } else if (kind === 'subtraction') {\n skip('-');\n skip('-');\n }\n\n operand = parseClassOperand(\n /* allowRanges*/\n kind === 'union');\n body.push(operand);\n }\n\n return {\n kind: kind,\n body: body\n };\n }\n\n function parseClassOperand(allowRanges) {\n // ClassOperand ::\n // ClassCharacter\n // ClassStrings\n // NestedClass\n //\n // NestedClass ::\n // [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n // [ ^ ClassRanges[+U,+V] ]\n // \\ CharacterClassEscape[+U, +V]\n //\n // ClassRange ::\n // ClassCharacter - ClassCharacter\n //\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n //\n // ClassSyntaxCharacter ::\n // one of ( ) [ ] { } / - \\ |\n var from = pos;\n var start, res;\n\n if (match('\\\\')) {\n if (res = parseCharacterClassEscape()) {\n start = res;\n } else if (res = parseClassCharacterEscapedHelper()) {\n // ClassOperand ::\n // ...\n // NestedClass\n //\n // NestedClass ::\n // ...\n // \\ CharacterClassEscape[+U, +V]\n return res;\n } else {\n bail('Invalid escape', '\\\\' + lookahead(), from);\n }\n } else if (res = parseClassCharacterUnescapedHelper()) {\n start = res;\n } else if (res = parseClassStrings() || parseCharacterClass()) {\n // ClassOperand ::\n // ...\n // ClassStrings\n // NestedClass\n //\n // NestedClass ::\n // [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n // [ ^ ClassRanges[+U,+V] ]\n // ...\n return res;\n } else {\n bail('Invalid character', lookahead());\n }\n\n if (allowRanges && current('-') && !next('-')) {\n skip('-');\n\n if (res = parseClassCharacter()) {\n // ClassRange ::\n // ClassCharacter - ClassCharacter\n return createClassRange(start, res, from, pos);\n }\n\n bail('Invalid range end', lookahead());\n } // ClassOperand ::\n // ClassCharacter\n // ...\n\n\n return start;\n }\n\n function parseClassCharacter() {\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n if (match('\\\\')) {\n if (res = parseClassCharacterEscapedHelper()) {\n return res;\n } else {\n bail('Invalid escape', '\\\\' + lookahead(), from);\n }\n }\n\n return parseClassCharacterUnescapedHelper();\n }\n\n function parseClassCharacterUnescapedHelper() {\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // ...\n var res;\n\n if (res = matchReg(/^[^()[\\]{}/\\-\\\\|]/)) {\n return createCharacter(res);\n }\n\n ;\n }\n\n function parseClassCharacterEscapedHelper() {\n // ClassCharacter ::\n // ...\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n if (match('b')) {\n return createEscaped('singleEscape', 0x0008, '\\\\b');\n } else if (match('B')) {\n bail('\\\\B not possible inside of ClassContents', '', pos - 2);\n } else if (res = matchReg(/^[&\\-!#%,:;<=>@_`~]/)) {\n return createEscaped('identifier', res[0].codePointAt(0), res[0]);\n } else if (res = parseCharacterEscape()) {\n return res;\n } else {\n return null;\n }\n }\n\n function parseClassStrings() {\n // ClassStrings ::\n // ( ClassString MoreClassStrings? )\n var res = [];\n var from = pos;\n\n if (!match('(')) {\n return null;\n }\n\n do {\n res.push(parseClassString());\n } while (match('|'));\n\n skip(')');\n return createClassStrings(res, from, pos);\n }\n\n function parseClassString() {\n // ClassString ::\n // [empty]\n // NonEmptyClassString\n //\n // NonEmptyClassString ::\n // ClassCharacter NonEmptyClassString?\n var res = [],\n from = pos;\n var char;\n\n while (char = parseClassCharacter()) {\n res.push(char);\n }\n\n return createClassString(res, from, pos);\n }\n\n function bail(message, details, from, to) {\n from = from == null ? pos : from;\n to = to == null ? from : to;\n var contextStart = Math.max(0, from - 10);\n var contextEnd = Math.min(to + 10, str.length); // Output a bit of context and a line pointing to where our error is.\n //\n // We are assuming that there are no actual newlines in the content as this is a regular expression.\n\n var context = ' ' + str.substring(contextStart, contextEnd);\n var pointer = ' ' + new Array(from - contextStart + 1).join(' ') + '^';\n throw SyntaxError(message + ' at position ' + from + (details ? ': ' + details : '') + '\\n' + context + '\\n' + pointer);\n }\n\n var backrefDenied = [];\n var closedCaptureCounter = 0;\n var firstIteration = true;\n var hasUnicodeFlag = (flags || \"\").indexOf(\"u\") !== -1;\n var hasUnicodeSetFlag = (flags || \"\").indexOf(\"v\") !== -1;\n var pos = 0;\n\n if (hasUnicodeSetFlag && !features.unicodeSet) {\n throw new Error('The \"v\" flag is only supported when the .unicodeSet option is enabled.');\n }\n\n if (hasUnicodeFlag && hasUnicodeSetFlag) {\n throw new Error('The \"u\" and \"v\" flags are mutually exclusive.');\n } // Convert the input to a string and treat the empty string special.\n\n\n str = String(str);\n\n if (str === '') {\n str = '(?:)';\n }\n\n var result = parseDisjunction();\n\n if (result.range[1] !== str.length) {\n bail('Could not parse entire input - got stuck', '', result.range[1]);\n } // The spec requires to interpret the `\\2` in `/\\2()()/` as backreference.\n // As the parser collects the number of capture groups as the string is\n // parsed it is impossible to make these decisions at the point when the\n // `\\2` is handled. In case the local decision turns out to be wrong after\n // the parsing has finished, the input string is parsed a second time with\n // the total number of capture groups set.\n //\n // SEE: https://github.com/jviereck/regjsparser/issues/70\n\n\n for (var i = 0; i < backrefDenied.length; i++) {\n if (backrefDenied[i] <= closedCaptureCounter) {\n // Parse the input a second time.\n pos = 0;\n firstIteration = false;\n return parseDisjunction();\n }\n }\n\n return result;\n }\n\n var regjsparser = {\n parse: parse\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = regjsparser;\n } else {\n window.regjsparser = regjsparser;\n }\n})();","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0; // TODO(v5): Remove legacy setting and default to \"always\"\n\nconst applyTrailingSlashOption = function (input) {\n let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"legacy\";\n const hasHtmlSuffix = input.endsWith(\".html\");\n const hasXmlSuffix = input.endsWith(\".xml\");\n const hasPdfSuffix = input.endsWith(\".pdf\");\n if (input === \"/\") return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = \"never\";\n }\n\n if (option === \"always\") {\n return input.endsWith(\"/\") ? input : \"\".concat(input, \"/\");\n }\n\n if (option === \"never\") {\n return input.endsWith(\"/\") ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","import escapeStringRegexp from \"escape-string-regexp\";\nimport { withPrefix } from \"gatsby\";\nexport const userIsForcingNavigation = event => event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey; // IE does not include leading slash in anchor.pathname\n\nexport const slashedPathname = pathname => pathname[0] === \"/\" ? pathname : \"/\".concat(pathname);\nexport const navigationWasHandledElsewhere = event => event.defaultPrevented;\nexport const findClosestAnchor = node => {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === \"a\") {\n return node;\n }\n }\n\n return null;\n};\nexport const anchorsTargetIsEquivalentToSelf = anchor =>\n/* If target attribute is not present it's treated as _self */\nanchor.hasAttribute(\"target\") === false ||\n/**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n/**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\nanchor.target == null ||\n/**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n[\"_self\", \"\"].includes(anchor.target) ||\n/**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\nanchor.target === \"_parent\" && (!anchor.ownerDocument.defaultView.parent || // Assumption: This can be falsey\nanchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === \"_top\" && (!anchor.ownerDocument.defaultView.top || // Assumption: This can be falsey\nanchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView);\nexport const authorIsForcingNavigation = anchor =>\n/**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\nanchor.hasAttribute(\"download\") === true ||\n/**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\nanchorsTargetIsEquivalentToSelf(anchor) === false; // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n\nexport const urlsAreOnSameOrigin = (origin, destination) => origin.protocol === destination.protocol &&\n/* a.host includes both hostname and port in the expected format host:port */\norigin.host === destination.host;\nexport const pathIsNotHandledByApp = (destination, pathStartRegEx) => {\n const pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\nexport const hashShouldBeFollowed = (origin, destination) => destination.hash !== \"\" && (\n/**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\ndestination.pathname === \"\" ||\n/* Don't catch links pointed to the same page but with a hash. */\ndestination.pathname === origin.pathname);\nexport const routeThroughBrowserOrApp = (hrefHandler, pluginOptions) => event => {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n const clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true; // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n\n const destination = document.createElement(\"a\"); // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n\n if (clickedAnchor.href !== \"\") {\n destination.href = clickedAnchor.href;\n }\n\n if (\"SVGAnimatedString\" in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n } // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n\n\n const origin = document.createElement(\"a\");\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true; // Regex to test pathname against pathPrefix\n\n const pathStartRegEx = new RegExp(\"^\".concat(escapeStringRegexp(withPrefix(\"/\"))));\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n\n if (pluginOptions.excludePattern) {\n const excludeRegex = new RegExp(pluginOptions.excludePattern);\n\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n\n event.preventDefault(); // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n\n const destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, \"/\");\n hrefHandler(\"\".concat(destinationPathname).concat(destination.search).concat(destination.hash));\n return false;\n};\nexport default function (root, pluginOptions, cb) {\n const clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(\"click\", clickHandler);\n return () => root.removeEventListener(\"click\", clickHandler);\n}","import { navigate } from \"gatsby\";\nimport catchLinks from \"./catch-links\";\nexport const onClientEntry = function (_) {\n let pluginOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n catchLinks(window, pluginOptions, href => {\n navigate(href);\n });\n};","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n return str.replace(matchOperatorsRe, '\\\\$&');\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\nexport const onRouteUpdate = function onRouteUpdate(_ref, pluginOptions) {\n let {\n location\n } = _ref;\n\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\n\n\nvar _default = function (pathname, localizedManifests) {\n let shouldPrependPathPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\".concat(localizedManifest.lang, \".webmanifest\");\n};\n\nexports.default = _default;","\"use strict\";\n\nexports.wrapPageElement = require('./wrap-page');","\"use strict\";\n\nvar React = require('react');\n\nvar _require = require('react-helmet'),\n Helmet = _require.Helmet;\n\nvar defaultPluginOptions = {\n noTrailingSlash: false,\n nopQueryString: false,\n nopHash: false\n};\n\nvar isExcluded = function isExcluded(excludes, element) {\n if (!Array.isArray(excludes)) return false;\n element = element.replace(/\\/+$/, '');\n return excludes.some(function (exclude) {\n if (exclude instanceof RegExp) return element.match(exclude);\n return exclude.includes(element);\n });\n};\n\nmodule.exports = function (_ref, pluginOptions) {\n var element = _ref.element,\n location = _ref.props.location;\n\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n var options = Object.assign({}, defaultPluginOptions, pluginOptions);\n\n if (options.siteUrl && !isExcluded(options.exclude, location.pathname)) {\n var pathname = location.pathname || '/';\n if (options.noTrailingSlash && pathname.endsWith('/')) pathname = pathname.substring(0, pathname.length - 1);\n var myUrl = \"\" + options.siteUrl + pathname;\n if (!options.noQueryString) myUrl += location.search;\n if (!options.noHash) myUrl += location.hash;\n return React.createElement(React.Fragment, null, React.createElement(Helmet, {\n link: [{\n rel: 'canonical',\n key: myUrl,\n href: myUrl\n }]\n }), element);\n }\n\n return element;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _styledComponents = require(\"styled-components\"); // eslint-disable-next-line react/prop-types,react/display-name\n\n\nexports.wrapRootElement = function (_ref, pluginOptions) {\n var element = _ref.element;\n return /*#__PURE__*/_react.default.createElement(_styledComponents.StyleSheetManager, {\n disableVendorPrefixes: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.disableVendorPrefixes) === true\n }, element);\n};","\"use strict\";\n\nvar offsetY = 0;\n\nvar getTargetOffset = function getTargetOffset(hash) {\n var id = window.decodeURI(hash.replace(\"#\", \"\"));\n\n if (id !== \"\") {\n var element = document.getElementById(id);\n\n if (element) {\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;\n var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;\n var computedStyles = window.getComputedStyle(element);\n var scrollMarginTop = computedStyles.getPropertyValue(\"scroll-margin-top\") || computedStyles.getPropertyValue(\"scroll-snap-margin-top\") || \"0px\";\n return element.getBoundingClientRect().top + scrollTop - parseInt(scrollMarginTop, 10) - clientTop - offsetY;\n }\n }\n\n return null;\n};\n\nexports.onInitialClientRender = function (_, pluginOptions) {\n if (pluginOptions.offsetY) {\n offsetY = pluginOptions.offsetY;\n }\n\n requestAnimationFrame(function () {\n var offset = getTargetOffset(window.location.hash);\n\n if (offset !== null) {\n window.scrollTo(0, offset);\n }\n });\n};\n\nexports.shouldUpdateScroll = function (_ref) {\n var location = _ref.routerProps.location;\n var offset = getTargetOffset(location.hash);\n return offset !== null ? [0, offset] : true;\n};","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n withAvif: false,\n tracedSVG: false,\n loading: \"lazy\",\n decoding: \"async\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.EMPTY_ALT = \"GATSBY_EMPTY_ALT\";\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\n\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass); // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n\n var _loop = function _loop(i) {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop(i);\n }\n};","\"use strict\";\n\nmodule.exports = Object.assign;","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\"); // Makes sure off-main-thread scripts are loaded in `gatsby develop`\n\n\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== \"development\") {\n return;\n }\n\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n}; // Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\n\n\nexports.onInitialClientRender = onInitialClientRender;","\"use strict\";\n\nrequire(\"core-js/modules/es.array.unscopables.flat-map.js\");\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\"); // Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\n\n\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n\n const existingSnippet = document.querySelector(\"script[data-partytown]\");\n const existingSandbox = document.querySelector(\"iframe[src*=\\\"~partytown/partytown-sandbox-sw\\\"]\");\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\n\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(\"script\");\n snippet.dataset.partytown = \"\";\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfor (var i = 0; i < chars.length; i++) {\n charToInteger[chars.charCodeAt(i)] = i;\n}\n\nfunction decode(mappings) {\n var decoded = [];\n var line = [];\n var segment = [0, 0, 0, 0, 0];\n var j = 0;\n\n for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n var c = mappings.charCodeAt(i);\n\n if (c === 44) {\n // \",\"\n segmentify(line, segment, j);\n j = 0;\n } else if (c === 59) {\n // \";\"\n segmentify(line, segment, j);\n j = 0;\n decoded.push(line);\n line = [];\n segment[0] = 0;\n } else {\n var integer = charToInteger[c];\n\n if (integer === undefined) {\n throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n }\n\n var hasContinuationBit = integer & 32;\n integer &= 31;\n value += integer << shift;\n\n if (hasContinuationBit) {\n shift += 5;\n } else {\n var shouldNegate = value & 1;\n value >>>= 1;\n\n if (shouldNegate) {\n value = value === 0 ? -0x80000000 : -value;\n }\n\n segment[j] += value;\n j++;\n value = shift = 0; // reset\n }\n }\n }\n\n segmentify(line, segment, j);\n decoded.push(line);\n return decoded;\n}\n\nfunction segmentify(line, segment, j) {\n // This looks ugly, but we're creating specialized arrays with a specific\n // length. This is much faster than creating a new array (which v8 expands to\n // a capacity of 17 after pushing the first item), or slicing out a subarray\n // (which is slow). Length 4 is assumed to be the most frequent, followed by\n // length 5 (since not everything will have an associated name), followed by\n // length 1 (it's probably rare for a source substring to not have an\n // associated segment data).\n if (j === 4) line.push([segment[0], segment[1], segment[2], segment[3]]);else if (j === 5) line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);else if (j === 1) line.push([segment[0]]);\n}\n\nfunction encode(decoded) {\n var sourceFileIndex = 0; // second field\n\n var sourceCodeLine = 0; // third field\n\n var sourceCodeColumn = 0; // fourth field\n\n var nameIndex = 0; // fifth field\n\n var mappings = '';\n\n for (var i = 0; i < decoded.length; i++) {\n var line = decoded[i];\n if (i > 0) mappings += ';';\n if (line.length === 0) continue;\n var generatedCodeColumn = 0; // first field\n\n var lineMappings = [];\n\n for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n var segment = line_1[_i];\n var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n generatedCodeColumn = segment[0];\n\n if (segment.length > 1) {\n segmentMappings += encodeInteger(segment[1] - sourceFileIndex) + encodeInteger(segment[2] - sourceCodeLine) + encodeInteger(segment[3] - sourceCodeColumn);\n sourceFileIndex = segment[1];\n sourceCodeLine = segment[2];\n sourceCodeColumn = segment[3];\n }\n\n if (segment.length === 5) {\n segmentMappings += encodeInteger(segment[4] - nameIndex);\n nameIndex = segment[4];\n }\n\n lineMappings.push(segmentMappings);\n }\n\n mappings += lineMappings.join(',');\n }\n\n return mappings;\n}\n\nfunction encodeInteger(num) {\n var result = '';\n num = num < 0 ? -num << 1 | 1 : num << 1;\n\n do {\n var clamped = num & 31;\n num >>>= 5;\n\n if (num > 0) {\n clamped |= 32;\n }\n\n result += chars[clamped];\n } while (num > 0);\n\n return result;\n}\n\nexport { decode, encode };","import { encode } from 'sourcemap-codec';\n\nvar BitSet = function BitSet(arg) {\n this.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n};\n\nBitSet.prototype.add = function add(n) {\n this.bits[n >> 5] |= 1 << (n & 31);\n};\n\nBitSet.prototype.has = function has(n) {\n return !!(this.bits[n >> 5] & 1 << (n & 31));\n};\n\nvar Chunk = function Chunk(start, end, content) {\n this.start = start;\n this.end = end;\n this.original = content;\n this.intro = '';\n this.outro = '';\n this.content = content;\n this.storeName = false;\n this.edited = false; // we make these non-enumerable, for sanity while debugging\n\n Object.defineProperties(this, {\n previous: {\n writable: true,\n value: null\n },\n next: {\n writable: true,\n value: null\n }\n });\n};\n\nChunk.prototype.appendLeft = function appendLeft(content) {\n this.outro += content;\n};\n\nChunk.prototype.appendRight = function appendRight(content) {\n this.intro = this.intro + content;\n};\n\nChunk.prototype.clone = function clone() {\n var chunk = new Chunk(this.start, this.end, this.original);\n chunk.intro = this.intro;\n chunk.outro = this.outro;\n chunk.content = this.content;\n chunk.storeName = this.storeName;\n chunk.edited = this.edited;\n return chunk;\n};\n\nChunk.prototype.contains = function contains(index) {\n return this.start < index && index < this.end;\n};\n\nChunk.prototype.eachNext = function eachNext(fn) {\n var chunk = this;\n\n while (chunk) {\n fn(chunk);\n chunk = chunk.next;\n }\n};\n\nChunk.prototype.eachPrevious = function eachPrevious(fn) {\n var chunk = this;\n\n while (chunk) {\n fn(chunk);\n chunk = chunk.previous;\n }\n};\n\nChunk.prototype.edit = function edit(content, storeName, contentOnly) {\n this.content = content;\n\n if (!contentOnly) {\n this.intro = '';\n this.outro = '';\n }\n\n this.storeName = storeName;\n this.edited = true;\n return this;\n};\n\nChunk.prototype.prependLeft = function prependLeft(content) {\n this.outro = content + this.outro;\n};\n\nChunk.prototype.prependRight = function prependRight(content) {\n this.intro = content + this.intro;\n};\n\nChunk.prototype.split = function split(index) {\n var sliceIndex = index - this.start;\n var originalBefore = this.original.slice(0, sliceIndex);\n var originalAfter = this.original.slice(sliceIndex);\n this.original = originalBefore;\n var newChunk = new Chunk(index, this.end, originalAfter);\n newChunk.outro = this.outro;\n this.outro = '';\n this.end = index;\n\n if (this.edited) {\n // TODO is this block necessary?...\n newChunk.edit('', false);\n this.content = '';\n } else {\n this.content = originalBefore;\n }\n\n newChunk.next = this.next;\n\n if (newChunk.next) {\n newChunk.next.previous = newChunk;\n }\n\n newChunk.previous = this;\n this.next = newChunk;\n return newChunk;\n};\n\nChunk.prototype.toString = function toString() {\n return this.intro + this.content + this.outro;\n};\n\nChunk.prototype.trimEnd = function trimEnd(rx) {\n this.outro = this.outro.replace(rx, '');\n\n if (this.outro.length) {\n return true;\n }\n\n var trimmed = this.content.replace(rx, '');\n\n if (trimmed.length) {\n if (trimmed !== this.content) {\n this.split(this.start + trimmed.length).edit('', undefined, true);\n }\n\n return true;\n } else {\n this.edit('', undefined, true);\n this.intro = this.intro.replace(rx, '');\n\n if (this.intro.length) {\n return true;\n }\n }\n};\n\nChunk.prototype.trimStart = function trimStart(rx) {\n this.intro = this.intro.replace(rx, '');\n\n if (this.intro.length) {\n return true;\n }\n\n var trimmed = this.content.replace(rx, '');\n\n if (trimmed.length) {\n if (trimmed !== this.content) {\n this.split(this.end - trimmed.length);\n this.edit('', undefined, true);\n }\n\n return true;\n } else {\n this.edit('', undefined, true);\n this.outro = this.outro.replace(rx, '');\n\n if (this.outro.length) {\n return true;\n }\n }\n};\n\nvar btoa = function () {\n throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n};\n\nif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n btoa = function (str) {\n return window.btoa(unescape(encodeURIComponent(str)));\n };\n} else if (typeof Buffer === 'function') {\n btoa = function (str) {\n return Buffer.from(str, 'utf-8').toString('base64');\n };\n}\n\nvar SourceMap = function SourceMap(properties) {\n this.version = 3;\n this.file = properties.file;\n this.sources = properties.sources;\n this.sourcesContent = properties.sourcesContent;\n this.names = properties.names;\n this.mappings = encode(properties.mappings);\n};\n\nSourceMap.prototype.toString = function toString() {\n return JSON.stringify(this);\n};\n\nSourceMap.prototype.toUrl = function toUrl() {\n return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n};\n\nfunction guessIndent(code) {\n var lines = code.split('\\n');\n var tabbed = lines.filter(function (line) {\n return /^\\t+/.test(line);\n });\n var spaced = lines.filter(function (line) {\n return /^ {2,}/.test(line);\n });\n\n if (tabbed.length === 0 && spaced.length === 0) {\n return null;\n } // More lines tabbed than spaced? Assume tabs, and\n // default to tabs in the case of a tie (or nothing\n // to go on)\n\n\n if (tabbed.length >= spaced.length) {\n return '\\t';\n } // Otherwise, we need to guess the multiple\n\n\n var min = spaced.reduce(function (previous, current) {\n var numSpaces = /^ +/.exec(current)[0].length;\n return Math.min(numSpaces, previous);\n }, Infinity);\n return new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n var fromParts = from.split(/[/\\\\]/);\n var toParts = to.split(/[/\\\\]/);\n fromParts.pop(); // get dirname\n\n while (fromParts[0] === toParts[0]) {\n fromParts.shift();\n toParts.shift();\n }\n\n if (fromParts.length) {\n var i = fromParts.length;\n\n while (i--) {\n fromParts[i] = '..';\n }\n }\n\n return fromParts.concat(toParts).join('/');\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n return toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n var originalLines = source.split('\\n');\n var lineOffsets = [];\n\n for (var i = 0, pos = 0; i < originalLines.length; i++) {\n lineOffsets.push(pos);\n pos += originalLines[i].length + 1;\n }\n\n return function locate(index) {\n var i = 0;\n var j = lineOffsets.length;\n\n while (i < j) {\n var m = i + j >> 1;\n\n if (index < lineOffsets[m]) {\n j = m;\n } else {\n i = m + 1;\n }\n }\n\n var line = i - 1;\n var column = index - lineOffsets[line];\n return {\n line: line,\n column: column\n };\n };\n}\n\nvar Mappings = function Mappings(hires) {\n this.hires = hires;\n this.generatedCodeLine = 0;\n this.generatedCodeColumn = 0;\n this.raw = [];\n this.rawSegments = this.raw[this.generatedCodeLine] = [];\n this.pending = null;\n};\n\nMappings.prototype.addEdit = function addEdit(sourceIndex, content, loc, nameIndex) {\n if (content.length) {\n var segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n if (nameIndex >= 0) {\n segment.push(nameIndex);\n }\n\n this.rawSegments.push(segment);\n } else if (this.pending) {\n this.rawSegments.push(this.pending);\n }\n\n this.advance(content);\n this.pending = null;\n};\n\nMappings.prototype.addUneditedChunk = function addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n var originalCharIndex = chunk.start;\n var first = true;\n\n while (originalCharIndex < chunk.end) {\n if (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n this.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);\n }\n\n if (original[originalCharIndex] === '\\n') {\n loc.line += 1;\n loc.column = 0;\n this.generatedCodeLine += 1;\n this.raw[this.generatedCodeLine] = this.rawSegments = [];\n this.generatedCodeColumn = 0;\n first = true;\n } else {\n loc.column += 1;\n this.generatedCodeColumn += 1;\n first = false;\n }\n\n originalCharIndex += 1;\n }\n\n this.pending = null;\n};\n\nMappings.prototype.advance = function advance(str) {\n if (!str) {\n return;\n }\n\n var lines = str.split('\\n');\n\n if (lines.length > 1) {\n for (var i = 0; i < lines.length - 1; i++) {\n this.generatedCodeLine++;\n this.raw[this.generatedCodeLine] = this.rawSegments = [];\n }\n\n this.generatedCodeColumn = 0;\n }\n\n this.generatedCodeColumn += lines[lines.length - 1].length;\n};\n\nvar n = '\\n';\nvar warned = {\n insertLeft: false,\n insertRight: false,\n storeName: false\n};\n\nvar MagicString = function MagicString(string, options) {\n if (options === void 0) options = {};\n var chunk = new Chunk(0, string.length, string);\n Object.defineProperties(this, {\n original: {\n writable: true,\n value: string\n },\n outro: {\n writable: true,\n value: ''\n },\n intro: {\n writable: true,\n value: ''\n },\n firstChunk: {\n writable: true,\n value: chunk\n },\n lastChunk: {\n writable: true,\n value: chunk\n },\n lastSearchedChunk: {\n writable: true,\n value: chunk\n },\n byStart: {\n writable: true,\n value: {}\n },\n byEnd: {\n writable: true,\n value: {}\n },\n filename: {\n writable: true,\n value: options.filename\n },\n indentExclusionRanges: {\n writable: true,\n value: options.indentExclusionRanges\n },\n sourcemapLocations: {\n writable: true,\n value: new BitSet()\n },\n storedNames: {\n writable: true,\n value: {}\n },\n indentStr: {\n writable: true,\n value: guessIndent(string)\n }\n });\n this.byStart[0] = chunk;\n this.byEnd[string.length] = chunk;\n};\n\nMagicString.prototype.addSourcemapLocation = function addSourcemapLocation(char) {\n this.sourcemapLocations.add(char);\n};\n\nMagicString.prototype.append = function append(content) {\n if (typeof content !== 'string') {\n throw new TypeError('outro content must be a string');\n }\n\n this.outro += content;\n return this;\n};\n\nMagicString.prototype.appendLeft = function appendLeft(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byEnd[index];\n\n if (chunk) {\n chunk.appendLeft(content);\n } else {\n this.intro += content;\n }\n\n return this;\n};\n\nMagicString.prototype.appendRight = function appendRight(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byStart[index];\n\n if (chunk) {\n chunk.appendRight(content);\n } else {\n this.outro += content;\n }\n\n return this;\n};\n\nMagicString.prototype.clone = function clone() {\n var cloned = new MagicString(this.original, {\n filename: this.filename\n });\n var originalChunk = this.firstChunk;\n var clonedChunk = cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone();\n\n while (originalChunk) {\n cloned.byStart[clonedChunk.start] = clonedChunk;\n cloned.byEnd[clonedChunk.end] = clonedChunk;\n var nextOriginalChunk = originalChunk.next;\n var nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n if (nextClonedChunk) {\n clonedChunk.next = nextClonedChunk;\n nextClonedChunk.previous = clonedChunk;\n clonedChunk = nextClonedChunk;\n }\n\n originalChunk = nextOriginalChunk;\n }\n\n cloned.lastChunk = clonedChunk;\n\n if (this.indentExclusionRanges) {\n cloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n }\n\n cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n cloned.intro = this.intro;\n cloned.outro = this.outro;\n return cloned;\n};\n\nMagicString.prototype.generateDecodedMap = function generateDecodedMap(options) {\n var this$1$1 = this;\n options = options || {};\n var sourceIndex = 0;\n var names = Object.keys(this.storedNames);\n var mappings = new Mappings(options.hires);\n var locate = getLocator(this.original);\n\n if (this.intro) {\n mappings.advance(this.intro);\n }\n\n this.firstChunk.eachNext(function (chunk) {\n var loc = locate(chunk.start);\n\n if (chunk.intro.length) {\n mappings.advance(chunk.intro);\n }\n\n if (chunk.edited) {\n mappings.addEdit(sourceIndex, chunk.content, loc, chunk.storeName ? names.indexOf(chunk.original) : -1);\n } else {\n mappings.addUneditedChunk(sourceIndex, chunk, this$1$1.original, loc, this$1$1.sourcemapLocations);\n }\n\n if (chunk.outro.length) {\n mappings.advance(chunk.outro);\n }\n });\n return {\n file: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n sources: [options.source ? getRelativePath(options.file || '', options.source) : null],\n sourcesContent: options.includeContent ? [this.original] : [null],\n names: names,\n mappings: mappings.raw\n };\n};\n\nMagicString.prototype.generateMap = function generateMap(options) {\n return new SourceMap(this.generateDecodedMap(options));\n};\n\nMagicString.prototype.getIndentString = function getIndentString() {\n return this.indentStr === null ? '\\t' : this.indentStr;\n};\n\nMagicString.prototype.indent = function indent(indentStr, options) {\n var pattern = /^[^\\r\\n]/gm;\n\n if (isObject(indentStr)) {\n options = indentStr;\n indentStr = undefined;\n }\n\n indentStr = indentStr !== undefined ? indentStr : this.indentStr || '\\t';\n\n if (indentStr === '') {\n return this;\n } // noop\n\n\n options = options || {}; // Process exclusion ranges\n\n var isExcluded = {};\n\n if (options.exclude) {\n var exclusions = typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n exclusions.forEach(function (exclusion) {\n for (var i = exclusion[0]; i < exclusion[1]; i += 1) {\n isExcluded[i] = true;\n }\n });\n }\n\n var shouldIndentNextCharacter = options.indentStart !== false;\n\n var replacer = function (match) {\n if (shouldIndentNextCharacter) {\n return \"\" + indentStr + match;\n }\n\n shouldIndentNextCharacter = true;\n return match;\n };\n\n this.intro = this.intro.replace(pattern, replacer);\n var charIndex = 0;\n var chunk = this.firstChunk;\n\n while (chunk) {\n var end = chunk.end;\n\n if (chunk.edited) {\n if (!isExcluded[charIndex]) {\n chunk.content = chunk.content.replace(pattern, replacer);\n\n if (chunk.content.length) {\n shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n }\n }\n } else {\n charIndex = chunk.start;\n\n while (charIndex < end) {\n if (!isExcluded[charIndex]) {\n var char = this.original[charIndex];\n\n if (char === '\\n') {\n shouldIndentNextCharacter = true;\n } else if (char !== '\\r' && shouldIndentNextCharacter) {\n shouldIndentNextCharacter = false;\n\n if (charIndex === chunk.start) {\n chunk.prependRight(indentStr);\n } else {\n this._splitChunk(chunk, charIndex);\n\n chunk = chunk.next;\n chunk.prependRight(indentStr);\n }\n }\n }\n\n charIndex += 1;\n }\n }\n\n charIndex = chunk.end;\n chunk = chunk.next;\n }\n\n this.outro = this.outro.replace(pattern, replacer);\n return this;\n};\n\nMagicString.prototype.insert = function insert() {\n throw new Error('magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)');\n};\n\nMagicString.prototype.insertLeft = function insertLeft(index, content) {\n if (!warned.insertLeft) {\n console.warn('magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'); // eslint-disable-line no-console\n\n warned.insertLeft = true;\n }\n\n return this.appendLeft(index, content);\n};\n\nMagicString.prototype.insertRight = function insertRight(index, content) {\n if (!warned.insertRight) {\n console.warn('magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'); // eslint-disable-line no-console\n\n warned.insertRight = true;\n }\n\n return this.prependRight(index, content);\n};\n\nMagicString.prototype.move = function move(start, end, index) {\n if (index >= start && index <= end) {\n throw new Error('Cannot move a selection inside itself');\n }\n\n this._split(start);\n\n this._split(end);\n\n this._split(index);\n\n var first = this.byStart[start];\n var last = this.byEnd[end];\n var oldLeft = first.previous;\n var oldRight = last.next;\n var newRight = this.byStart[index];\n\n if (!newRight && last === this.lastChunk) {\n return this;\n }\n\n var newLeft = newRight ? newRight.previous : this.lastChunk;\n\n if (oldLeft) {\n oldLeft.next = oldRight;\n }\n\n if (oldRight) {\n oldRight.previous = oldLeft;\n }\n\n if (newLeft) {\n newLeft.next = first;\n }\n\n if (newRight) {\n newRight.previous = last;\n }\n\n if (!first.previous) {\n this.firstChunk = last.next;\n }\n\n if (!last.next) {\n this.lastChunk = first.previous;\n this.lastChunk.next = null;\n }\n\n first.previous = newLeft;\n last.next = newRight || null;\n\n if (!newLeft) {\n this.firstChunk = first;\n }\n\n if (!newRight) {\n this.lastChunk = last;\n }\n\n return this;\n};\n\nMagicString.prototype.overwrite = function overwrite(start, end, content, options) {\n if (typeof content !== 'string') {\n throw new TypeError('replacement content must be a string');\n }\n\n while (start < 0) {\n start += this.original.length;\n }\n\n while (end < 0) {\n end += this.original.length;\n }\n\n if (end > this.original.length) {\n throw new Error('end is out of bounds');\n }\n\n if (start === end) {\n throw new Error('Cannot overwrite a zero-length range – use appendLeft or prependRight instead');\n }\n\n this._split(start);\n\n this._split(end);\n\n if (options === true) {\n if (!warned.storeName) {\n console.warn('The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'); // eslint-disable-line no-console\n\n warned.storeName = true;\n }\n\n options = {\n storeName: true\n };\n }\n\n var storeName = options !== undefined ? options.storeName : false;\n var contentOnly = options !== undefined ? options.contentOnly : false;\n\n if (storeName) {\n var original = this.original.slice(start, end);\n Object.defineProperty(this.storedNames, original, {\n writable: true,\n value: true,\n enumerable: true\n });\n }\n\n var first = this.byStart[start];\n var last = this.byEnd[end];\n\n if (first) {\n var chunk = first;\n\n while (chunk !== last) {\n if (chunk.next !== this.byStart[chunk.end]) {\n throw new Error('Cannot overwrite across a split point');\n }\n\n chunk = chunk.next;\n chunk.edit('', false);\n }\n\n first.edit(content, storeName, contentOnly);\n } else {\n // must be inserting at the end\n var newChunk = new Chunk(start, end, '').edit(content, storeName); // TODO last chunk in the array may not be the last chunk, if it's moved...\n\n last.next = newChunk;\n newChunk.previous = last;\n }\n\n return this;\n};\n\nMagicString.prototype.prepend = function prepend(content) {\n if (typeof content !== 'string') {\n throw new TypeError('outro content must be a string');\n }\n\n this.intro = content + this.intro;\n return this;\n};\n\nMagicString.prototype.prependLeft = function prependLeft(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byEnd[index];\n\n if (chunk) {\n chunk.prependLeft(content);\n } else {\n this.intro = content + this.intro;\n }\n\n return this;\n};\n\nMagicString.prototype.prependRight = function prependRight(index, content) {\n if (typeof content !== 'string') {\n throw new TypeError('inserted content must be a string');\n }\n\n this._split(index);\n\n var chunk = this.byStart[index];\n\n if (chunk) {\n chunk.prependRight(content);\n } else {\n this.outro = content + this.outro;\n }\n\n return this;\n};\n\nMagicString.prototype.remove = function remove(start, end) {\n while (start < 0) {\n start += this.original.length;\n }\n\n while (end < 0) {\n end += this.original.length;\n }\n\n if (start === end) {\n return this;\n }\n\n if (start < 0 || end > this.original.length) {\n throw new Error('Character is out of bounds');\n }\n\n if (start > end) {\n throw new Error('end must be greater than start');\n }\n\n this._split(start);\n\n this._split(end);\n\n var chunk = this.byStart[start];\n\n while (chunk) {\n chunk.intro = '';\n chunk.outro = '';\n chunk.edit('');\n chunk = end > chunk.end ? this.byStart[chunk.end] : null;\n }\n\n return this;\n};\n\nMagicString.prototype.lastChar = function lastChar() {\n if (this.outro.length) {\n return this.outro[this.outro.length - 1];\n }\n\n var chunk = this.lastChunk;\n\n do {\n if (chunk.outro.length) {\n return chunk.outro[chunk.outro.length - 1];\n }\n\n if (chunk.content.length) {\n return chunk.content[chunk.content.length - 1];\n }\n\n if (chunk.intro.length) {\n return chunk.intro[chunk.intro.length - 1];\n }\n } while (chunk = chunk.previous);\n\n if (this.intro.length) {\n return this.intro[this.intro.length - 1];\n }\n\n return '';\n};\n\nMagicString.prototype.lastLine = function lastLine() {\n var lineIndex = this.outro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return this.outro.substr(lineIndex + 1);\n }\n\n var lineStr = this.outro;\n var chunk = this.lastChunk;\n\n do {\n if (chunk.outro.length > 0) {\n lineIndex = chunk.outro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return chunk.outro.substr(lineIndex + 1) + lineStr;\n }\n\n lineStr = chunk.outro + lineStr;\n }\n\n if (chunk.content.length > 0) {\n lineIndex = chunk.content.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return chunk.content.substr(lineIndex + 1) + lineStr;\n }\n\n lineStr = chunk.content + lineStr;\n }\n\n if (chunk.intro.length > 0) {\n lineIndex = chunk.intro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return chunk.intro.substr(lineIndex + 1) + lineStr;\n }\n\n lineStr = chunk.intro + lineStr;\n }\n } while (chunk = chunk.previous);\n\n lineIndex = this.intro.lastIndexOf(n);\n\n if (lineIndex !== -1) {\n return this.intro.substr(lineIndex + 1) + lineStr;\n }\n\n return this.intro + lineStr;\n};\n\nMagicString.prototype.slice = function slice(start, end) {\n if (start === void 0) start = 0;\n if (end === void 0) end = this.original.length;\n\n while (start < 0) {\n start += this.original.length;\n }\n\n while (end < 0) {\n end += this.original.length;\n }\n\n var result = ''; // find start chunk\n\n var chunk = this.firstChunk;\n\n while (chunk && (chunk.start > start || chunk.end <= start)) {\n // found end chunk before start\n if (chunk.start < end && chunk.end >= end) {\n return result;\n }\n\n chunk = chunk.next;\n }\n\n if (chunk && chunk.edited && chunk.start !== start) {\n throw new Error(\"Cannot use replaced character \" + start + \" as slice start anchor.\");\n }\n\n var startChunk = chunk;\n\n while (chunk) {\n if (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n result += chunk.intro;\n }\n\n var containsEnd = chunk.start < end && chunk.end >= end;\n\n if (containsEnd && chunk.edited && chunk.end !== end) {\n throw new Error(\"Cannot use replaced character \" + end + \" as slice end anchor.\");\n }\n\n var sliceStart = startChunk === chunk ? start - chunk.start : 0;\n var sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n result += chunk.content.slice(sliceStart, sliceEnd);\n\n if (chunk.outro && (!containsEnd || chunk.end === end)) {\n result += chunk.outro;\n }\n\n if (containsEnd) {\n break;\n }\n\n chunk = chunk.next;\n }\n\n return result;\n}; // TODO deprecate this? not really very useful\n\n\nMagicString.prototype.snip = function snip(start, end) {\n var clone = this.clone();\n clone.remove(0, start);\n clone.remove(end, clone.original.length);\n return clone;\n};\n\nMagicString.prototype._split = function _split(index) {\n if (this.byStart[index] || this.byEnd[index]) {\n return;\n }\n\n var chunk = this.lastSearchedChunk;\n var searchForward = index > chunk.end;\n\n while (chunk) {\n if (chunk.contains(index)) {\n return this._splitChunk(chunk, index);\n }\n\n chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n }\n};\n\nMagicString.prototype._splitChunk = function _splitChunk(chunk, index) {\n if (chunk.edited && chunk.content.length) {\n // zero-length edited chunks are a special case (overlapping replacements)\n var loc = getLocator(this.original)(index);\n throw new Error(\"Cannot split a chunk that has already been edited (\" + loc.line + \":\" + loc.column + \" – \\\"\" + chunk.original + \"\\\")\");\n }\n\n var newChunk = chunk.split(index);\n this.byEnd[index] = chunk;\n this.byStart[index] = newChunk;\n this.byEnd[newChunk.end] = newChunk;\n\n if (chunk === this.lastChunk) {\n this.lastChunk = newChunk;\n }\n\n this.lastSearchedChunk = chunk;\n return true;\n};\n\nMagicString.prototype.toString = function toString() {\n var str = this.intro;\n var chunk = this.firstChunk;\n\n while (chunk) {\n str += chunk.toString();\n chunk = chunk.next;\n }\n\n return str + this.outro;\n};\n\nMagicString.prototype.isEmpty = function isEmpty() {\n var chunk = this.firstChunk;\n\n do {\n if (chunk.intro.length && chunk.intro.trim() || chunk.content.length && chunk.content.trim() || chunk.outro.length && chunk.outro.trim()) {\n return false;\n }\n } while (chunk = chunk.next);\n\n return true;\n};\n\nMagicString.prototype.length = function length() {\n var chunk = this.firstChunk;\n var length = 0;\n\n do {\n length += chunk.intro.length + chunk.content.length + chunk.outro.length;\n } while (chunk = chunk.next);\n\n return length;\n};\n\nMagicString.prototype.trimLines = function trimLines() {\n return this.trim('[\\\\r\\\\n]');\n};\n\nMagicString.prototype.trim = function trim(charType) {\n return this.trimStart(charType).trimEnd(charType);\n};\n\nMagicString.prototype.trimEndAborted = function trimEndAborted(charType) {\n var rx = new RegExp((charType || '\\\\s') + '+$');\n this.outro = this.outro.replace(rx, '');\n\n if (this.outro.length) {\n return true;\n }\n\n var chunk = this.lastChunk;\n\n do {\n var end = chunk.end;\n var aborted = chunk.trimEnd(rx); // if chunk was trimmed, we have a new lastChunk\n\n if (chunk.end !== end) {\n if (this.lastChunk === chunk) {\n this.lastChunk = chunk.next;\n }\n\n this.byEnd[chunk.end] = chunk;\n this.byStart[chunk.next.start] = chunk.next;\n this.byEnd[chunk.next.end] = chunk.next;\n }\n\n if (aborted) {\n return true;\n }\n\n chunk = chunk.previous;\n } while (chunk);\n\n return false;\n};\n\nMagicString.prototype.trimEnd = function trimEnd(charType) {\n this.trimEndAborted(charType);\n return this;\n};\n\nMagicString.prototype.trimStartAborted = function trimStartAborted(charType) {\n var rx = new RegExp('^' + (charType || '\\\\s') + '+');\n this.intro = this.intro.replace(rx, '');\n\n if (this.intro.length) {\n return true;\n }\n\n var chunk = this.firstChunk;\n\n do {\n var end = chunk.end;\n var aborted = chunk.trimStart(rx);\n\n if (chunk.end !== end) {\n // special case...\n if (chunk === this.lastChunk) {\n this.lastChunk = chunk.next;\n }\n\n this.byEnd[chunk.end] = chunk;\n this.byStart[chunk.next.start] = chunk.next;\n this.byEnd[chunk.next.end] = chunk.next;\n }\n\n if (aborted) {\n return true;\n }\n\n chunk = chunk.next;\n } while (chunk);\n\n return false;\n};\n\nMagicString.prototype.trimStart = function trimStart(charType) {\n this.trimStartAborted(charType);\n return this;\n};\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n\nvar Bundle = function Bundle(options) {\n if (options === void 0) options = {};\n this.intro = options.intro || '';\n this.separator = options.separator !== undefined ? options.separator : '\\n';\n this.sources = [];\n this.uniqueSources = [];\n this.uniqueSourceIndexByFilename = {};\n};\n\nBundle.prototype.addSource = function addSource(source) {\n if (source instanceof MagicString) {\n return this.addSource({\n content: source,\n filename: source.filename,\n separator: this.separator\n });\n }\n\n if (!isObject(source) || !source.content) {\n throw new Error('bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`');\n }\n\n ['filename', 'indentExclusionRanges', 'separator'].forEach(function (option) {\n if (!hasOwnProp.call(source, option)) {\n source[option] = source.content[option];\n }\n });\n\n if (source.separator === undefined) {\n // TODO there's a bunch of this sort of thing, needs cleaning up\n source.separator = this.separator;\n }\n\n if (source.filename) {\n if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n this.uniqueSources.push({\n filename: source.filename,\n content: source.content.original\n });\n } else {\n var uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\n if (source.content.original !== uniqueSource.content) {\n throw new Error(\"Illegal source: same filename (\" + source.filename + \"), different contents\");\n }\n }\n }\n\n this.sources.push(source);\n return this;\n};\n\nBundle.prototype.append = function append(str, options) {\n this.addSource({\n content: new MagicString(str),\n separator: options && options.separator || ''\n });\n return this;\n};\n\nBundle.prototype.clone = function clone() {\n var bundle = new Bundle({\n intro: this.intro,\n separator: this.separator\n });\n this.sources.forEach(function (source) {\n bundle.addSource({\n filename: source.filename,\n content: source.content.clone(),\n separator: source.separator\n });\n });\n return bundle;\n};\n\nBundle.prototype.generateDecodedMap = function generateDecodedMap(options) {\n var this$1$1 = this;\n if (options === void 0) options = {};\n var names = [];\n this.sources.forEach(function (source) {\n Object.keys(source.content.storedNames).forEach(function (name) {\n if (!~names.indexOf(name)) {\n names.push(name);\n }\n });\n });\n var mappings = new Mappings(options.hires);\n\n if (this.intro) {\n mappings.advance(this.intro);\n }\n\n this.sources.forEach(function (source, i) {\n if (i > 0) {\n mappings.advance(this$1$1.separator);\n }\n\n var sourceIndex = source.filename ? this$1$1.uniqueSourceIndexByFilename[source.filename] : -1;\n var magicString = source.content;\n var locate = getLocator(magicString.original);\n\n if (magicString.intro) {\n mappings.advance(magicString.intro);\n }\n\n magicString.firstChunk.eachNext(function (chunk) {\n var loc = locate(chunk.start);\n\n if (chunk.intro.length) {\n mappings.advance(chunk.intro);\n }\n\n if (source.filename) {\n if (chunk.edited) {\n mappings.addEdit(sourceIndex, chunk.content, loc, chunk.storeName ? names.indexOf(chunk.original) : -1);\n } else {\n mappings.addUneditedChunk(sourceIndex, chunk, magicString.original, loc, magicString.sourcemapLocations);\n }\n } else {\n mappings.advance(chunk.content);\n }\n\n if (chunk.outro.length) {\n mappings.advance(chunk.outro);\n }\n });\n\n if (magicString.outro) {\n mappings.advance(magicString.outro);\n }\n });\n return {\n file: options.file ? options.file.split(/[/\\\\]/).pop() : null,\n sources: this.uniqueSources.map(function (source) {\n return options.file ? getRelativePath(options.file, source.filename) : source.filename;\n }),\n sourcesContent: this.uniqueSources.map(function (source) {\n return options.includeContent ? source.content : null;\n }),\n names: names,\n mappings: mappings.raw\n };\n};\n\nBundle.prototype.generateMap = function generateMap(options) {\n return new SourceMap(this.generateDecodedMap(options));\n};\n\nBundle.prototype.getIndentString = function getIndentString() {\n var indentStringCounts = {};\n this.sources.forEach(function (source) {\n var indentStr = source.content.indentStr;\n\n if (indentStr === null) {\n return;\n }\n\n if (!indentStringCounts[indentStr]) {\n indentStringCounts[indentStr] = 0;\n }\n\n indentStringCounts[indentStr] += 1;\n });\n return Object.keys(indentStringCounts).sort(function (a, b) {\n return indentStringCounts[a] - indentStringCounts[b];\n })[0] || '\\t';\n};\n\nBundle.prototype.indent = function indent(indentStr) {\n var this$1$1 = this;\n\n if (!arguments.length) {\n indentStr = this.getIndentString();\n }\n\n if (indentStr === '') {\n return this;\n } // noop\n\n\n var trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n this.sources.forEach(function (source, i) {\n var separator = source.separator !== undefined ? source.separator : this$1$1.separator;\n var indentStart = trailingNewline || i > 0 && /\\r?\\n$/.test(separator);\n source.content.indent(indentStr, {\n exclude: source.indentExclusionRanges,\n indentStart: indentStart //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\n });\n trailingNewline = source.content.lastChar() === '\\n';\n });\n\n if (this.intro) {\n this.intro = indentStr + this.intro.replace(/^[^\\n]/gm, function (match, index) {\n return index > 0 ? indentStr + match : match;\n });\n }\n\n return this;\n};\n\nBundle.prototype.prepend = function prepend(str) {\n this.intro = str + this.intro;\n return this;\n};\n\nBundle.prototype.toString = function toString() {\n var this$1$1 = this;\n var body = this.sources.map(function (source, i) {\n var separator = source.separator !== undefined ? source.separator : this$1$1.separator;\n var str = (i > 0 ? separator : '') + source.content.toString();\n return str;\n }).join('');\n return this.intro + body;\n};\n\nBundle.prototype.isEmpty = function isEmpty() {\n if (this.intro.length && this.intro.trim()) {\n return false;\n }\n\n if (this.sources.some(function (source) {\n return !source.content.isEmpty();\n })) {\n return false;\n }\n\n return true;\n};\n\nBundle.prototype.length = function length() {\n return this.sources.reduce(function (length, source) {\n return length + source.content.length();\n }, this.intro.length);\n};\n\nBundle.prototype.trimLines = function trimLines() {\n return this.trim('[\\\\r\\\\n]');\n};\n\nBundle.prototype.trim = function trim(charType) {\n return this.trimStart(charType).trimEnd(charType);\n};\n\nBundle.prototype.trimStart = function trimStart(charType) {\n var rx = new RegExp('^' + (charType || '\\\\s') + '+');\n this.intro = this.intro.replace(rx, '');\n\n if (!this.intro) {\n var source;\n var i = 0;\n\n do {\n source = this.sources[i++];\n\n if (!source) {\n break;\n }\n } while (!source.content.trimStartAborted(charType));\n }\n\n return this;\n};\n\nBundle.prototype.trimEnd = function trimEnd(charType) {\n var rx = new RegExp((charType || '\\\\s') + '+$');\n var source;\n var i = this.sources.length - 1;\n\n do {\n source = this.sources[i--];\n\n if (!source) {\n this.intro = this.intro.replace(rx, '');\n break;\n }\n } while (!source.content.trimEndAborted(charType));\n\n return this;\n};\n\nexport { Bundle, SourceMap, MagicString as default };","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n\n it = a.entries();\n\n while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","export var IconsManifest = [{\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n}, {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n}, {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n}, {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n}, {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n}, {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n}, {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n}, {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}];","import React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar React = __importStar(require(\"react\"));\n\nvar KEYCODE_ENTER = 13;\nvar KEYCODE_TAB = 9;\nvar KEYCODE_BACKSPACE = 8;\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar KEYCODE_ESCAPE = 27;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' && 'navigator' in window && /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' && 'navigator' in window && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar className = 'npm__react-simple-code-editor__textarea';\nvar cssText =\n/* CSS */\n\"\\n/**\\n * Reset the text fill color so that placeholder is visible\\n */\\n.\".concat(className, \":empty {\\n -webkit-text-fill-color: inherit !important;\\n}\\n\\n/**\\n * Hack to apply on some CSS on IE10 and IE11\\n */\\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n /**\\n * IE doesn't support '-webkit-text-fill-color'\\n * So we use 'color: transparent' to make the text transparent on IE\\n * Unlike other browsers, it doesn't affect caret color in IE\\n */\\n .\").concat(className, \" {\\n color: transparent !important;\\n }\\n\\n .\").concat(className, \"::selection {\\n background-color: #accef7 !important;\\n color: transparent !important;\\n }\\n}\\n\");\n\nvar Editor =\n/** @class */\nfunction (_super) {\n __extends(Editor, _super);\n\n function Editor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n capture: true\n };\n\n _this._recordCurrentState = function () {\n var input = _this._input;\n if (!input) return; // Save current state of the input\n\n var value = input.value,\n selectionStart = input.selectionStart,\n selectionEnd = input.selectionEnd;\n\n _this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n });\n };\n\n _this._getLines = function (text, position) {\n return text.substring(0, position).split('\\n');\n };\n\n _this._recordChange = function (record, overwrite) {\n var _a, _b, _c;\n\n if (overwrite === void 0) {\n overwrite = false;\n }\n\n var _d = _this._history,\n stack = _d.stack,\n offset = _d.offset;\n\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n _this._history.stack = stack.slice(0, offset + 1); // Limit the number of operations to 100\n\n var count = _this._history.stack.length;\n\n if (count > HISTORY_LIMIT) {\n var extras = count - HISTORY_LIMIT;\n _this._history.stack = stack.slice(extras, count);\n _this._history.offset = Math.max(_this._history.offset - extras, 0);\n }\n }\n\n var timestamp = Date.now();\n\n if (overwrite) {\n var last = _this._history.stack[_this._history.offset];\n\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n // Match the last word in the line\n var re = /[^a-z0-9]([a-z0-9]+)$/i; // Get the previous line\n\n var previous = (_a = _this._getLines(last.value, last.selectionStart).pop()) === null || _a === void 0 ? void 0 : _a.match(re); // Get the current line\n\n var current = (_b = _this._getLines(record.value, record.selectionStart).pop()) === null || _b === void 0 ? void 0 : _b.match(re);\n\n if ((previous === null || previous === void 0 ? void 0 : previous[1]) && ((_c = current === null || current === void 0 ? void 0 : current[1]) === null || _c === void 0 ? void 0 : _c.startsWith(previous[1]))) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n _this._history.stack[_this._history.offset] = __assign(__assign({}, record), {\n timestamp: timestamp\n });\n return;\n }\n }\n } // Add the new operation to the stack\n\n\n _this._history.stack.push(__assign(__assign({}, record), {\n timestamp: timestamp\n }));\n\n _this._history.offset++;\n };\n\n _this._updateInput = function (record) {\n var input = _this._input;\n if (!input) return; // Update values and selection state\n\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n\n _this.props.onValueChange(record.value);\n };\n\n _this._applyEdits = function (record) {\n // Save last selection state\n var input = _this._input;\n var last = _this._history.stack[_this._history.offset];\n\n if (last && input) {\n _this._history.stack[_this._history.offset] = __assign(__assign({}, last), {\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd\n });\n } // Save the changes\n\n\n _this._recordChange(record);\n\n _this._updateInput(record);\n };\n\n _this._undoEdit = function () {\n var _a = _this._history,\n stack = _a.stack,\n offset = _a.offset; // Get the previous edit\n\n var record = stack[offset - 1];\n\n if (record) {\n // Apply the changes and update the offset\n _this._updateInput(record);\n\n _this._history.offset = Math.max(offset - 1, 0);\n }\n };\n\n _this._redoEdit = function () {\n var _a = _this._history,\n stack = _a.stack,\n offset = _a.offset; // Get the next edit\n\n var record = stack[offset + 1];\n\n if (record) {\n // Apply the changes and update the offset\n _this._updateInput(record);\n\n _this._history.offset = Math.min(offset + 1, stack.length - 1);\n }\n };\n\n _this._handleKeyDown = function (e) {\n var _a = _this.props,\n tabSize = _a.tabSize,\n insertSpaces = _a.insertSpaces,\n ignoreTabKey = _a.ignoreTabKey,\n onKeyDown = _a.onKeyDown;\n\n if (onKeyDown) {\n onKeyDown(e);\n\n if (e.defaultPrevented) {\n return;\n }\n }\n\n if (e.keyCode === KEYCODE_ESCAPE) {\n e.currentTarget.blur();\n }\n\n var _b = e.currentTarget,\n value = _b.value,\n selectionStart = _b.selectionStart,\n selectionEnd = _b.selectionEnd;\n var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n\n if (e.keyCode === KEYCODE_TAB && !ignoreTabKey && _this.state.capture) {\n // Prevent focus change\n e.preventDefault();\n\n if (e.shiftKey) {\n // Unindent selected lines\n var linesBeforeCaret = _this._getLines(value, selectionStart);\n\n var startLine_1 = linesBeforeCaret.length - 1;\n var endLine_1 = _this._getLines(value, selectionEnd).length - 1;\n var nextValue = value.split('\\n').map(function (line, i) {\n if (i >= startLine_1 && i <= endLine_1 && line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n\n return line;\n }).join('\\n');\n\n if (value !== nextValue) {\n var startLineText = linesBeforeCaret[startLine_1];\n\n _this._applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: (startLineText === null || startLineText === void 0 ? void 0 : startLineText.startsWith(tabCharacter)) ? selectionStart - tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length)\n });\n }\n } else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n var linesBeforeCaret = _this._getLines(value, selectionStart);\n\n var startLine_2 = linesBeforeCaret.length - 1;\n var endLine_2 = _this._getLines(value, selectionEnd).length - 1;\n var startLineText = linesBeforeCaret[startLine_2];\n\n _this._applyEdits({\n value: value.split('\\n').map(function (line, i) {\n if (i >= startLine_2 && i <= endLine_2) {\n return tabCharacter + line;\n }\n\n return line;\n }).join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: startLineText && /\\S/.test(startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine_2 - startLine_2 + 1)\n });\n } else {\n var updatedSelection = selectionStart + tabCharacter.length;\n\n _this._applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_BACKSPACE) {\n var hasSelection = selectionStart !== selectionEnd;\n var textBeforeCaret = value.substring(0, selectionStart);\n\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n var updatedSelection = selectionStart - tabCharacter.length;\n\n _this._applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_ENTER) {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n var line = _this._getLines(value, selectionStart).pop();\n\n var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n\n if (matches === null || matches === void 0 ? void 0 : matches[0]) {\n e.preventDefault(); // Preserve indentation on inserting a new line\n\n var indent = '\\n' + matches[0];\n var updatedSelection = selectionStart + indent.length;\n\n _this._applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n }\n } else if (e.keyCode === KEYCODE_PARENS || e.keyCode === KEYCODE_BRACKETS || e.keyCode === KEYCODE_QUOTE || e.keyCode === KEYCODE_BACK_QUOTE) {\n var chars = void 0;\n\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n } else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n } else {\n chars = ['[', ']'];\n }\n } else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n } else {\n chars = [\"'\", \"'\"];\n }\n } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n } // If text is selected, wrap them in the characters\n\n\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n\n _this._applyEdits({\n value: value.substring(0, selectionStart) + chars[0] + value.substring(selectionStart, selectionEnd) + chars[1] + value.substring(selectionEnd),\n // Update caret position\n selectionStart: selectionStart,\n selectionEnd: selectionEnd + 2\n });\n }\n } else if ((isMacLike ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) && !e.shiftKey && !e.altKey) {\n e.preventDefault();\n\n _this._undoEdit();\n } else if ((isMacLike ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey : isWindows ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) && !e.altKey) {\n e.preventDefault();\n\n _this._redoEdit();\n } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n e.preventDefault(); // Toggle capturing tab key so users can focus away\n\n _this.setState(function (state) {\n return {\n capture: !state.capture\n };\n });\n }\n };\n\n _this._handleChange = function (e) {\n var _a = e.currentTarget,\n value = _a.value,\n selectionStart = _a.selectionStart,\n selectionEnd = _a.selectionEnd;\n\n _this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n }, true);\n\n _this.props.onValueChange(value);\n };\n\n _this._history = {\n stack: [],\n offset: -1\n };\n _this._input = null;\n return _this;\n }\n\n Editor.prototype.componentDidMount = function () {\n this._recordCurrentState();\n };\n\n Object.defineProperty(Editor.prototype, \"session\", {\n get: function () {\n return {\n history: this._history\n };\n },\n set: function (session) {\n this._history = session.history;\n },\n enumerable: false,\n configurable: true\n });\n\n Editor.prototype.render = function () {\n var _this = this;\n\n var _a = this.props,\n value = _a.value,\n style = _a.style,\n padding = _a.padding,\n highlight = _a.highlight,\n textareaId = _a.textareaId,\n textareaClassName = _a.textareaClassName,\n autoFocus = _a.autoFocus,\n disabled = _a.disabled,\n form = _a.form,\n maxLength = _a.maxLength,\n minLength = _a.minLength,\n name = _a.name,\n placeholder = _a.placeholder,\n readOnly = _a.readOnly,\n required = _a.required,\n onClick = _a.onClick,\n onFocus = _a.onFocus,\n onBlur = _a.onBlur,\n onKeyUp = _a.onKeyUp,\n\n /* eslint-disable @typescript-eslint/no-unused-vars */\n onKeyDown = _a.onKeyDown,\n onValueChange = _a.onValueChange,\n tabSize = _a.tabSize,\n insertSpaces = _a.insertSpaces,\n ignoreTabKey = _a.ignoreTabKey,\n\n /* eslint-enable @typescript-eslint/no-unused-vars */\n preClassName = _a.preClassName,\n rest = __rest(_a, [\"value\", \"style\", \"padding\", \"highlight\", \"textareaId\", \"textareaClassName\", \"autoFocus\", \"disabled\", \"form\", \"maxLength\", \"minLength\", \"name\", \"placeholder\", \"readOnly\", \"required\", \"onClick\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onValueChange\", \"tabSize\", \"insertSpaces\", \"ignoreTabKey\", \"preClassName\"]);\n\n var contentStyle = {\n paddingTop: padding,\n paddingRight: padding,\n paddingBottom: padding,\n paddingLeft: padding\n };\n var highlighted = highlight(value);\n return React.createElement(\"div\", __assign({}, rest, {\n style: __assign(__assign({}, styles.container), style)\n }), React.createElement(\"textarea\", {\n ref: function (c) {\n return _this._input = c;\n },\n style: __assign(__assign(__assign({}, styles.editor), styles.textarea), contentStyle),\n className: className + (textareaClassName ? \" \".concat(textareaClassName) : ''),\n id: textareaId,\n value: value,\n onChange: this._handleChange,\n onKeyDown: this._handleKeyDown,\n onClick: onClick,\n onKeyUp: onKeyUp,\n onFocus: onFocus,\n onBlur: onBlur,\n disabled: disabled,\n form: form,\n maxLength: maxLength,\n minLength: minLength,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: required,\n autoFocus: autoFocus,\n autoCapitalize: \"off\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: false,\n \"data-gramm\": false\n }), React.createElement(\"pre\", __assign({\n className: preClassName,\n \"aria-hidden\": \"true\",\n style: __assign(__assign(__assign({}, styles.editor), styles.highlight), contentStyle)\n }, typeof highlighted === 'string' ? {\n dangerouslySetInnerHTML: {\n __html: highlighted + '
'\n }\n } : {\n children: highlighted\n })), React.createElement(\"style\", {\n type: \"text/css\",\n dangerouslySetInnerHTML: {\n __html: cssText\n }\n }));\n };\n\n Editor.defaultProps = {\n tabSize: 2,\n insertSpaces: true,\n ignoreTabKey: false,\n padding: 0\n };\n return Editor;\n}(React.Component);\n\nexports.default = Editor;\nvar styles = {\n container: {\n position: 'relative',\n textAlign: 'left',\n boxSizing: 'border-box',\n padding: 0,\n overflow: 'hidden'\n },\n textarea: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n resize: 'none',\n color: 'inherit',\n overflow: 'hidden',\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n WebkitTextFillColor: 'transparent'\n },\n highlight: {\n position: 'relative',\n pointerEvents: 'none'\n },\n editor: {\n margin: 0,\n border: 0,\n background: 'none',\n boxSizing: 'inherit',\n display: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontStyle: 'inherit',\n fontVariantLigatures: 'inherit',\n fontWeight: 'inherit',\n letterSpacing: 'inherit',\n lineHeight: 'inherit',\n tabSize: 'inherit',\n textIndent: 'inherit',\n textRendering: 'inherit',\n textTransform: 'inherit',\n whiteSpace: 'pre-wrap',\n wordBreak: 'keep-all',\n overflowWrap: 'break-word'\n }\n};","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\n\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\nexports.strings = ['\\xA9\\uFE0F', '\\xAE\\uFE0F', '\\u203C\\uFE0F', '\\u2049\\uFE0F', '\\u2122\\uFE0F', '\\u2139\\uFE0F', '\\u2194\\uFE0F', '\\u2195\\uFE0F', '\\u2196\\uFE0F', '\\u2197\\uFE0F', '\\u2198\\uFE0F', '\\u2199\\uFE0F', '\\u21A9\\uFE0F', '\\u21AA\\uFE0F', '\\u2328\\uFE0F', '\\u23CF\\uFE0F', '\\u23ED\\uFE0F', '\\u23EE\\uFE0F', '\\u23EF\\uFE0F', '\\u23F1\\uFE0F', '\\u23F2\\uFE0F', '\\u23F8\\uFE0F', '\\u23F9\\uFE0F', '\\u23FA\\uFE0F', '\\u24C2\\uFE0F', '\\u25AA\\uFE0F', '\\u25AB\\uFE0F', '\\u25B6\\uFE0F', '\\u25C0\\uFE0F', '\\u25FB\\uFE0F', '\\u25FC\\uFE0F', '\\u2600\\uFE0F', '\\u2601\\uFE0F', '\\u2602\\uFE0F', '\\u2603\\uFE0F', '\\u2604\\uFE0F', '\\u260E\\uFE0F', '\\u2611\\uFE0F', '\\u2618\\uFE0F', '\\u261D\\uFE0F', '\\u2620\\uFE0F', '\\u2622\\uFE0F', '\\u2623\\uFE0F', '\\u2626\\uFE0F', '\\u262A\\uFE0F', '\\u262E\\uFE0F', '\\u262F\\uFE0F', '\\u2638\\uFE0F', '\\u2639\\uFE0F', '\\u263A\\uFE0F', '\\u2640\\uFE0F', '\\u2642\\uFE0F', '\\u265F\\uFE0F', '\\u2660\\uFE0F', '\\u2663\\uFE0F', '\\u2665\\uFE0F', '\\u2666\\uFE0F', '\\u2668\\uFE0F', '\\u267B\\uFE0F', '\\u267E\\uFE0F', '\\u2692\\uFE0F', '\\u2694\\uFE0F', '\\u2695\\uFE0F', '\\u2696\\uFE0F', '\\u2697\\uFE0F', '\\u2699\\uFE0F', '\\u269B\\uFE0F', '\\u269C\\uFE0F', '\\u26A0\\uFE0F', '\\u26A7\\uFE0F', '\\u26B0\\uFE0F', '\\u26B1\\uFE0F', '\\u26C8\\uFE0F', '\\u26CF\\uFE0F', '\\u26D1\\uFE0F', '\\u26D3\\uFE0F', '\\u26E9\\uFE0F', '\\u26F0\\uFE0F', '\\u26F1\\uFE0F', '\\u26F4\\uFE0F', '\\u26F7\\uFE0F', '\\u26F8\\uFE0F', '\\u26F9\\uFE0F', '\\u2702\\uFE0F', '\\u2708\\uFE0F', '\\u2709\\uFE0F', '\\u270C\\uFE0F', '\\u270D\\uFE0F', '\\u270F\\uFE0F', '\\u2712\\uFE0F', '\\u2714\\uFE0F', '\\u2716\\uFE0F', '\\u271D\\uFE0F', '\\u2721\\uFE0F', '\\u2733\\uFE0F', '\\u2734\\uFE0F', '\\u2744\\uFE0F', '\\u2747\\uFE0F', '\\u2763\\uFE0F', '\\u2764\\uFE0F', '\\u27A1\\uFE0F', '\\u2934\\uFE0F', '\\u2935\\uFE0F', '\\u2B05\\uFE0F', '\\u2B06\\uFE0F', '\\u2B07\\uFE0F', '\\u3030\\uFE0F', '\\u303D\\uFE0F', '\\u3297\\uFE0F', '\\u3299\\uFE0F', '\\u{1F170}\\uFE0F', '\\u{1F171}\\uFE0F', '\\u{1F17E}\\uFE0F', '\\u{1F17F}\\uFE0F', '\\u{1F202}\\uFE0F', '\\u{1F237}\\uFE0F', '\\u{1F321}\\uFE0F', '\\u{1F324}\\uFE0F', '\\u{1F325}\\uFE0F', '\\u{1F326}\\uFE0F', '\\u{1F327}\\uFE0F', '\\u{1F328}\\uFE0F', '\\u{1F329}\\uFE0F', '\\u{1F32A}\\uFE0F', '\\u{1F32B}\\uFE0F', '\\u{1F32C}\\uFE0F', '\\u{1F336}\\uFE0F', '\\u{1F37D}\\uFE0F', '\\u{1F396}\\uFE0F', '\\u{1F397}\\uFE0F', '\\u{1F399}\\uFE0F', '\\u{1F39A}\\uFE0F', '\\u{1F39B}\\uFE0F', '\\u{1F39E}\\uFE0F', '\\u{1F39F}\\uFE0F', '\\u{1F3CB}\\uFE0F', '\\u{1F3CC}\\uFE0F', '\\u{1F3CD}\\uFE0F', '\\u{1F3CE}\\uFE0F', '\\u{1F3D4}\\uFE0F', '\\u{1F3D5}\\uFE0F', '\\u{1F3D6}\\uFE0F', '\\u{1F3D7}\\uFE0F', '\\u{1F3D8}\\uFE0F', '\\u{1F3D9}\\uFE0F', '\\u{1F3DA}\\uFE0F', '\\u{1F3DB}\\uFE0F', '\\u{1F3DC}\\uFE0F', '\\u{1F3DD}\\uFE0F', '\\u{1F3DE}\\uFE0F', '\\u{1F3DF}\\uFE0F', '\\u{1F3F3}\\uFE0F', '\\u{1F3F5}\\uFE0F', '\\u{1F3F7}\\uFE0F', '\\u{1F43F}\\uFE0F', '\\u{1F441}\\uFE0F', '\\u{1F4FD}\\uFE0F', '\\u{1F549}\\uFE0F', '\\u{1F54A}\\uFE0F', '\\u{1F56F}\\uFE0F', '\\u{1F570}\\uFE0F', '\\u{1F573}\\uFE0F', '\\u{1F574}\\uFE0F', '\\u{1F575}\\uFE0F', '\\u{1F576}\\uFE0F', '\\u{1F577}\\uFE0F', '\\u{1F578}\\uFE0F', '\\u{1F579}\\uFE0F', '\\u{1F587}\\uFE0F', '\\u{1F58A}\\uFE0F', '\\u{1F58B}\\uFE0F', '\\u{1F58C}\\uFE0F', '\\u{1F58D}\\uFE0F', '\\u{1F590}\\uFE0F', '\\u{1F5A5}\\uFE0F', '\\u{1F5A8}\\uFE0F', '\\u{1F5B1}\\uFE0F', '\\u{1F5B2}\\uFE0F', '\\u{1F5BC}\\uFE0F', '\\u{1F5C2}\\uFE0F', '\\u{1F5C3}\\uFE0F', '\\u{1F5C4}\\uFE0F', '\\u{1F5D1}\\uFE0F', '\\u{1F5D2}\\uFE0F', '\\u{1F5D3}\\uFE0F', '\\u{1F5DC}\\uFE0F', '\\u{1F5DD}\\uFE0F', '\\u{1F5DE}\\uFE0F', '\\u{1F5E1}\\uFE0F', '\\u{1F5E3}\\uFE0F', '\\u{1F5E8}\\uFE0F', '\\u{1F5EF}\\uFE0F', '\\u{1F5F3}\\uFE0F', '\\u{1F5FA}\\uFE0F', '\\u{1F6CB}\\uFE0F', '\\u{1F6CD}\\uFE0F', '\\u{1F6CE}\\uFE0F', '\\u{1F6CF}\\uFE0F', '\\u{1F6E0}\\uFE0F', '\\u{1F6E1}\\uFE0F', '\\u{1F6E2}\\uFE0F', '\\u{1F6E3}\\uFE0F', '\\u{1F6E4}\\uFE0F', '\\u{1F6E5}\\uFE0F', '\\u{1F6E9}\\uFE0F', '\\u{1F6F0}\\uFE0F', '\\u{1F6F3}\\uFE0F'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['#\\uFE0F\\u20E3', '*\\uFE0F\\u20E3', '0\\uFE0F\\u20E3', '1\\uFE0F\\u20E3', '2\\uFE0F\\u20E3', '3\\uFE0F\\u20E3', '4\\uFE0F\\u20E3', '5\\uFE0F\\u20E3', '6\\uFE0F\\u20E3', '7\\uFE0F\\u20E3', '8\\uFE0F\\u20E3', '9\\uFE0F\\u20E3'];","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\n\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\nexports.strings = ['#\\uFE0F\\u20E3', '*\\uFE0F\\u20E3', '0\\uFE0F\\u20E3', '1\\uFE0F\\u20E3', '2\\uFE0F\\u20E3', '3\\uFE0F\\u20E3', '4\\uFE0F\\u20E3', '5\\uFE0F\\u20E3', '6\\uFE0F\\u20E3', '7\\uFE0F\\u20E3', '8\\uFE0F\\u20E3', '9\\uFE0F\\u20E3', '\\xA9\\uFE0F', '\\xAE\\uFE0F', '\\u203C\\uFE0F', '\\u2049\\uFE0F', '\\u2122\\uFE0F', '\\u2139\\uFE0F', '\\u2194\\uFE0F', '\\u2195\\uFE0F', '\\u2196\\uFE0F', '\\u2197\\uFE0F', '\\u2198\\uFE0F', '\\u2199\\uFE0F', '\\u21A9\\uFE0F', '\\u21AA\\uFE0F', '\\u2328\\uFE0F', '\\u23CF\\uFE0F', '\\u23ED\\uFE0F', '\\u23EE\\uFE0F', '\\u23EF\\uFE0F', '\\u23F1\\uFE0F', '\\u23F2\\uFE0F', '\\u23F8\\uFE0F', '\\u23F9\\uFE0F', '\\u23FA\\uFE0F', '\\u24C2\\uFE0F', '\\u25AA\\uFE0F', '\\u25AB\\uFE0F', '\\u25B6\\uFE0F', '\\u25C0\\uFE0F', '\\u25FB\\uFE0F', '\\u25FC\\uFE0F', '\\u2600\\uFE0F', '\\u2601\\uFE0F', '\\u2602\\uFE0F', '\\u2603\\uFE0F', '\\u2604\\uFE0F', '\\u260E\\uFE0F', '\\u2611\\uFE0F', '\\u2618\\uFE0F', '\\u261D\\u{1F3FB}', '\\u261D\\u{1F3FC}', '\\u261D\\u{1F3FD}', '\\u261D\\u{1F3FE}', '\\u261D\\u{1F3FF}', '\\u261D\\uFE0F', '\\u2620\\uFE0F', '\\u2622\\uFE0F', '\\u2623\\uFE0F', '\\u2626\\uFE0F', '\\u262A\\uFE0F', '\\u262E\\uFE0F', '\\u262F\\uFE0F', '\\u2638\\uFE0F', '\\u2639\\uFE0F', '\\u263A\\uFE0F', '\\u2640\\uFE0F', '\\u2642\\uFE0F', '\\u265F\\uFE0F', '\\u2660\\uFE0F', '\\u2663\\uFE0F', '\\u2665\\uFE0F', '\\u2666\\uFE0F', '\\u2668\\uFE0F', '\\u267B\\uFE0F', '\\u267E\\uFE0F', '\\u2692\\uFE0F', '\\u2694\\uFE0F', '\\u2695\\uFE0F', '\\u2696\\uFE0F', '\\u2697\\uFE0F', '\\u2699\\uFE0F', '\\u269B\\uFE0F', '\\u269C\\uFE0F', '\\u26A0\\uFE0F', '\\u26A7\\uFE0F', '\\u26B0\\uFE0F', '\\u26B1\\uFE0F', '\\u26C8\\uFE0F', '\\u26CF\\uFE0F', '\\u26D1\\uFE0F', '\\u26D3\\uFE0F', '\\u26E9\\uFE0F', '\\u26F0\\uFE0F', '\\u26F1\\uFE0F', '\\u26F4\\uFE0F', '\\u26F7\\uFE0F', '\\u26F8\\uFE0F', '\\u26F9\\u{1F3FB}', '\\u26F9\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FC}', '\\u26F9\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FD}', '\\u26F9\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FE}', '\\u26F9\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FF}', '\\u26F9\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u26F9\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2640\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2642\\uFE0F', '\\u2702\\uFE0F', '\\u2708\\uFE0F', '\\u2709\\uFE0F', '\\u270A\\u{1F3FB}', '\\u270A\\u{1F3FC}', '\\u270A\\u{1F3FD}', '\\u270A\\u{1F3FE}', '\\u270A\\u{1F3FF}', '\\u270B\\u{1F3FB}', '\\u270B\\u{1F3FC}', '\\u270B\\u{1F3FD}', '\\u270B\\u{1F3FE}', '\\u270B\\u{1F3FF}', '\\u270C\\u{1F3FB}', '\\u270C\\u{1F3FC}', '\\u270C\\u{1F3FD}', '\\u270C\\u{1F3FE}', '\\u270C\\u{1F3FF}', '\\u270C\\uFE0F', '\\u270D\\u{1F3FB}', '\\u270D\\u{1F3FC}', '\\u270D\\u{1F3FD}', '\\u270D\\u{1F3FE}', '\\u270D\\u{1F3FF}', '\\u270D\\uFE0F', '\\u270F\\uFE0F', '\\u2712\\uFE0F', '\\u2714\\uFE0F', '\\u2716\\uFE0F', '\\u271D\\uFE0F', '\\u2721\\uFE0F', '\\u2733\\uFE0F', '\\u2734\\uFE0F', '\\u2744\\uFE0F', '\\u2747\\uFE0F', '\\u2763\\uFE0F', '\\u2764\\uFE0F', '\\u2764\\uFE0F\\u200D\\u{1F525}', '\\u2764\\uFE0F\\u200D\\u{1FA79}', '\\u27A1\\uFE0F', '\\u2934\\uFE0F', '\\u2935\\uFE0F', '\\u2B05\\uFE0F', '\\u2B06\\uFE0F', '\\u2B07\\uFE0F', '\\u3030\\uFE0F', '\\u303D\\uFE0F', '\\u3297\\uFE0F', '\\u3299\\uFE0F', '\\u{1F170}\\uFE0F', '\\u{1F171}\\uFE0F', '\\u{1F17E}\\uFE0F', '\\u{1F17F}\\uFE0F', '\\u{1F1E6}\\u{1F1E8}', '\\u{1F1E6}\\u{1F1E9}', '\\u{1F1E6}\\u{1F1EA}', '\\u{1F1E6}\\u{1F1EB}', '\\u{1F1E6}\\u{1F1EC}', '\\u{1F1E6}\\u{1F1EE}', '\\u{1F1E6}\\u{1F1F1}', '\\u{1F1E6}\\u{1F1F2}', '\\u{1F1E6}\\u{1F1F4}', '\\u{1F1E6}\\u{1F1F6}', '\\u{1F1E6}\\u{1F1F7}', '\\u{1F1E6}\\u{1F1F8}', '\\u{1F1E6}\\u{1F1F9}', '\\u{1F1E6}\\u{1F1FA}', '\\u{1F1E6}\\u{1F1FC}', '\\u{1F1E6}\\u{1F1FD}', '\\u{1F1E6}\\u{1F1FF}', '\\u{1F1E7}\\u{1F1E6}', '\\u{1F1E7}\\u{1F1E7}', '\\u{1F1E7}\\u{1F1E9}', '\\u{1F1E7}\\u{1F1EA}', '\\u{1F1E7}\\u{1F1EB}', '\\u{1F1E7}\\u{1F1EC}', '\\u{1F1E7}\\u{1F1ED}', '\\u{1F1E7}\\u{1F1EE}', '\\u{1F1E7}\\u{1F1EF}', '\\u{1F1E7}\\u{1F1F1}', '\\u{1F1E7}\\u{1F1F2}', '\\u{1F1E7}\\u{1F1F3}', '\\u{1F1E7}\\u{1F1F4}', '\\u{1F1E7}\\u{1F1F6}', '\\u{1F1E7}\\u{1F1F7}', '\\u{1F1E7}\\u{1F1F8}', '\\u{1F1E7}\\u{1F1F9}', '\\u{1F1E7}\\u{1F1FB}', '\\u{1F1E7}\\u{1F1FC}', '\\u{1F1E7}\\u{1F1FE}', '\\u{1F1E7}\\u{1F1FF}', '\\u{1F1E8}\\u{1F1E6}', '\\u{1F1E8}\\u{1F1E8}', '\\u{1F1E8}\\u{1F1E9}', '\\u{1F1E8}\\u{1F1EB}', '\\u{1F1E8}\\u{1F1EC}', '\\u{1F1E8}\\u{1F1ED}', '\\u{1F1E8}\\u{1F1EE}', '\\u{1F1E8}\\u{1F1F0}', '\\u{1F1E8}\\u{1F1F1}', '\\u{1F1E8}\\u{1F1F2}', '\\u{1F1E8}\\u{1F1F3}', '\\u{1F1E8}\\u{1F1F4}', '\\u{1F1E8}\\u{1F1F5}', '\\u{1F1E8}\\u{1F1F7}', '\\u{1F1E8}\\u{1F1FA}', '\\u{1F1E8}\\u{1F1FB}', '\\u{1F1E8}\\u{1F1FC}', '\\u{1F1E8}\\u{1F1FD}', '\\u{1F1E8}\\u{1F1FE}', '\\u{1F1E8}\\u{1F1FF}', '\\u{1F1E9}\\u{1F1EA}', '\\u{1F1E9}\\u{1F1EC}', '\\u{1F1E9}\\u{1F1EF}', '\\u{1F1E9}\\u{1F1F0}', '\\u{1F1E9}\\u{1F1F2}', '\\u{1F1E9}\\u{1F1F4}', '\\u{1F1E9}\\u{1F1FF}', '\\u{1F1EA}\\u{1F1E6}', '\\u{1F1EA}\\u{1F1E8}', '\\u{1F1EA}\\u{1F1EA}', '\\u{1F1EA}\\u{1F1EC}', '\\u{1F1EA}\\u{1F1ED}', '\\u{1F1EA}\\u{1F1F7}', '\\u{1F1EA}\\u{1F1F8}', '\\u{1F1EA}\\u{1F1F9}', '\\u{1F1EA}\\u{1F1FA}', '\\u{1F1EB}\\u{1F1EE}', '\\u{1F1EB}\\u{1F1EF}', '\\u{1F1EB}\\u{1F1F0}', '\\u{1F1EB}\\u{1F1F2}', '\\u{1F1EB}\\u{1F1F4}', '\\u{1F1EB}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1E6}', '\\u{1F1EC}\\u{1F1E7}', '\\u{1F1EC}\\u{1F1E9}', '\\u{1F1EC}\\u{1F1EA}', '\\u{1F1EC}\\u{1F1EB}', '\\u{1F1EC}\\u{1F1EC}', '\\u{1F1EC}\\u{1F1ED}', '\\u{1F1EC}\\u{1F1EE}', '\\u{1F1EC}\\u{1F1F1}', '\\u{1F1EC}\\u{1F1F2}', '\\u{1F1EC}\\u{1F1F3}', '\\u{1F1EC}\\u{1F1F5}', '\\u{1F1EC}\\u{1F1F6}', '\\u{1F1EC}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1F8}', '\\u{1F1EC}\\u{1F1F9}', '\\u{1F1EC}\\u{1F1FA}', '\\u{1F1EC}\\u{1F1FC}', '\\u{1F1EC}\\u{1F1FE}', '\\u{1F1ED}\\u{1F1F0}', '\\u{1F1ED}\\u{1F1F2}', '\\u{1F1ED}\\u{1F1F3}', '\\u{1F1ED}\\u{1F1F7}', '\\u{1F1ED}\\u{1F1F9}', '\\u{1F1ED}\\u{1F1FA}', '\\u{1F1EE}\\u{1F1E8}', '\\u{1F1EE}\\u{1F1E9}', '\\u{1F1EE}\\u{1F1EA}', '\\u{1F1EE}\\u{1F1F1}', '\\u{1F1EE}\\u{1F1F2}', '\\u{1F1EE}\\u{1F1F3}', '\\u{1F1EE}\\u{1F1F4}', '\\u{1F1EE}\\u{1F1F6}', '\\u{1F1EE}\\u{1F1F7}', '\\u{1F1EE}\\u{1F1F8}', '\\u{1F1EE}\\u{1F1F9}', '\\u{1F1EF}\\u{1F1EA}', '\\u{1F1EF}\\u{1F1F2}', '\\u{1F1EF}\\u{1F1F4}', '\\u{1F1EF}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1EA}', '\\u{1F1F0}\\u{1F1EC}', '\\u{1F1F0}\\u{1F1ED}', '\\u{1F1F0}\\u{1F1EE}', '\\u{1F1F0}\\u{1F1F2}', '\\u{1F1F0}\\u{1F1F3}', '\\u{1F1F0}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1F7}', '\\u{1F1F0}\\u{1F1FC}', '\\u{1F1F0}\\u{1F1FE}', '\\u{1F1F0}\\u{1F1FF}', '\\u{1F1F1}\\u{1F1E6}', '\\u{1F1F1}\\u{1F1E7}', '\\u{1F1F1}\\u{1F1E8}', '\\u{1F1F1}\\u{1F1EE}', '\\u{1F1F1}\\u{1F1F0}', '\\u{1F1F1}\\u{1F1F7}', '\\u{1F1F1}\\u{1F1F8}', '\\u{1F1F1}\\u{1F1F9}', '\\u{1F1F1}\\u{1F1FA}', '\\u{1F1F1}\\u{1F1FB}', '\\u{1F1F1}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1E6}', '\\u{1F1F2}\\u{1F1E8}', '\\u{1F1F2}\\u{1F1E9}', '\\u{1F1F2}\\u{1F1EA}', '\\u{1F1F2}\\u{1F1EB}', '\\u{1F1F2}\\u{1F1EC}', '\\u{1F1F2}\\u{1F1ED}', '\\u{1F1F2}\\u{1F1F0}', '\\u{1F1F2}\\u{1F1F1}', '\\u{1F1F2}\\u{1F1F2}', '\\u{1F1F2}\\u{1F1F3}', '\\u{1F1F2}\\u{1F1F4}', '\\u{1F1F2}\\u{1F1F5}', '\\u{1F1F2}\\u{1F1F6}', '\\u{1F1F2}\\u{1F1F7}', '\\u{1F1F2}\\u{1F1F8}', '\\u{1F1F2}\\u{1F1F9}', '\\u{1F1F2}\\u{1F1FA}', '\\u{1F1F2}\\u{1F1FB}', '\\u{1F1F2}\\u{1F1FC}', '\\u{1F1F2}\\u{1F1FD}', '\\u{1F1F2}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1FF}', '\\u{1F1F3}\\u{1F1E6}', '\\u{1F1F3}\\u{1F1E8}', '\\u{1F1F3}\\u{1F1EA}', '\\u{1F1F3}\\u{1F1EB}', '\\u{1F1F3}\\u{1F1EC}', '\\u{1F1F3}\\u{1F1EE}', '\\u{1F1F3}\\u{1F1F1}', '\\u{1F1F3}\\u{1F1F4}', '\\u{1F1F3}\\u{1F1F5}', '\\u{1F1F3}\\u{1F1F7}', '\\u{1F1F3}\\u{1F1FA}', '\\u{1F1F3}\\u{1F1FF}', '\\u{1F1F4}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1E6}', '\\u{1F1F5}\\u{1F1EA}', '\\u{1F1F5}\\u{1F1EB}', '\\u{1F1F5}\\u{1F1EC}', '\\u{1F1F5}\\u{1F1ED}', '\\u{1F1F5}\\u{1F1F0}', '\\u{1F1F5}\\u{1F1F1}', '\\u{1F1F5}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1F3}', '\\u{1F1F5}\\u{1F1F7}', '\\u{1F1F5}\\u{1F1F8}', '\\u{1F1F5}\\u{1F1F9}', '\\u{1F1F5}\\u{1F1FC}', '\\u{1F1F5}\\u{1F1FE}', '\\u{1F1F6}\\u{1F1E6}', '\\u{1F1F7}\\u{1F1EA}', '\\u{1F1F7}\\u{1F1F4}', '\\u{1F1F7}\\u{1F1F8}', '\\u{1F1F7}\\u{1F1FA}', '\\u{1F1F7}\\u{1F1FC}', '\\u{1F1F8}\\u{1F1E6}', '\\u{1F1F8}\\u{1F1E7}', '\\u{1F1F8}\\u{1F1E8}', '\\u{1F1F8}\\u{1F1E9}', '\\u{1F1F8}\\u{1F1EA}', '\\u{1F1F8}\\u{1F1EC}', '\\u{1F1F8}\\u{1F1ED}', '\\u{1F1F8}\\u{1F1EE}', '\\u{1F1F8}\\u{1F1EF}', '\\u{1F1F8}\\u{1F1F0}', '\\u{1F1F8}\\u{1F1F1}', '\\u{1F1F8}\\u{1F1F2}', '\\u{1F1F8}\\u{1F1F3}', '\\u{1F1F8}\\u{1F1F4}', '\\u{1F1F8}\\u{1F1F7}', '\\u{1F1F8}\\u{1F1F8}', '\\u{1F1F8}\\u{1F1F9}', '\\u{1F1F8}\\u{1F1FB}', '\\u{1F1F8}\\u{1F1FD}', '\\u{1F1F8}\\u{1F1FE}', '\\u{1F1F8}\\u{1F1FF}', '\\u{1F1F9}\\u{1F1E6}', '\\u{1F1F9}\\u{1F1E8}', '\\u{1F1F9}\\u{1F1E9}', '\\u{1F1F9}\\u{1F1EB}', '\\u{1F1F9}\\u{1F1EC}', '\\u{1F1F9}\\u{1F1ED}', '\\u{1F1F9}\\u{1F1EF}', '\\u{1F1F9}\\u{1F1F0}', '\\u{1F1F9}\\u{1F1F1}', '\\u{1F1F9}\\u{1F1F2}', '\\u{1F1F9}\\u{1F1F3}', '\\u{1F1F9}\\u{1F1F4}', '\\u{1F1F9}\\u{1F1F7}', '\\u{1F1F9}\\u{1F1F9}', '\\u{1F1F9}\\u{1F1FB}', '\\u{1F1F9}\\u{1F1FC}', '\\u{1F1F9}\\u{1F1FF}', '\\u{1F1FA}\\u{1F1E6}', '\\u{1F1FA}\\u{1F1EC}', '\\u{1F1FA}\\u{1F1F2}', '\\u{1F1FA}\\u{1F1F3}', '\\u{1F1FA}\\u{1F1F8}', '\\u{1F1FA}\\u{1F1FE}', '\\u{1F1FA}\\u{1F1FF}', '\\u{1F1FB}\\u{1F1E6}', '\\u{1F1FB}\\u{1F1E8}', '\\u{1F1FB}\\u{1F1EA}', '\\u{1F1FB}\\u{1F1EC}', '\\u{1F1FB}\\u{1F1EE}', '\\u{1F1FB}\\u{1F1F3}', '\\u{1F1FB}\\u{1F1FA}', '\\u{1F1FC}\\u{1F1EB}', '\\u{1F1FC}\\u{1F1F8}', '\\u{1F1FD}\\u{1F1F0}', '\\u{1F1FE}\\u{1F1EA}', '\\u{1F1FE}\\u{1F1F9}', '\\u{1F1FF}\\u{1F1E6}', '\\u{1F1FF}\\u{1F1F2}', '\\u{1F1FF}\\u{1F1FC}', '\\u{1F202}\\uFE0F', '\\u{1F237}\\uFE0F', '\\u{1F321}\\uFE0F', '\\u{1F324}\\uFE0F', '\\u{1F325}\\uFE0F', '\\u{1F326}\\uFE0F', '\\u{1F327}\\uFE0F', '\\u{1F328}\\uFE0F', '\\u{1F329}\\uFE0F', '\\u{1F32A}\\uFE0F', '\\u{1F32B}\\uFE0F', '\\u{1F32C}\\uFE0F', '\\u{1F336}\\uFE0F', '\\u{1F37D}\\uFE0F', '\\u{1F385}\\u{1F3FB}', '\\u{1F385}\\u{1F3FC}', '\\u{1F385}\\u{1F3FD}', '\\u{1F385}\\u{1F3FE}', '\\u{1F385}\\u{1F3FF}', '\\u{1F396}\\uFE0F', '\\u{1F397}\\uFE0F', '\\u{1F399}\\uFE0F', '\\u{1F39A}\\uFE0F', '\\u{1F39B}\\uFE0F', '\\u{1F39E}\\uFE0F', '\\u{1F39F}\\uFE0F', '\\u{1F3C2}\\u{1F3FB}', '\\u{1F3C2}\\u{1F3FC}', '\\u{1F3C2}\\u{1F3FD}', '\\u{1F3C2}\\u{1F3FE}', '\\u{1F3C2}\\u{1F3FF}', '\\u{1F3C3}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FB}', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FC}', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FD}', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FE}', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FF}', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FB}', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FC}', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FD}', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FE}', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FF}', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3C7}\\u{1F3FB}', '\\u{1F3C7}\\u{1F3FC}', '\\u{1F3C7}\\u{1F3FD}', '\\u{1F3C7}\\u{1F3FE}', '\\u{1F3C7}\\u{1F3FF}', '\\u{1F3CA}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FB}', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FC}', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FD}', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FE}', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FF}', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FB}', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FC}', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FD}', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FE}', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FF}', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FB}', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FC}', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FD}', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FE}', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FF}', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3CD}\\uFE0F', '\\u{1F3CE}\\uFE0F', '\\u{1F3D4}\\uFE0F', '\\u{1F3D5}\\uFE0F', '\\u{1F3D6}\\uFE0F', '\\u{1F3D7}\\uFE0F', '\\u{1F3D8}\\uFE0F', '\\u{1F3D9}\\uFE0F', '\\u{1F3DA}\\uFE0F', '\\u{1F3DB}\\uFE0F', '\\u{1F3DC}\\uFE0F', '\\u{1F3DD}\\uFE0F', '\\u{1F3DE}\\uFE0F', '\\u{1F3DF}\\uFE0F', '\\u{1F3F3}\\uFE0F', '\\u{1F3F3}\\uFE0F\\u200D\\u26A7\\uFE0F', '\\u{1F3F3}\\uFE0F\\u200D\\u{1F308}', '\\u{1F3F4}\\u200D\\u2620\\uFE0F', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0065}\\u{E006E}\\u{E0067}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0073}\\u{E0063}\\u{E0074}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0077}\\u{E006C}\\u{E0073}\\u{E007F}', '\\u{1F3F5}\\uFE0F', '\\u{1F3F7}\\uFE0F', '\\u{1F408}\\u200D\\u2B1B', '\\u{1F415}\\u200D\\u{1F9BA}', '\\u{1F426}\\u200D\\u2B1B', '\\u{1F43B}\\u200D\\u2744\\uFE0F', '\\u{1F43F}\\uFE0F', '\\u{1F441}\\uFE0F', '\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F', '\\u{1F442}\\u{1F3FB}', '\\u{1F442}\\u{1F3FC}', '\\u{1F442}\\u{1F3FD}', '\\u{1F442}\\u{1F3FE}', '\\u{1F442}\\u{1F3FF}', '\\u{1F443}\\u{1F3FB}', '\\u{1F443}\\u{1F3FC}', '\\u{1F443}\\u{1F3FD}', '\\u{1F443}\\u{1F3FE}', '\\u{1F443}\\u{1F3FF}', '\\u{1F446}\\u{1F3FB}', '\\u{1F446}\\u{1F3FC}', '\\u{1F446}\\u{1F3FD}', '\\u{1F446}\\u{1F3FE}', '\\u{1F446}\\u{1F3FF}', '\\u{1F447}\\u{1F3FB}', '\\u{1F447}\\u{1F3FC}', '\\u{1F447}\\u{1F3FD}', '\\u{1F447}\\u{1F3FE}', '\\u{1F447}\\u{1F3FF}', '\\u{1F448}\\u{1F3FB}', '\\u{1F448}\\u{1F3FC}', '\\u{1F448}\\u{1F3FD}', '\\u{1F448}\\u{1F3FE}', '\\u{1F448}\\u{1F3FF}', '\\u{1F449}\\u{1F3FB}', '\\u{1F449}\\u{1F3FC}', '\\u{1F449}\\u{1F3FD}', '\\u{1F449}\\u{1F3FE}', '\\u{1F449}\\u{1F3FF}', '\\u{1F44A}\\u{1F3FB}', '\\u{1F44A}\\u{1F3FC}', '\\u{1F44A}\\u{1F3FD}', '\\u{1F44A}\\u{1F3FE}', '\\u{1F44A}\\u{1F3FF}', '\\u{1F44B}\\u{1F3FB}', '\\u{1F44B}\\u{1F3FC}', '\\u{1F44B}\\u{1F3FD}', '\\u{1F44B}\\u{1F3FE}', '\\u{1F44B}\\u{1F3FF}', '\\u{1F44C}\\u{1F3FB}', '\\u{1F44C}\\u{1F3FC}', '\\u{1F44C}\\u{1F3FD}', '\\u{1F44C}\\u{1F3FE}', '\\u{1F44C}\\u{1F3FF}', '\\u{1F44D}\\u{1F3FB}', '\\u{1F44D}\\u{1F3FC}', '\\u{1F44D}\\u{1F3FD}', '\\u{1F44D}\\u{1F3FE}', '\\u{1F44D}\\u{1F3FF}', '\\u{1F44E}\\u{1F3FB}', '\\u{1F44E}\\u{1F3FC}', '\\u{1F44E}\\u{1F3FD}', '\\u{1F44E}\\u{1F3FE}', '\\u{1F44E}\\u{1F3FF}', '\\u{1F44F}\\u{1F3FB}', '\\u{1F44F}\\u{1F3FC}', '\\u{1F44F}\\u{1F3FD}', '\\u{1F44F}\\u{1F3FE}', '\\u{1F44F}\\u{1F3FF}', '\\u{1F450}\\u{1F3FB}', '\\u{1F450}\\u{1F3FC}', '\\u{1F450}\\u{1F3FD}', '\\u{1F450}\\u{1F3FE}', '\\u{1F450}\\u{1F3FF}', '\\u{1F466}\\u{1F3FB}', '\\u{1F466}\\u{1F3FC}', '\\u{1F466}\\u{1F3FD}', '\\u{1F466}\\u{1F3FE}', '\\u{1F466}\\u{1F3FF}', '\\u{1F467}\\u{1F3FB}', '\\u{1F467}\\u{1F3FC}', '\\u{1F467}\\u{1F3FD}', '\\u{1F467}\\u{1F3FE}', '\\u{1F467}\\u{1F3FF}', '\\u{1F468}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u{1F33E}', '\\u{1F468}\\u200D\\u{1F373}', '\\u{1F468}\\u200D\\u{1F37C}', '\\u{1F468}\\u200D\\u{1F393}', '\\u{1F468}\\u200D\\u{1F3A4}', '\\u{1F468}\\u200D\\u{1F3A8}', '\\u{1F468}\\u200D\\u{1F3EB}', '\\u{1F468}\\u200D\\u{1F3ED}', '\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F4BB}', '\\u{1F468}\\u200D\\u{1F4BC}', '\\u{1F468}\\u200D\\u{1F527}', '\\u{1F468}\\u200D\\u{1F52C}', '\\u{1F468}\\u200D\\u{1F680}', '\\u{1F468}\\u200D\\u{1F692}', '\\u{1F468}\\u200D\\u{1F9AF}', '\\u{1F468}\\u200D\\u{1F9B0}', '\\u{1F468}\\u200D\\u{1F9B1}', '\\u{1F468}\\u200D\\u{1F9B2}', '\\u{1F468}\\u200D\\u{1F9B3}', '\\u{1F468}\\u200D\\u{1F9BC}', '\\u{1F468}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F469}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u{1F33E}', '\\u{1F469}\\u200D\\u{1F373}', '\\u{1F469}\\u200D\\u{1F37C}', '\\u{1F469}\\u200D\\u{1F393}', '\\u{1F469}\\u200D\\u{1F3A4}', '\\u{1F469}\\u200D\\u{1F3A8}', '\\u{1F469}\\u200D\\u{1F3EB}', '\\u{1F469}\\u200D\\u{1F3ED}', '\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F4BB}', '\\u{1F469}\\u200D\\u{1F4BC}', '\\u{1F469}\\u200D\\u{1F527}', '\\u{1F469}\\u200D\\u{1F52C}', '\\u{1F469}\\u200D\\u{1F680}', '\\u{1F469}\\u200D\\u{1F692}', '\\u{1F469}\\u200D\\u{1F9AF}', '\\u{1F469}\\u200D\\u{1F9B0}', '\\u{1F469}\\u200D\\u{1F9B1}', '\\u{1F469}\\u200D\\u{1F9B2}', '\\u{1F469}\\u200D\\u{1F9B3}', '\\u{1F469}\\u200D\\u{1F9BC}', '\\u{1F469}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F46B}\\u{1F3FB}', '\\u{1F46B}\\u{1F3FC}', '\\u{1F46B}\\u{1F3FD}', '\\u{1F46B}\\u{1F3FE}', '\\u{1F46B}\\u{1F3FF}', '\\u{1F46C}\\u{1F3FB}', '\\u{1F46C}\\u{1F3FC}', '\\u{1F46C}\\u{1F3FD}', '\\u{1F46C}\\u{1F3FE}', '\\u{1F46C}\\u{1F3FF}', '\\u{1F46D}\\u{1F3FB}', '\\u{1F46D}\\u{1F3FC}', '\\u{1F46D}\\u{1F3FD}', '\\u{1F46D}\\u{1F3FE}', '\\u{1F46D}\\u{1F3FF}', '\\u{1F46E}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FB}', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FC}', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FD}', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FE}', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FF}', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F46F}\\u200D\\u2640\\uFE0F', '\\u{1F46F}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FB}', '\\u{1F470}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FC}', '\\u{1F470}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FD}', '\\u{1F470}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FE}', '\\u{1F470}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FF}', '\\u{1F470}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FB}', '\\u{1F471}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FC}', '\\u{1F471}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FD}', '\\u{1F471}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FE}', '\\u{1F471}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FF}', '\\u{1F471}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F472}\\u{1F3FB}', '\\u{1F472}\\u{1F3FC}', '\\u{1F472}\\u{1F3FD}', '\\u{1F472}\\u{1F3FE}', '\\u{1F472}\\u{1F3FF}', '\\u{1F473}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FB}', '\\u{1F473}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FC}', '\\u{1F473}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FD}', '\\u{1F473}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FE}', '\\u{1F473}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FF}', '\\u{1F473}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F474}\\u{1F3FB}', '\\u{1F474}\\u{1F3FC}', '\\u{1F474}\\u{1F3FD}', '\\u{1F474}\\u{1F3FE}', '\\u{1F474}\\u{1F3FF}', '\\u{1F475}\\u{1F3FB}', '\\u{1F475}\\u{1F3FC}', '\\u{1F475}\\u{1F3FD}', '\\u{1F475}\\u{1F3FE}', '\\u{1F475}\\u{1F3FF}', '\\u{1F476}\\u{1F3FB}', '\\u{1F476}\\u{1F3FC}', '\\u{1F476}\\u{1F3FD}', '\\u{1F476}\\u{1F3FE}', '\\u{1F476}\\u{1F3FF}', '\\u{1F477}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FB}', '\\u{1F477}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FC}', '\\u{1F477}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FD}', '\\u{1F477}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FE}', '\\u{1F477}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FF}', '\\u{1F477}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F478}\\u{1F3FB}', '\\u{1F478}\\u{1F3FC}', '\\u{1F478}\\u{1F3FD}', '\\u{1F478}\\u{1F3FE}', '\\u{1F478}\\u{1F3FF}', '\\u{1F47C}\\u{1F3FB}', '\\u{1F47C}\\u{1F3FC}', '\\u{1F47C}\\u{1F3FD}', '\\u{1F47C}\\u{1F3FE}', '\\u{1F47C}\\u{1F3FF}', '\\u{1F481}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FB}', '\\u{1F481}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FC}', '\\u{1F481}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FD}', '\\u{1F481}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FE}', '\\u{1F481}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FF}', '\\u{1F481}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FB}', '\\u{1F482}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FC}', '\\u{1F482}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FD}', '\\u{1F482}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FE}', '\\u{1F482}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FF}', '\\u{1F482}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F483}\\u{1F3FB}', '\\u{1F483}\\u{1F3FC}', '\\u{1F483}\\u{1F3FD}', '\\u{1F483}\\u{1F3FE}', '\\u{1F483}\\u{1F3FF}', '\\u{1F485}\\u{1F3FB}', '\\u{1F485}\\u{1F3FC}', '\\u{1F485}\\u{1F3FD}', '\\u{1F485}\\u{1F3FE}', '\\u{1F485}\\u{1F3FF}', '\\u{1F486}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FB}', '\\u{1F486}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FC}', '\\u{1F486}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FD}', '\\u{1F486}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FE}', '\\u{1F486}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FF}', '\\u{1F486}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FB}', '\\u{1F487}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FC}', '\\u{1F487}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FD}', '\\u{1F487}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FE}', '\\u{1F487}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FF}', '\\u{1F487}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F48F}\\u{1F3FB}', '\\u{1F48F}\\u{1F3FC}', '\\u{1F48F}\\u{1F3FD}', '\\u{1F48F}\\u{1F3FE}', '\\u{1F48F}\\u{1F3FF}', '\\u{1F491}\\u{1F3FB}', '\\u{1F491}\\u{1F3FC}', '\\u{1F491}\\u{1F3FD}', '\\u{1F491}\\u{1F3FE}', '\\u{1F491}\\u{1F3FF}', '\\u{1F4AA}\\u{1F3FB}', '\\u{1F4AA}\\u{1F3FC}', '\\u{1F4AA}\\u{1F3FD}', '\\u{1F4AA}\\u{1F3FE}', '\\u{1F4AA}\\u{1F3FF}', '\\u{1F4FD}\\uFE0F', '\\u{1F549}\\uFE0F', '\\u{1F54A}\\uFE0F', '\\u{1F56F}\\uFE0F', '\\u{1F570}\\uFE0F', '\\u{1F573}\\uFE0F', '\\u{1F574}\\u{1F3FB}', '\\u{1F574}\\u{1F3FC}', '\\u{1F574}\\u{1F3FD}', '\\u{1F574}\\u{1F3FE}', '\\u{1F574}\\u{1F3FF}', '\\u{1F574}\\uFE0F', '\\u{1F575}\\u{1F3FB}', '\\u{1F575}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FC}', '\\u{1F575}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FD}', '\\u{1F575}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FE}', '\\u{1F575}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FF}', '\\u{1F575}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F576}\\uFE0F', '\\u{1F577}\\uFE0F', '\\u{1F578}\\uFE0F', '\\u{1F579}\\uFE0F', '\\u{1F57A}\\u{1F3FB}', '\\u{1F57A}\\u{1F3FC}', '\\u{1F57A}\\u{1F3FD}', '\\u{1F57A}\\u{1F3FE}', '\\u{1F57A}\\u{1F3FF}', '\\u{1F587}\\uFE0F', '\\u{1F58A}\\uFE0F', '\\u{1F58B}\\uFE0F', '\\u{1F58C}\\uFE0F', '\\u{1F58D}\\uFE0F', '\\u{1F590}\\u{1F3FB}', '\\u{1F590}\\u{1F3FC}', '\\u{1F590}\\u{1F3FD}', '\\u{1F590}\\u{1F3FE}', '\\u{1F590}\\u{1F3FF}', '\\u{1F590}\\uFE0F', '\\u{1F595}\\u{1F3FB}', '\\u{1F595}\\u{1F3FC}', '\\u{1F595}\\u{1F3FD}', '\\u{1F595}\\u{1F3FE}', '\\u{1F595}\\u{1F3FF}', '\\u{1F596}\\u{1F3FB}', '\\u{1F596}\\u{1F3FC}', '\\u{1F596}\\u{1F3FD}', '\\u{1F596}\\u{1F3FE}', '\\u{1F596}\\u{1F3FF}', '\\u{1F5A5}\\uFE0F', '\\u{1F5A8}\\uFE0F', '\\u{1F5B1}\\uFE0F', '\\u{1F5B2}\\uFE0F', '\\u{1F5BC}\\uFE0F', '\\u{1F5C2}\\uFE0F', '\\u{1F5C3}\\uFE0F', '\\u{1F5C4}\\uFE0F', '\\u{1F5D1}\\uFE0F', '\\u{1F5D2}\\uFE0F', '\\u{1F5D3}\\uFE0F', '\\u{1F5DC}\\uFE0F', '\\u{1F5DD}\\uFE0F', '\\u{1F5DE}\\uFE0F', '\\u{1F5E1}\\uFE0F', '\\u{1F5E3}\\uFE0F', '\\u{1F5E8}\\uFE0F', '\\u{1F5EF}\\uFE0F', '\\u{1F5F3}\\uFE0F', '\\u{1F5FA}\\uFE0F', '\\u{1F62E}\\u200D\\u{1F4A8}', '\\u{1F635}\\u200D\\u{1F4AB}', '\\u{1F636}\\u200D\\u{1F32B}\\uFE0F', '\\u{1F645}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FB}', '\\u{1F645}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FC}', '\\u{1F645}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FD}', '\\u{1F645}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FE}', '\\u{1F645}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FF}', '\\u{1F645}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FB}', '\\u{1F646}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FC}', '\\u{1F646}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FD}', '\\u{1F646}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FE}', '\\u{1F646}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FF}', '\\u{1F646}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FB}', '\\u{1F647}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FC}', '\\u{1F647}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FD}', '\\u{1F647}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FE}', '\\u{1F647}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FF}', '\\u{1F647}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FB}', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FC}', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FD}', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FE}', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FF}', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64C}\\u{1F3FB}', '\\u{1F64C}\\u{1F3FC}', '\\u{1F64C}\\u{1F3FD}', '\\u{1F64C}\\u{1F3FE}', '\\u{1F64C}\\u{1F3FF}', '\\u{1F64D}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FB}', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FC}', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FD}', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FE}', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FF}', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FB}', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FC}', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FD}', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FE}', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FF}', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64F}\\u{1F3FB}', '\\u{1F64F}\\u{1F3FC}', '\\u{1F64F}\\u{1F3FD}', '\\u{1F64F}\\u{1F3FE}', '\\u{1F64F}\\u{1F3FF}', '\\u{1F6A3}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FB}', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FC}', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FD}', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FE}', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FF}', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FB}', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FC}', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FD}', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FE}', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FF}', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FB}', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FC}', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FD}', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FE}', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FF}', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FB}', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FC}', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FD}', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FE}', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FF}', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6C0}\\u{1F3FB}', '\\u{1F6C0}\\u{1F3FC}', '\\u{1F6C0}\\u{1F3FD}', '\\u{1F6C0}\\u{1F3FE}', '\\u{1F6C0}\\u{1F3FF}', '\\u{1F6CB}\\uFE0F', '\\u{1F6CC}\\u{1F3FB}', '\\u{1F6CC}\\u{1F3FC}', '\\u{1F6CC}\\u{1F3FD}', '\\u{1F6CC}\\u{1F3FE}', '\\u{1F6CC}\\u{1F3FF}', '\\u{1F6CD}\\uFE0F', '\\u{1F6CE}\\uFE0F', '\\u{1F6CF}\\uFE0F', '\\u{1F6E0}\\uFE0F', '\\u{1F6E1}\\uFE0F', '\\u{1F6E2}\\uFE0F', '\\u{1F6E3}\\uFE0F', '\\u{1F6E4}\\uFE0F', '\\u{1F6E5}\\uFE0F', '\\u{1F6E9}\\uFE0F', '\\u{1F6F0}\\uFE0F', '\\u{1F6F3}\\uFE0F', '\\u{1F90C}\\u{1F3FB}', '\\u{1F90C}\\u{1F3FC}', '\\u{1F90C}\\u{1F3FD}', '\\u{1F90C}\\u{1F3FE}', '\\u{1F90C}\\u{1F3FF}', '\\u{1F90F}\\u{1F3FB}', '\\u{1F90F}\\u{1F3FC}', '\\u{1F90F}\\u{1F3FD}', '\\u{1F90F}\\u{1F3FE}', '\\u{1F90F}\\u{1F3FF}', '\\u{1F918}\\u{1F3FB}', '\\u{1F918}\\u{1F3FC}', '\\u{1F918}\\u{1F3FD}', '\\u{1F918}\\u{1F3FE}', '\\u{1F918}\\u{1F3FF}', '\\u{1F919}\\u{1F3FB}', '\\u{1F919}\\u{1F3FC}', '\\u{1F919}\\u{1F3FD}', '\\u{1F919}\\u{1F3FE}', '\\u{1F919}\\u{1F3FF}', '\\u{1F91A}\\u{1F3FB}', '\\u{1F91A}\\u{1F3FC}', '\\u{1F91A}\\u{1F3FD}', '\\u{1F91A}\\u{1F3FE}', '\\u{1F91A}\\u{1F3FF}', '\\u{1F91B}\\u{1F3FB}', '\\u{1F91B}\\u{1F3FC}', '\\u{1F91B}\\u{1F3FD}', '\\u{1F91B}\\u{1F3FE}', '\\u{1F91B}\\u{1F3FF}', '\\u{1F91C}\\u{1F3FB}', '\\u{1F91C}\\u{1F3FC}', '\\u{1F91C}\\u{1F3FD}', '\\u{1F91C}\\u{1F3FE}', '\\u{1F91C}\\u{1F3FF}', '\\u{1F91D}\\u{1F3FB}', '\\u{1F91D}\\u{1F3FC}', '\\u{1F91D}\\u{1F3FD}', '\\u{1F91D}\\u{1F3FE}', '\\u{1F91D}\\u{1F3FF}', '\\u{1F91E}\\u{1F3FB}', '\\u{1F91E}\\u{1F3FC}', '\\u{1F91E}\\u{1F3FD}', '\\u{1F91E}\\u{1F3FE}', '\\u{1F91E}\\u{1F3FF}', '\\u{1F91F}\\u{1F3FB}', '\\u{1F91F}\\u{1F3FC}', '\\u{1F91F}\\u{1F3FD}', '\\u{1F91F}\\u{1F3FE}', '\\u{1F91F}\\u{1F3FF}', '\\u{1F926}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FB}', '\\u{1F926}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FC}', '\\u{1F926}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FD}', '\\u{1F926}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FE}', '\\u{1F926}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FF}', '\\u{1F926}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F930}\\u{1F3FB}', '\\u{1F930}\\u{1F3FC}', '\\u{1F930}\\u{1F3FD}', '\\u{1F930}\\u{1F3FE}', '\\u{1F930}\\u{1F3FF}', '\\u{1F931}\\u{1F3FB}', '\\u{1F931}\\u{1F3FC}', '\\u{1F931}\\u{1F3FD}', '\\u{1F931}\\u{1F3FE}', '\\u{1F931}\\u{1F3FF}', '\\u{1F932}\\u{1F3FB}', '\\u{1F932}\\u{1F3FC}', '\\u{1F932}\\u{1F3FD}', '\\u{1F932}\\u{1F3FE}', '\\u{1F932}\\u{1F3FF}', '\\u{1F933}\\u{1F3FB}', '\\u{1F933}\\u{1F3FC}', '\\u{1F933}\\u{1F3FD}', '\\u{1F933}\\u{1F3FE}', '\\u{1F933}\\u{1F3FF}', '\\u{1F934}\\u{1F3FB}', '\\u{1F934}\\u{1F3FC}', '\\u{1F934}\\u{1F3FD}', '\\u{1F934}\\u{1F3FE}', '\\u{1F934}\\u{1F3FF}', '\\u{1F935}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FB}', '\\u{1F935}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FC}', '\\u{1F935}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FD}', '\\u{1F935}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FE}', '\\u{1F935}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FF}', '\\u{1F935}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F936}\\u{1F3FB}', '\\u{1F936}\\u{1F3FC}', '\\u{1F936}\\u{1F3FD}', '\\u{1F936}\\u{1F3FE}', '\\u{1F936}\\u{1F3FF}', '\\u{1F937}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FB}', '\\u{1F937}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FC}', '\\u{1F937}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FD}', '\\u{1F937}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FE}', '\\u{1F937}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FF}', '\\u{1F937}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FB}', '\\u{1F938}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FC}', '\\u{1F938}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FD}', '\\u{1F938}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FE}', '\\u{1F938}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FF}', '\\u{1F938}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FB}', '\\u{1F939}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FC}', '\\u{1F939}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FD}', '\\u{1F939}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FE}', '\\u{1F939}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FF}', '\\u{1F939}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93C}\\u200D\\u2640\\uFE0F', '\\u{1F93C}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FB}', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FC}', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FD}', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FE}', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FF}', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FB}', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FC}', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FD}', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FE}', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FF}', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F977}\\u{1F3FB}', '\\u{1F977}\\u{1F3FC}', '\\u{1F977}\\u{1F3FD}', '\\u{1F977}\\u{1F3FE}', '\\u{1F977}\\u{1F3FF}', '\\u{1F9B5}\\u{1F3FB}', '\\u{1F9B5}\\u{1F3FC}', '\\u{1F9B5}\\u{1F3FD}', '\\u{1F9B5}\\u{1F3FE}', '\\u{1F9B5}\\u{1F3FF}', '\\u{1F9B6}\\u{1F3FB}', '\\u{1F9B6}\\u{1F3FC}', '\\u{1F9B6}\\u{1F3FD}', '\\u{1F9B6}\\u{1F3FE}', '\\u{1F9B6}\\u{1F3FF}', '\\u{1F9B8}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FB}', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FC}', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FD}', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FE}', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FF}', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FB}', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FC}', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FD}', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FE}', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FF}', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9BB}\\u{1F3FB}', '\\u{1F9BB}\\u{1F3FC}', '\\u{1F9BB}\\u{1F3FD}', '\\u{1F9BB}\\u{1F3FE}', '\\u{1F9BB}\\u{1F3FF}', '\\u{1F9CD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FB}', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FC}', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FD}', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FE}', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FF}', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FB}', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FC}', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FD}', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FE}', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FF}', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FB}', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FC}', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FD}', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FE}', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FF}', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D1}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u200D\\u{1F373}', '\\u{1F9D1}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u200D\\u{1F384}', '\\u{1F9D1}\\u200D\\u{1F393}', '\\u{1F9D1}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u200D\\u{1F527}', '\\u{1F9D1}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u200D\\u{1F680}', '\\u{1F9D1}\\u200D\\u{1F692}', '\\u{1F9D1}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}', '\\u{1F9D1}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F9D2}\\u{1F3FB}', '\\u{1F9D2}\\u{1F3FC}', '\\u{1F9D2}\\u{1F3FD}', '\\u{1F9D2}\\u{1F3FE}', '\\u{1F9D2}\\u{1F3FF}', '\\u{1F9D3}\\u{1F3FB}', '\\u{1F9D3}\\u{1F3FC}', '\\u{1F9D3}\\u{1F3FD}', '\\u{1F9D3}\\u{1F3FE}', '\\u{1F9D3}\\u{1F3FF}', '\\u{1F9D4}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FB}', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FC}', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FD}', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FE}', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FF}', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D5}\\u{1F3FB}', '\\u{1F9D5}\\u{1F3FC}', '\\u{1F9D5}\\u{1F3FD}', '\\u{1F9D5}\\u{1F3FE}', '\\u{1F9D5}\\u{1F3FF}', '\\u{1F9D6}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FB}', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FC}', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FD}', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FE}', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FF}', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FB}', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FC}', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FD}', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FE}', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FF}', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FB}', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FC}', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FD}', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FE}', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FF}', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FB}', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FC}', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FD}', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FE}', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FF}', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FB}', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FC}', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FD}', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FE}', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FF}', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FB}', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FC}', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FD}', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FE}', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FF}', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FB}', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FC}', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FD}', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FE}', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FF}', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FB}', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FC}', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FD}', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FE}', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FF}', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DE}\\u200D\\u2640\\uFE0F', '\\u{1F9DE}\\u200D\\u2642\\uFE0F', '\\u{1F9DF}\\u200D\\u2640\\uFE0F', '\\u{1F9DF}\\u200D\\u2642\\uFE0F', '\\u{1FAC3}\\u{1F3FB}', '\\u{1FAC3}\\u{1F3FC}', '\\u{1FAC3}\\u{1F3FD}', '\\u{1FAC3}\\u{1F3FE}', '\\u{1FAC3}\\u{1F3FF}', '\\u{1FAC4}\\u{1F3FB}', '\\u{1FAC4}\\u{1F3FC}', '\\u{1FAC4}\\u{1F3FD}', '\\u{1FAC4}\\u{1F3FE}', '\\u{1FAC4}\\u{1F3FF}', '\\u{1FAC5}\\u{1F3FB}', '\\u{1FAC5}\\u{1F3FC}', '\\u{1FAC5}\\u{1F3FD}', '\\u{1FAC5}\\u{1F3FE}', '\\u{1FAC5}\\u{1F3FF}', '\\u{1FAF0}\\u{1F3FB}', '\\u{1FAF0}\\u{1F3FC}', '\\u{1FAF0}\\u{1F3FD}', '\\u{1FAF0}\\u{1F3FE}', '\\u{1FAF0}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF3}\\u{1F3FB}', '\\u{1FAF3}\\u{1F3FC}', '\\u{1FAF3}\\u{1F3FD}', '\\u{1FAF3}\\u{1F3FE}', '\\u{1FAF3}\\u{1F3FF}', '\\u{1FAF4}\\u{1F3FB}', '\\u{1FAF4}\\u{1F3FC}', '\\u{1FAF4}\\u{1F3FD}', '\\u{1FAF4}\\u{1F3FE}', '\\u{1FAF4}\\u{1F3FF}', '\\u{1FAF5}\\u{1F3FB}', '\\u{1FAF5}\\u{1F3FC}', '\\u{1FAF5}\\u{1F3FD}', '\\u{1FAF5}\\u{1F3FE}', '\\u{1FAF5}\\u{1F3FF}', '\\u{1FAF6}\\u{1F3FB}', '\\u{1FAF6}\\u{1F3FC}', '\\u{1FAF6}\\u{1F3FD}', '\\u{1FAF6}\\u{1F3FE}', '\\u{1FAF6}\\u{1F3FF}', '\\u{1FAF7}\\u{1F3FB}', '\\u{1FAF7}\\u{1F3FC}', '\\u{1FAF7}\\u{1F3FD}', '\\u{1FAF7}\\u{1F3FE}', '\\u{1FAF7}\\u{1F3FF}', '\\u{1FAF8}\\u{1F3FB}', '\\u{1FAF8}\\u{1F3FC}', '\\u{1FAF8}\\u{1F3FD}', '\\u{1FAF8}\\u{1F3FE}', '\\u{1FAF8}\\u{1F3FF}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F1E6}\\u{1F1E8}', '\\u{1F1E6}\\u{1F1E9}', '\\u{1F1E6}\\u{1F1EA}', '\\u{1F1E6}\\u{1F1EB}', '\\u{1F1E6}\\u{1F1EC}', '\\u{1F1E6}\\u{1F1EE}', '\\u{1F1E6}\\u{1F1F1}', '\\u{1F1E6}\\u{1F1F2}', '\\u{1F1E6}\\u{1F1F4}', '\\u{1F1E6}\\u{1F1F6}', '\\u{1F1E6}\\u{1F1F7}', '\\u{1F1E6}\\u{1F1F8}', '\\u{1F1E6}\\u{1F1F9}', '\\u{1F1E6}\\u{1F1FA}', '\\u{1F1E6}\\u{1F1FC}', '\\u{1F1E6}\\u{1F1FD}', '\\u{1F1E6}\\u{1F1FF}', '\\u{1F1E7}\\u{1F1E6}', '\\u{1F1E7}\\u{1F1E7}', '\\u{1F1E7}\\u{1F1E9}', '\\u{1F1E7}\\u{1F1EA}', '\\u{1F1E7}\\u{1F1EB}', '\\u{1F1E7}\\u{1F1EC}', '\\u{1F1E7}\\u{1F1ED}', '\\u{1F1E7}\\u{1F1EE}', '\\u{1F1E7}\\u{1F1EF}', '\\u{1F1E7}\\u{1F1F1}', '\\u{1F1E7}\\u{1F1F2}', '\\u{1F1E7}\\u{1F1F3}', '\\u{1F1E7}\\u{1F1F4}', '\\u{1F1E7}\\u{1F1F6}', '\\u{1F1E7}\\u{1F1F7}', '\\u{1F1E7}\\u{1F1F8}', '\\u{1F1E7}\\u{1F1F9}', '\\u{1F1E7}\\u{1F1FB}', '\\u{1F1E7}\\u{1F1FC}', '\\u{1F1E7}\\u{1F1FE}', '\\u{1F1E7}\\u{1F1FF}', '\\u{1F1E8}\\u{1F1E6}', '\\u{1F1E8}\\u{1F1E8}', '\\u{1F1E8}\\u{1F1E9}', '\\u{1F1E8}\\u{1F1EB}', '\\u{1F1E8}\\u{1F1EC}', '\\u{1F1E8}\\u{1F1ED}', '\\u{1F1E8}\\u{1F1EE}', '\\u{1F1E8}\\u{1F1F0}', '\\u{1F1E8}\\u{1F1F1}', '\\u{1F1E8}\\u{1F1F2}', '\\u{1F1E8}\\u{1F1F3}', '\\u{1F1E8}\\u{1F1F4}', '\\u{1F1E8}\\u{1F1F5}', '\\u{1F1E8}\\u{1F1F7}', '\\u{1F1E8}\\u{1F1FA}', '\\u{1F1E8}\\u{1F1FB}', '\\u{1F1E8}\\u{1F1FC}', '\\u{1F1E8}\\u{1F1FD}', '\\u{1F1E8}\\u{1F1FE}', '\\u{1F1E8}\\u{1F1FF}', '\\u{1F1E9}\\u{1F1EA}', '\\u{1F1E9}\\u{1F1EC}', '\\u{1F1E9}\\u{1F1EF}', '\\u{1F1E9}\\u{1F1F0}', '\\u{1F1E9}\\u{1F1F2}', '\\u{1F1E9}\\u{1F1F4}', '\\u{1F1E9}\\u{1F1FF}', '\\u{1F1EA}\\u{1F1E6}', '\\u{1F1EA}\\u{1F1E8}', '\\u{1F1EA}\\u{1F1EA}', '\\u{1F1EA}\\u{1F1EC}', '\\u{1F1EA}\\u{1F1ED}', '\\u{1F1EA}\\u{1F1F7}', '\\u{1F1EA}\\u{1F1F8}', '\\u{1F1EA}\\u{1F1F9}', '\\u{1F1EA}\\u{1F1FA}', '\\u{1F1EB}\\u{1F1EE}', '\\u{1F1EB}\\u{1F1EF}', '\\u{1F1EB}\\u{1F1F0}', '\\u{1F1EB}\\u{1F1F2}', '\\u{1F1EB}\\u{1F1F4}', '\\u{1F1EB}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1E6}', '\\u{1F1EC}\\u{1F1E7}', '\\u{1F1EC}\\u{1F1E9}', '\\u{1F1EC}\\u{1F1EA}', '\\u{1F1EC}\\u{1F1EB}', '\\u{1F1EC}\\u{1F1EC}', '\\u{1F1EC}\\u{1F1ED}', '\\u{1F1EC}\\u{1F1EE}', '\\u{1F1EC}\\u{1F1F1}', '\\u{1F1EC}\\u{1F1F2}', '\\u{1F1EC}\\u{1F1F3}', '\\u{1F1EC}\\u{1F1F5}', '\\u{1F1EC}\\u{1F1F6}', '\\u{1F1EC}\\u{1F1F7}', '\\u{1F1EC}\\u{1F1F8}', '\\u{1F1EC}\\u{1F1F9}', '\\u{1F1EC}\\u{1F1FA}', '\\u{1F1EC}\\u{1F1FC}', '\\u{1F1EC}\\u{1F1FE}', '\\u{1F1ED}\\u{1F1F0}', '\\u{1F1ED}\\u{1F1F2}', '\\u{1F1ED}\\u{1F1F3}', '\\u{1F1ED}\\u{1F1F7}', '\\u{1F1ED}\\u{1F1F9}', '\\u{1F1ED}\\u{1F1FA}', '\\u{1F1EE}\\u{1F1E8}', '\\u{1F1EE}\\u{1F1E9}', '\\u{1F1EE}\\u{1F1EA}', '\\u{1F1EE}\\u{1F1F1}', '\\u{1F1EE}\\u{1F1F2}', '\\u{1F1EE}\\u{1F1F3}', '\\u{1F1EE}\\u{1F1F4}', '\\u{1F1EE}\\u{1F1F6}', '\\u{1F1EE}\\u{1F1F7}', '\\u{1F1EE}\\u{1F1F8}', '\\u{1F1EE}\\u{1F1F9}', '\\u{1F1EF}\\u{1F1EA}', '\\u{1F1EF}\\u{1F1F2}', '\\u{1F1EF}\\u{1F1F4}', '\\u{1F1EF}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1EA}', '\\u{1F1F0}\\u{1F1EC}', '\\u{1F1F0}\\u{1F1ED}', '\\u{1F1F0}\\u{1F1EE}', '\\u{1F1F0}\\u{1F1F2}', '\\u{1F1F0}\\u{1F1F3}', '\\u{1F1F0}\\u{1F1F5}', '\\u{1F1F0}\\u{1F1F7}', '\\u{1F1F0}\\u{1F1FC}', '\\u{1F1F0}\\u{1F1FE}', '\\u{1F1F0}\\u{1F1FF}', '\\u{1F1F1}\\u{1F1E6}', '\\u{1F1F1}\\u{1F1E7}', '\\u{1F1F1}\\u{1F1E8}', '\\u{1F1F1}\\u{1F1EE}', '\\u{1F1F1}\\u{1F1F0}', '\\u{1F1F1}\\u{1F1F7}', '\\u{1F1F1}\\u{1F1F8}', '\\u{1F1F1}\\u{1F1F9}', '\\u{1F1F1}\\u{1F1FA}', '\\u{1F1F1}\\u{1F1FB}', '\\u{1F1F1}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1E6}', '\\u{1F1F2}\\u{1F1E8}', '\\u{1F1F2}\\u{1F1E9}', '\\u{1F1F2}\\u{1F1EA}', '\\u{1F1F2}\\u{1F1EB}', '\\u{1F1F2}\\u{1F1EC}', '\\u{1F1F2}\\u{1F1ED}', '\\u{1F1F2}\\u{1F1F0}', '\\u{1F1F2}\\u{1F1F1}', '\\u{1F1F2}\\u{1F1F2}', '\\u{1F1F2}\\u{1F1F3}', '\\u{1F1F2}\\u{1F1F4}', '\\u{1F1F2}\\u{1F1F5}', '\\u{1F1F2}\\u{1F1F6}', '\\u{1F1F2}\\u{1F1F7}', '\\u{1F1F2}\\u{1F1F8}', '\\u{1F1F2}\\u{1F1F9}', '\\u{1F1F2}\\u{1F1FA}', '\\u{1F1F2}\\u{1F1FB}', '\\u{1F1F2}\\u{1F1FC}', '\\u{1F1F2}\\u{1F1FD}', '\\u{1F1F2}\\u{1F1FE}', '\\u{1F1F2}\\u{1F1FF}', '\\u{1F1F3}\\u{1F1E6}', '\\u{1F1F3}\\u{1F1E8}', '\\u{1F1F3}\\u{1F1EA}', '\\u{1F1F3}\\u{1F1EB}', '\\u{1F1F3}\\u{1F1EC}', '\\u{1F1F3}\\u{1F1EE}', '\\u{1F1F3}\\u{1F1F1}', '\\u{1F1F3}\\u{1F1F4}', '\\u{1F1F3}\\u{1F1F5}', '\\u{1F1F3}\\u{1F1F7}', '\\u{1F1F3}\\u{1F1FA}', '\\u{1F1F3}\\u{1F1FF}', '\\u{1F1F4}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1E6}', '\\u{1F1F5}\\u{1F1EA}', '\\u{1F1F5}\\u{1F1EB}', '\\u{1F1F5}\\u{1F1EC}', '\\u{1F1F5}\\u{1F1ED}', '\\u{1F1F5}\\u{1F1F0}', '\\u{1F1F5}\\u{1F1F1}', '\\u{1F1F5}\\u{1F1F2}', '\\u{1F1F5}\\u{1F1F3}', '\\u{1F1F5}\\u{1F1F7}', '\\u{1F1F5}\\u{1F1F8}', '\\u{1F1F5}\\u{1F1F9}', '\\u{1F1F5}\\u{1F1FC}', '\\u{1F1F5}\\u{1F1FE}', '\\u{1F1F6}\\u{1F1E6}', '\\u{1F1F7}\\u{1F1EA}', '\\u{1F1F7}\\u{1F1F4}', '\\u{1F1F7}\\u{1F1F8}', '\\u{1F1F7}\\u{1F1FA}', '\\u{1F1F7}\\u{1F1FC}', '\\u{1F1F8}\\u{1F1E6}', '\\u{1F1F8}\\u{1F1E7}', '\\u{1F1F8}\\u{1F1E8}', '\\u{1F1F8}\\u{1F1E9}', '\\u{1F1F8}\\u{1F1EA}', '\\u{1F1F8}\\u{1F1EC}', '\\u{1F1F8}\\u{1F1ED}', '\\u{1F1F8}\\u{1F1EE}', '\\u{1F1F8}\\u{1F1EF}', '\\u{1F1F8}\\u{1F1F0}', '\\u{1F1F8}\\u{1F1F1}', '\\u{1F1F8}\\u{1F1F2}', '\\u{1F1F8}\\u{1F1F3}', '\\u{1F1F8}\\u{1F1F4}', '\\u{1F1F8}\\u{1F1F7}', '\\u{1F1F8}\\u{1F1F8}', '\\u{1F1F8}\\u{1F1F9}', '\\u{1F1F8}\\u{1F1FB}', '\\u{1F1F8}\\u{1F1FD}', '\\u{1F1F8}\\u{1F1FE}', '\\u{1F1F8}\\u{1F1FF}', '\\u{1F1F9}\\u{1F1E6}', '\\u{1F1F9}\\u{1F1E8}', '\\u{1F1F9}\\u{1F1E9}', '\\u{1F1F9}\\u{1F1EB}', '\\u{1F1F9}\\u{1F1EC}', '\\u{1F1F9}\\u{1F1ED}', '\\u{1F1F9}\\u{1F1EF}', '\\u{1F1F9}\\u{1F1F0}', '\\u{1F1F9}\\u{1F1F1}', '\\u{1F1F9}\\u{1F1F2}', '\\u{1F1F9}\\u{1F1F3}', '\\u{1F1F9}\\u{1F1F4}', '\\u{1F1F9}\\u{1F1F7}', '\\u{1F1F9}\\u{1F1F9}', '\\u{1F1F9}\\u{1F1FB}', '\\u{1F1F9}\\u{1F1FC}', '\\u{1F1F9}\\u{1F1FF}', '\\u{1F1FA}\\u{1F1E6}', '\\u{1F1FA}\\u{1F1EC}', '\\u{1F1FA}\\u{1F1F2}', '\\u{1F1FA}\\u{1F1F3}', '\\u{1F1FA}\\u{1F1F8}', '\\u{1F1FA}\\u{1F1FE}', '\\u{1F1FA}\\u{1F1FF}', '\\u{1F1FB}\\u{1F1E6}', '\\u{1F1FB}\\u{1F1E8}', '\\u{1F1FB}\\u{1F1EA}', '\\u{1F1FB}\\u{1F1EC}', '\\u{1F1FB}\\u{1F1EE}', '\\u{1F1FB}\\u{1F1F3}', '\\u{1F1FB}\\u{1F1FA}', '\\u{1F1FC}\\u{1F1EB}', '\\u{1F1FC}\\u{1F1F8}', '\\u{1F1FD}\\u{1F1F0}', '\\u{1F1FE}\\u{1F1EA}', '\\u{1F1FE}\\u{1F1F9}', '\\u{1F1FF}\\u{1F1E6}', '\\u{1F1FF}\\u{1F1F2}', '\\u{1F1FF}\\u{1F1FC}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u261D\\u{1F3FB}', '\\u261D\\u{1F3FC}', '\\u261D\\u{1F3FD}', '\\u261D\\u{1F3FE}', '\\u261D\\u{1F3FF}', '\\u26F9\\u{1F3FB}', '\\u26F9\\u{1F3FC}', '\\u26F9\\u{1F3FD}', '\\u26F9\\u{1F3FE}', '\\u26F9\\u{1F3FF}', '\\u270A\\u{1F3FB}', '\\u270A\\u{1F3FC}', '\\u270A\\u{1F3FD}', '\\u270A\\u{1F3FE}', '\\u270A\\u{1F3FF}', '\\u270B\\u{1F3FB}', '\\u270B\\u{1F3FC}', '\\u270B\\u{1F3FD}', '\\u270B\\u{1F3FE}', '\\u270B\\u{1F3FF}', '\\u270C\\u{1F3FB}', '\\u270C\\u{1F3FC}', '\\u270C\\u{1F3FD}', '\\u270C\\u{1F3FE}', '\\u270C\\u{1F3FF}', '\\u270D\\u{1F3FB}', '\\u270D\\u{1F3FC}', '\\u270D\\u{1F3FD}', '\\u270D\\u{1F3FE}', '\\u270D\\u{1F3FF}', '\\u{1F385}\\u{1F3FB}', '\\u{1F385}\\u{1F3FC}', '\\u{1F385}\\u{1F3FD}', '\\u{1F385}\\u{1F3FE}', '\\u{1F385}\\u{1F3FF}', '\\u{1F3C2}\\u{1F3FB}', '\\u{1F3C2}\\u{1F3FC}', '\\u{1F3C2}\\u{1F3FD}', '\\u{1F3C2}\\u{1F3FE}', '\\u{1F3C2}\\u{1F3FF}', '\\u{1F3C3}\\u{1F3FB}', '\\u{1F3C3}\\u{1F3FC}', '\\u{1F3C3}\\u{1F3FD}', '\\u{1F3C3}\\u{1F3FE}', '\\u{1F3C3}\\u{1F3FF}', '\\u{1F3C4}\\u{1F3FB}', '\\u{1F3C4}\\u{1F3FC}', '\\u{1F3C4}\\u{1F3FD}', '\\u{1F3C4}\\u{1F3FE}', '\\u{1F3C4}\\u{1F3FF}', '\\u{1F3C7}\\u{1F3FB}', '\\u{1F3C7}\\u{1F3FC}', '\\u{1F3C7}\\u{1F3FD}', '\\u{1F3C7}\\u{1F3FE}', '\\u{1F3C7}\\u{1F3FF}', '\\u{1F3CA}\\u{1F3FB}', '\\u{1F3CA}\\u{1F3FC}', '\\u{1F3CA}\\u{1F3FD}', '\\u{1F3CA}\\u{1F3FE}', '\\u{1F3CA}\\u{1F3FF}', '\\u{1F3CB}\\u{1F3FB}', '\\u{1F3CB}\\u{1F3FC}', '\\u{1F3CB}\\u{1F3FD}', '\\u{1F3CB}\\u{1F3FE}', '\\u{1F3CB}\\u{1F3FF}', '\\u{1F3CC}\\u{1F3FB}', '\\u{1F3CC}\\u{1F3FC}', '\\u{1F3CC}\\u{1F3FD}', '\\u{1F3CC}\\u{1F3FE}', '\\u{1F3CC}\\u{1F3FF}', '\\u{1F442}\\u{1F3FB}', '\\u{1F442}\\u{1F3FC}', '\\u{1F442}\\u{1F3FD}', '\\u{1F442}\\u{1F3FE}', '\\u{1F442}\\u{1F3FF}', '\\u{1F443}\\u{1F3FB}', '\\u{1F443}\\u{1F3FC}', '\\u{1F443}\\u{1F3FD}', '\\u{1F443}\\u{1F3FE}', '\\u{1F443}\\u{1F3FF}', '\\u{1F446}\\u{1F3FB}', '\\u{1F446}\\u{1F3FC}', '\\u{1F446}\\u{1F3FD}', '\\u{1F446}\\u{1F3FE}', '\\u{1F446}\\u{1F3FF}', '\\u{1F447}\\u{1F3FB}', '\\u{1F447}\\u{1F3FC}', '\\u{1F447}\\u{1F3FD}', '\\u{1F447}\\u{1F3FE}', '\\u{1F447}\\u{1F3FF}', '\\u{1F448}\\u{1F3FB}', '\\u{1F448}\\u{1F3FC}', '\\u{1F448}\\u{1F3FD}', '\\u{1F448}\\u{1F3FE}', '\\u{1F448}\\u{1F3FF}', '\\u{1F449}\\u{1F3FB}', '\\u{1F449}\\u{1F3FC}', '\\u{1F449}\\u{1F3FD}', '\\u{1F449}\\u{1F3FE}', '\\u{1F449}\\u{1F3FF}', '\\u{1F44A}\\u{1F3FB}', '\\u{1F44A}\\u{1F3FC}', '\\u{1F44A}\\u{1F3FD}', '\\u{1F44A}\\u{1F3FE}', '\\u{1F44A}\\u{1F3FF}', '\\u{1F44B}\\u{1F3FB}', '\\u{1F44B}\\u{1F3FC}', '\\u{1F44B}\\u{1F3FD}', '\\u{1F44B}\\u{1F3FE}', '\\u{1F44B}\\u{1F3FF}', '\\u{1F44C}\\u{1F3FB}', '\\u{1F44C}\\u{1F3FC}', '\\u{1F44C}\\u{1F3FD}', '\\u{1F44C}\\u{1F3FE}', '\\u{1F44C}\\u{1F3FF}', '\\u{1F44D}\\u{1F3FB}', '\\u{1F44D}\\u{1F3FC}', '\\u{1F44D}\\u{1F3FD}', '\\u{1F44D}\\u{1F3FE}', '\\u{1F44D}\\u{1F3FF}', '\\u{1F44E}\\u{1F3FB}', '\\u{1F44E}\\u{1F3FC}', '\\u{1F44E}\\u{1F3FD}', '\\u{1F44E}\\u{1F3FE}', '\\u{1F44E}\\u{1F3FF}', '\\u{1F44F}\\u{1F3FB}', '\\u{1F44F}\\u{1F3FC}', '\\u{1F44F}\\u{1F3FD}', '\\u{1F44F}\\u{1F3FE}', '\\u{1F44F}\\u{1F3FF}', '\\u{1F450}\\u{1F3FB}', '\\u{1F450}\\u{1F3FC}', '\\u{1F450}\\u{1F3FD}', '\\u{1F450}\\u{1F3FE}', '\\u{1F450}\\u{1F3FF}', '\\u{1F466}\\u{1F3FB}', '\\u{1F466}\\u{1F3FC}', '\\u{1F466}\\u{1F3FD}', '\\u{1F466}\\u{1F3FE}', '\\u{1F466}\\u{1F3FF}', '\\u{1F467}\\u{1F3FB}', '\\u{1F467}\\u{1F3FC}', '\\u{1F467}\\u{1F3FD}', '\\u{1F467}\\u{1F3FE}', '\\u{1F467}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}', '\\u{1F46B}\\u{1F3FB}', '\\u{1F46B}\\u{1F3FC}', '\\u{1F46B}\\u{1F3FD}', '\\u{1F46B}\\u{1F3FE}', '\\u{1F46B}\\u{1F3FF}', '\\u{1F46C}\\u{1F3FB}', '\\u{1F46C}\\u{1F3FC}', '\\u{1F46C}\\u{1F3FD}', '\\u{1F46C}\\u{1F3FE}', '\\u{1F46C}\\u{1F3FF}', '\\u{1F46D}\\u{1F3FB}', '\\u{1F46D}\\u{1F3FC}', '\\u{1F46D}\\u{1F3FD}', '\\u{1F46D}\\u{1F3FE}', '\\u{1F46D}\\u{1F3FF}', '\\u{1F46E}\\u{1F3FB}', '\\u{1F46E}\\u{1F3FC}', '\\u{1F46E}\\u{1F3FD}', '\\u{1F46E}\\u{1F3FE}', '\\u{1F46E}\\u{1F3FF}', '\\u{1F470}\\u{1F3FB}', '\\u{1F470}\\u{1F3FC}', '\\u{1F470}\\u{1F3FD}', '\\u{1F470}\\u{1F3FE}', '\\u{1F470}\\u{1F3FF}', '\\u{1F471}\\u{1F3FB}', '\\u{1F471}\\u{1F3FC}', '\\u{1F471}\\u{1F3FD}', '\\u{1F471}\\u{1F3FE}', '\\u{1F471}\\u{1F3FF}', '\\u{1F472}\\u{1F3FB}', '\\u{1F472}\\u{1F3FC}', '\\u{1F472}\\u{1F3FD}', '\\u{1F472}\\u{1F3FE}', '\\u{1F472}\\u{1F3FF}', '\\u{1F473}\\u{1F3FB}', '\\u{1F473}\\u{1F3FC}', '\\u{1F473}\\u{1F3FD}', '\\u{1F473}\\u{1F3FE}', '\\u{1F473}\\u{1F3FF}', '\\u{1F474}\\u{1F3FB}', '\\u{1F474}\\u{1F3FC}', '\\u{1F474}\\u{1F3FD}', '\\u{1F474}\\u{1F3FE}', '\\u{1F474}\\u{1F3FF}', '\\u{1F475}\\u{1F3FB}', '\\u{1F475}\\u{1F3FC}', '\\u{1F475}\\u{1F3FD}', '\\u{1F475}\\u{1F3FE}', '\\u{1F475}\\u{1F3FF}', '\\u{1F476}\\u{1F3FB}', '\\u{1F476}\\u{1F3FC}', '\\u{1F476}\\u{1F3FD}', '\\u{1F476}\\u{1F3FE}', '\\u{1F476}\\u{1F3FF}', '\\u{1F477}\\u{1F3FB}', '\\u{1F477}\\u{1F3FC}', '\\u{1F477}\\u{1F3FD}', '\\u{1F477}\\u{1F3FE}', '\\u{1F477}\\u{1F3FF}', '\\u{1F478}\\u{1F3FB}', '\\u{1F478}\\u{1F3FC}', '\\u{1F478}\\u{1F3FD}', '\\u{1F478}\\u{1F3FE}', '\\u{1F478}\\u{1F3FF}', '\\u{1F47C}\\u{1F3FB}', '\\u{1F47C}\\u{1F3FC}', '\\u{1F47C}\\u{1F3FD}', '\\u{1F47C}\\u{1F3FE}', '\\u{1F47C}\\u{1F3FF}', '\\u{1F481}\\u{1F3FB}', '\\u{1F481}\\u{1F3FC}', '\\u{1F481}\\u{1F3FD}', '\\u{1F481}\\u{1F3FE}', '\\u{1F481}\\u{1F3FF}', '\\u{1F482}\\u{1F3FB}', '\\u{1F482}\\u{1F3FC}', '\\u{1F482}\\u{1F3FD}', '\\u{1F482}\\u{1F3FE}', '\\u{1F482}\\u{1F3FF}', '\\u{1F483}\\u{1F3FB}', '\\u{1F483}\\u{1F3FC}', '\\u{1F483}\\u{1F3FD}', '\\u{1F483}\\u{1F3FE}', '\\u{1F483}\\u{1F3FF}', '\\u{1F485}\\u{1F3FB}', '\\u{1F485}\\u{1F3FC}', '\\u{1F485}\\u{1F3FD}', '\\u{1F485}\\u{1F3FE}', '\\u{1F485}\\u{1F3FF}', '\\u{1F486}\\u{1F3FB}', '\\u{1F486}\\u{1F3FC}', '\\u{1F486}\\u{1F3FD}', '\\u{1F486}\\u{1F3FE}', '\\u{1F486}\\u{1F3FF}', '\\u{1F487}\\u{1F3FB}', '\\u{1F487}\\u{1F3FC}', '\\u{1F487}\\u{1F3FD}', '\\u{1F487}\\u{1F3FE}', '\\u{1F487}\\u{1F3FF}', '\\u{1F48F}\\u{1F3FB}', '\\u{1F48F}\\u{1F3FC}', '\\u{1F48F}\\u{1F3FD}', '\\u{1F48F}\\u{1F3FE}', '\\u{1F48F}\\u{1F3FF}', '\\u{1F491}\\u{1F3FB}', '\\u{1F491}\\u{1F3FC}', '\\u{1F491}\\u{1F3FD}', '\\u{1F491}\\u{1F3FE}', '\\u{1F491}\\u{1F3FF}', '\\u{1F4AA}\\u{1F3FB}', '\\u{1F4AA}\\u{1F3FC}', '\\u{1F4AA}\\u{1F3FD}', '\\u{1F4AA}\\u{1F3FE}', '\\u{1F4AA}\\u{1F3FF}', '\\u{1F574}\\u{1F3FB}', '\\u{1F574}\\u{1F3FC}', '\\u{1F574}\\u{1F3FD}', '\\u{1F574}\\u{1F3FE}', '\\u{1F574}\\u{1F3FF}', '\\u{1F575}\\u{1F3FB}', '\\u{1F575}\\u{1F3FC}', '\\u{1F575}\\u{1F3FD}', '\\u{1F575}\\u{1F3FE}', '\\u{1F575}\\u{1F3FF}', '\\u{1F57A}\\u{1F3FB}', '\\u{1F57A}\\u{1F3FC}', '\\u{1F57A}\\u{1F3FD}', '\\u{1F57A}\\u{1F3FE}', '\\u{1F57A}\\u{1F3FF}', '\\u{1F590}\\u{1F3FB}', '\\u{1F590}\\u{1F3FC}', '\\u{1F590}\\u{1F3FD}', '\\u{1F590}\\u{1F3FE}', '\\u{1F590}\\u{1F3FF}', '\\u{1F595}\\u{1F3FB}', '\\u{1F595}\\u{1F3FC}', '\\u{1F595}\\u{1F3FD}', '\\u{1F595}\\u{1F3FE}', '\\u{1F595}\\u{1F3FF}', '\\u{1F596}\\u{1F3FB}', '\\u{1F596}\\u{1F3FC}', '\\u{1F596}\\u{1F3FD}', '\\u{1F596}\\u{1F3FE}', '\\u{1F596}\\u{1F3FF}', '\\u{1F645}\\u{1F3FB}', '\\u{1F645}\\u{1F3FC}', '\\u{1F645}\\u{1F3FD}', '\\u{1F645}\\u{1F3FE}', '\\u{1F645}\\u{1F3FF}', '\\u{1F646}\\u{1F3FB}', '\\u{1F646}\\u{1F3FC}', '\\u{1F646}\\u{1F3FD}', '\\u{1F646}\\u{1F3FE}', '\\u{1F646}\\u{1F3FF}', '\\u{1F647}\\u{1F3FB}', '\\u{1F647}\\u{1F3FC}', '\\u{1F647}\\u{1F3FD}', '\\u{1F647}\\u{1F3FE}', '\\u{1F647}\\u{1F3FF}', '\\u{1F64B}\\u{1F3FB}', '\\u{1F64B}\\u{1F3FC}', '\\u{1F64B}\\u{1F3FD}', '\\u{1F64B}\\u{1F3FE}', '\\u{1F64B}\\u{1F3FF}', '\\u{1F64C}\\u{1F3FB}', '\\u{1F64C}\\u{1F3FC}', '\\u{1F64C}\\u{1F3FD}', '\\u{1F64C}\\u{1F3FE}', '\\u{1F64C}\\u{1F3FF}', '\\u{1F64D}\\u{1F3FB}', '\\u{1F64D}\\u{1F3FC}', '\\u{1F64D}\\u{1F3FD}', '\\u{1F64D}\\u{1F3FE}', '\\u{1F64D}\\u{1F3FF}', '\\u{1F64E}\\u{1F3FB}', '\\u{1F64E}\\u{1F3FC}', '\\u{1F64E}\\u{1F3FD}', '\\u{1F64E}\\u{1F3FE}', '\\u{1F64E}\\u{1F3FF}', '\\u{1F64F}\\u{1F3FB}', '\\u{1F64F}\\u{1F3FC}', '\\u{1F64F}\\u{1F3FD}', '\\u{1F64F}\\u{1F3FE}', '\\u{1F64F}\\u{1F3FF}', '\\u{1F6A3}\\u{1F3FB}', '\\u{1F6A3}\\u{1F3FC}', '\\u{1F6A3}\\u{1F3FD}', '\\u{1F6A3}\\u{1F3FE}', '\\u{1F6A3}\\u{1F3FF}', '\\u{1F6B4}\\u{1F3FB}', '\\u{1F6B4}\\u{1F3FC}', '\\u{1F6B4}\\u{1F3FD}', '\\u{1F6B4}\\u{1F3FE}', '\\u{1F6B4}\\u{1F3FF}', '\\u{1F6B5}\\u{1F3FB}', '\\u{1F6B5}\\u{1F3FC}', '\\u{1F6B5}\\u{1F3FD}', '\\u{1F6B5}\\u{1F3FE}', '\\u{1F6B5}\\u{1F3FF}', '\\u{1F6B6}\\u{1F3FB}', '\\u{1F6B6}\\u{1F3FC}', '\\u{1F6B6}\\u{1F3FD}', '\\u{1F6B6}\\u{1F3FE}', '\\u{1F6B6}\\u{1F3FF}', '\\u{1F6C0}\\u{1F3FB}', '\\u{1F6C0}\\u{1F3FC}', '\\u{1F6C0}\\u{1F3FD}', '\\u{1F6C0}\\u{1F3FE}', '\\u{1F6C0}\\u{1F3FF}', '\\u{1F6CC}\\u{1F3FB}', '\\u{1F6CC}\\u{1F3FC}', '\\u{1F6CC}\\u{1F3FD}', '\\u{1F6CC}\\u{1F3FE}', '\\u{1F6CC}\\u{1F3FF}', '\\u{1F90C}\\u{1F3FB}', '\\u{1F90C}\\u{1F3FC}', '\\u{1F90C}\\u{1F3FD}', '\\u{1F90C}\\u{1F3FE}', '\\u{1F90C}\\u{1F3FF}', '\\u{1F90F}\\u{1F3FB}', '\\u{1F90F}\\u{1F3FC}', '\\u{1F90F}\\u{1F3FD}', '\\u{1F90F}\\u{1F3FE}', '\\u{1F90F}\\u{1F3FF}', '\\u{1F918}\\u{1F3FB}', '\\u{1F918}\\u{1F3FC}', '\\u{1F918}\\u{1F3FD}', '\\u{1F918}\\u{1F3FE}', '\\u{1F918}\\u{1F3FF}', '\\u{1F919}\\u{1F3FB}', '\\u{1F919}\\u{1F3FC}', '\\u{1F919}\\u{1F3FD}', '\\u{1F919}\\u{1F3FE}', '\\u{1F919}\\u{1F3FF}', '\\u{1F91A}\\u{1F3FB}', '\\u{1F91A}\\u{1F3FC}', '\\u{1F91A}\\u{1F3FD}', '\\u{1F91A}\\u{1F3FE}', '\\u{1F91A}\\u{1F3FF}', '\\u{1F91B}\\u{1F3FB}', '\\u{1F91B}\\u{1F3FC}', '\\u{1F91B}\\u{1F3FD}', '\\u{1F91B}\\u{1F3FE}', '\\u{1F91B}\\u{1F3FF}', '\\u{1F91C}\\u{1F3FB}', '\\u{1F91C}\\u{1F3FC}', '\\u{1F91C}\\u{1F3FD}', '\\u{1F91C}\\u{1F3FE}', '\\u{1F91C}\\u{1F3FF}', '\\u{1F91D}\\u{1F3FB}', '\\u{1F91D}\\u{1F3FC}', '\\u{1F91D}\\u{1F3FD}', '\\u{1F91D}\\u{1F3FE}', '\\u{1F91D}\\u{1F3FF}', '\\u{1F91E}\\u{1F3FB}', '\\u{1F91E}\\u{1F3FC}', '\\u{1F91E}\\u{1F3FD}', '\\u{1F91E}\\u{1F3FE}', '\\u{1F91E}\\u{1F3FF}', '\\u{1F91F}\\u{1F3FB}', '\\u{1F91F}\\u{1F3FC}', '\\u{1F91F}\\u{1F3FD}', '\\u{1F91F}\\u{1F3FE}', '\\u{1F91F}\\u{1F3FF}', '\\u{1F926}\\u{1F3FB}', '\\u{1F926}\\u{1F3FC}', '\\u{1F926}\\u{1F3FD}', '\\u{1F926}\\u{1F3FE}', '\\u{1F926}\\u{1F3FF}', '\\u{1F930}\\u{1F3FB}', '\\u{1F930}\\u{1F3FC}', '\\u{1F930}\\u{1F3FD}', '\\u{1F930}\\u{1F3FE}', '\\u{1F930}\\u{1F3FF}', '\\u{1F931}\\u{1F3FB}', '\\u{1F931}\\u{1F3FC}', '\\u{1F931}\\u{1F3FD}', '\\u{1F931}\\u{1F3FE}', '\\u{1F931}\\u{1F3FF}', '\\u{1F932}\\u{1F3FB}', '\\u{1F932}\\u{1F3FC}', '\\u{1F932}\\u{1F3FD}', '\\u{1F932}\\u{1F3FE}', '\\u{1F932}\\u{1F3FF}', '\\u{1F933}\\u{1F3FB}', '\\u{1F933}\\u{1F3FC}', '\\u{1F933}\\u{1F3FD}', '\\u{1F933}\\u{1F3FE}', '\\u{1F933}\\u{1F3FF}', '\\u{1F934}\\u{1F3FB}', '\\u{1F934}\\u{1F3FC}', '\\u{1F934}\\u{1F3FD}', '\\u{1F934}\\u{1F3FE}', '\\u{1F934}\\u{1F3FF}', '\\u{1F935}\\u{1F3FB}', '\\u{1F935}\\u{1F3FC}', '\\u{1F935}\\u{1F3FD}', '\\u{1F935}\\u{1F3FE}', '\\u{1F935}\\u{1F3FF}', '\\u{1F936}\\u{1F3FB}', '\\u{1F936}\\u{1F3FC}', '\\u{1F936}\\u{1F3FD}', '\\u{1F936}\\u{1F3FE}', '\\u{1F936}\\u{1F3FF}', '\\u{1F937}\\u{1F3FB}', '\\u{1F937}\\u{1F3FC}', '\\u{1F937}\\u{1F3FD}', '\\u{1F937}\\u{1F3FE}', '\\u{1F937}\\u{1F3FF}', '\\u{1F938}\\u{1F3FB}', '\\u{1F938}\\u{1F3FC}', '\\u{1F938}\\u{1F3FD}', '\\u{1F938}\\u{1F3FE}', '\\u{1F938}\\u{1F3FF}', '\\u{1F939}\\u{1F3FB}', '\\u{1F939}\\u{1F3FC}', '\\u{1F939}\\u{1F3FD}', '\\u{1F939}\\u{1F3FE}', '\\u{1F939}\\u{1F3FF}', '\\u{1F93D}\\u{1F3FB}', '\\u{1F93D}\\u{1F3FC}', '\\u{1F93D}\\u{1F3FD}', '\\u{1F93D}\\u{1F3FE}', '\\u{1F93D}\\u{1F3FF}', '\\u{1F93E}\\u{1F3FB}', '\\u{1F93E}\\u{1F3FC}', '\\u{1F93E}\\u{1F3FD}', '\\u{1F93E}\\u{1F3FE}', '\\u{1F93E}\\u{1F3FF}', '\\u{1F977}\\u{1F3FB}', '\\u{1F977}\\u{1F3FC}', '\\u{1F977}\\u{1F3FD}', '\\u{1F977}\\u{1F3FE}', '\\u{1F977}\\u{1F3FF}', '\\u{1F9B5}\\u{1F3FB}', '\\u{1F9B5}\\u{1F3FC}', '\\u{1F9B5}\\u{1F3FD}', '\\u{1F9B5}\\u{1F3FE}', '\\u{1F9B5}\\u{1F3FF}', '\\u{1F9B6}\\u{1F3FB}', '\\u{1F9B6}\\u{1F3FC}', '\\u{1F9B6}\\u{1F3FD}', '\\u{1F9B6}\\u{1F3FE}', '\\u{1F9B6}\\u{1F3FF}', '\\u{1F9B8}\\u{1F3FB}', '\\u{1F9B8}\\u{1F3FC}', '\\u{1F9B8}\\u{1F3FD}', '\\u{1F9B8}\\u{1F3FE}', '\\u{1F9B8}\\u{1F3FF}', '\\u{1F9B9}\\u{1F3FB}', '\\u{1F9B9}\\u{1F3FC}', '\\u{1F9B9}\\u{1F3FD}', '\\u{1F9B9}\\u{1F3FE}', '\\u{1F9B9}\\u{1F3FF}', '\\u{1F9BB}\\u{1F3FB}', '\\u{1F9BB}\\u{1F3FC}', '\\u{1F9BB}\\u{1F3FD}', '\\u{1F9BB}\\u{1F3FE}', '\\u{1F9BB}\\u{1F3FF}', '\\u{1F9CD}\\u{1F3FB}', '\\u{1F9CD}\\u{1F3FC}', '\\u{1F9CD}\\u{1F3FD}', '\\u{1F9CD}\\u{1F3FE}', '\\u{1F9CD}\\u{1F3FF}', '\\u{1F9CE}\\u{1F3FB}', '\\u{1F9CE}\\u{1F3FC}', '\\u{1F9CE}\\u{1F3FD}', '\\u{1F9CE}\\u{1F3FE}', '\\u{1F9CE}\\u{1F3FF}', '\\u{1F9CF}\\u{1F3FB}', '\\u{1F9CF}\\u{1F3FC}', '\\u{1F9CF}\\u{1F3FD}', '\\u{1F9CF}\\u{1F3FE}', '\\u{1F9CF}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D2}\\u{1F3FB}', '\\u{1F9D2}\\u{1F3FC}', '\\u{1F9D2}\\u{1F3FD}', '\\u{1F9D2}\\u{1F3FE}', '\\u{1F9D2}\\u{1F3FF}', '\\u{1F9D3}\\u{1F3FB}', '\\u{1F9D3}\\u{1F3FC}', '\\u{1F9D3}\\u{1F3FD}', '\\u{1F9D3}\\u{1F3FE}', '\\u{1F9D3}\\u{1F3FF}', '\\u{1F9D4}\\u{1F3FB}', '\\u{1F9D4}\\u{1F3FC}', '\\u{1F9D4}\\u{1F3FD}', '\\u{1F9D4}\\u{1F3FE}', '\\u{1F9D4}\\u{1F3FF}', '\\u{1F9D5}\\u{1F3FB}', '\\u{1F9D5}\\u{1F3FC}', '\\u{1F9D5}\\u{1F3FD}', '\\u{1F9D5}\\u{1F3FE}', '\\u{1F9D5}\\u{1F3FF}', '\\u{1F9D6}\\u{1F3FB}', '\\u{1F9D6}\\u{1F3FC}', '\\u{1F9D6}\\u{1F3FD}', '\\u{1F9D6}\\u{1F3FE}', '\\u{1F9D6}\\u{1F3FF}', '\\u{1F9D7}\\u{1F3FB}', '\\u{1F9D7}\\u{1F3FC}', '\\u{1F9D7}\\u{1F3FD}', '\\u{1F9D7}\\u{1F3FE}', '\\u{1F9D7}\\u{1F3FF}', '\\u{1F9D8}\\u{1F3FB}', '\\u{1F9D8}\\u{1F3FC}', '\\u{1F9D8}\\u{1F3FD}', '\\u{1F9D8}\\u{1F3FE}', '\\u{1F9D8}\\u{1F3FF}', '\\u{1F9D9}\\u{1F3FB}', '\\u{1F9D9}\\u{1F3FC}', '\\u{1F9D9}\\u{1F3FD}', '\\u{1F9D9}\\u{1F3FE}', '\\u{1F9D9}\\u{1F3FF}', '\\u{1F9DA}\\u{1F3FB}', '\\u{1F9DA}\\u{1F3FC}', '\\u{1F9DA}\\u{1F3FD}', '\\u{1F9DA}\\u{1F3FE}', '\\u{1F9DA}\\u{1F3FF}', '\\u{1F9DB}\\u{1F3FB}', '\\u{1F9DB}\\u{1F3FC}', '\\u{1F9DB}\\u{1F3FD}', '\\u{1F9DB}\\u{1F3FE}', '\\u{1F9DB}\\u{1F3FF}', '\\u{1F9DC}\\u{1F3FB}', '\\u{1F9DC}\\u{1F3FC}', '\\u{1F9DC}\\u{1F3FD}', '\\u{1F9DC}\\u{1F3FE}', '\\u{1F9DC}\\u{1F3FF}', '\\u{1F9DD}\\u{1F3FB}', '\\u{1F9DD}\\u{1F3FC}', '\\u{1F9DD}\\u{1F3FD}', '\\u{1F9DD}\\u{1F3FE}', '\\u{1F9DD}\\u{1F3FF}', '\\u{1FAC3}\\u{1F3FB}', '\\u{1FAC3}\\u{1F3FC}', '\\u{1FAC3}\\u{1F3FD}', '\\u{1FAC3}\\u{1F3FE}', '\\u{1FAC3}\\u{1F3FF}', '\\u{1FAC4}\\u{1F3FB}', '\\u{1FAC4}\\u{1F3FC}', '\\u{1FAC4}\\u{1F3FD}', '\\u{1FAC4}\\u{1F3FE}', '\\u{1FAC4}\\u{1F3FF}', '\\u{1FAC5}\\u{1F3FB}', '\\u{1FAC5}\\u{1F3FC}', '\\u{1FAC5}\\u{1F3FD}', '\\u{1FAC5}\\u{1F3FE}', '\\u{1FAC5}\\u{1F3FF}', '\\u{1FAF0}\\u{1F3FB}', '\\u{1FAF0}\\u{1F3FC}', '\\u{1FAF0}\\u{1F3FD}', '\\u{1FAF0}\\u{1F3FE}', '\\u{1FAF0}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FF}', '\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF3}\\u{1F3FB}', '\\u{1FAF3}\\u{1F3FC}', '\\u{1FAF3}\\u{1F3FD}', '\\u{1FAF3}\\u{1F3FE}', '\\u{1FAF3}\\u{1F3FF}', '\\u{1FAF4}\\u{1F3FB}', '\\u{1FAF4}\\u{1F3FC}', '\\u{1FAF4}\\u{1F3FD}', '\\u{1FAF4}\\u{1F3FE}', '\\u{1FAF4}\\u{1F3FF}', '\\u{1FAF5}\\u{1F3FB}', '\\u{1FAF5}\\u{1F3FC}', '\\u{1FAF5}\\u{1F3FD}', '\\u{1FAF5}\\u{1F3FE}', '\\u{1FAF5}\\u{1F3FF}', '\\u{1FAF6}\\u{1F3FB}', '\\u{1FAF6}\\u{1F3FC}', '\\u{1FAF6}\\u{1F3FD}', '\\u{1FAF6}\\u{1F3FE}', '\\u{1FAF6}\\u{1F3FF}', '\\u{1FAF7}\\u{1F3FB}', '\\u{1FAF7}\\u{1F3FC}', '\\u{1FAF7}\\u{1F3FD}', '\\u{1FAF7}\\u{1F3FE}', '\\u{1FAF7}\\u{1F3FF}', '\\u{1FAF8}\\u{1F3FB}', '\\u{1FAF8}\\u{1F3FC}', '\\u{1FAF8}\\u{1F3FD}', '\\u{1FAF8}\\u{1F3FE}', '\\u{1FAF8}\\u{1F3FF}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0065}\\u{E006E}\\u{E0067}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0073}\\u{E0063}\\u{E0074}\\u{E007F}', '\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0077}\\u{E006C}\\u{E0073}\\u{E007F}'];","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}', '\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}', '\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}', '\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}', '\\u{1F9D1}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F384}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FF}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FB}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FC}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FD}', '\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FE}', '\\u{1F468}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u200D\\u{1F33E}', '\\u{1F468}\\u200D\\u{1F373}', '\\u{1F468}\\u200D\\u{1F37C}', '\\u{1F468}\\u200D\\u{1F393}', '\\u{1F468}\\u200D\\u{1F3A4}', '\\u{1F468}\\u200D\\u{1F3A8}', '\\u{1F468}\\u200D\\u{1F3EB}', '\\u{1F468}\\u200D\\u{1F3ED}', '\\u{1F468}\\u200D\\u{1F4BB}', '\\u{1F468}\\u200D\\u{1F4BC}', '\\u{1F468}\\u200D\\u{1F527}', '\\u{1F468}\\u200D\\u{1F52C}', '\\u{1F468}\\u200D\\u{1F680}', '\\u{1F468}\\u200D\\u{1F692}', '\\u{1F468}\\u200D\\u{1F9AF}', '\\u{1F468}\\u200D\\u{1F9BC}', '\\u{1F468}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F468}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F469}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u200D\\u{1F33E}', '\\u{1F469}\\u200D\\u{1F373}', '\\u{1F469}\\u200D\\u{1F37C}', '\\u{1F469}\\u200D\\u{1F393}', '\\u{1F469}\\u200D\\u{1F3A4}', '\\u{1F469}\\u200D\\u{1F3A8}', '\\u{1F469}\\u200D\\u{1F3EB}', '\\u{1F469}\\u200D\\u{1F3ED}', '\\u{1F469}\\u200D\\u{1F4BB}', '\\u{1F469}\\u200D\\u{1F4BC}', '\\u{1F469}\\u200D\\u{1F527}', '\\u{1F469}\\u200D\\u{1F52C}', '\\u{1F469}\\u200D\\u{1F680}', '\\u{1F469}\\u200D\\u{1F692}', '\\u{1F469}\\u200D\\u{1F9AF}', '\\u{1F469}\\u200D\\u{1F9BC}', '\\u{1F469}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F469}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u200D\\u{1F373}', '\\u{1F9D1}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u200D\\u{1F393}', '\\u{1F9D1}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u200D\\u{1F527}', '\\u{1F9D1}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u200D\\u{1F680}', '\\u{1F9D1}\\u200D\\u{1F692}', '\\u{1F9D1}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2695\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2696\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u2708\\uFE0F', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F33E}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F373}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F37C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F393}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A4}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A8}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3EB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3ED}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BB}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F527}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F52C}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F680}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F692}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}', '\\u26F9\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u26F9\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u26F9\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2640\\uFE0F', '\\u26F9\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3C4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CB}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F3CC}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F46E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F46F}\\u200D\\u2640\\uFE0F', '\\u{1F46F}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F470}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F470}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F471}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F471}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F473}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F473}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F477}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F477}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F481}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F481}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F482}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F482}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F486}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F486}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F487}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F487}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F575}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2640\\uFE0F', '\\u{1F575}\\uFE0F\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F645}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F645}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F646}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F646}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F647}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F647}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64B}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F64E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6A3}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B5}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F926}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F926}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F935}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F935}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F937}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F937}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F938}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F938}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F939}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F939}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93C}\\u200D\\u2640\\uFE0F', '\\u{1F93C}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93D}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F93E}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9B9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9CF}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D4}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D6}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D7}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D8}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9D9}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DA}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DB}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DC}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FB}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FC}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FD}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FE}\\u200D\\u2642\\uFE0F', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2640\\uFE0F', '\\u{1F9DD}\\u{1F3FF}\\u200D\\u2642\\uFE0F', '\\u{1F9DE}\\u200D\\u2640\\uFE0F', '\\u{1F9DE}\\u200D\\u2642\\uFE0F', '\\u{1F9DF}\\u200D\\u2640\\uFE0F', '\\u{1F9DF}\\u200D\\u2642\\uFE0F', '\\u{1F468}\\u200D\\u{1F9B0}', '\\u{1F468}\\u200D\\u{1F9B1}', '\\u{1F468}\\u200D\\u{1F9B2}', '\\u{1F468}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F469}\\u200D\\u{1F9B0}', '\\u{1F469}\\u200D\\u{1F9B1}', '\\u{1F469}\\u200D\\u{1F9B2}', '\\u{1F469}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B3}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B0}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B1}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B2}', '\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B3}', '\\u2764\\uFE0F\\u200D\\u{1F525}', '\\u2764\\uFE0F\\u200D\\u{1FA79}', '\\u{1F3F3}\\uFE0F\\u200D\\u26A7\\uFE0F', '\\u{1F3F3}\\uFE0F\\u200D\\u{1F308}', '\\u{1F3F4}\\u200D\\u2620\\uFE0F', '\\u{1F408}\\u200D\\u2B1B', '\\u{1F415}\\u200D\\u{1F9BA}', '\\u{1F426}\\u200D\\u2B1B', '\\u{1F43B}\\u200D\\u2744\\uFE0F', '\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F', '\\u{1F62E}\\u200D\\u{1F4A8}', '\\u{1F635}\\u200D\\u{1F4AB}', '\\u{1F636}\\u200D\\u{1F32B}\\uFE0F', '\\u{1F9D1}\\u200D\\u{1F384}'];","const set = require('regenerate')();\n\nset.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59);\nexports.characters = set;","const set = require('regenerate')();\n\nset.addRange(0x1E4D0, 0x1E4F9);\nexports.characters = set;","const set = require('regenerate')();\n\nset.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59);\nexports.characters = set;","const set = require('regenerate')();\n\nset.addRange(0x1E4D0, 0x1E4F9);\nexports.characters = set;","/*! https://mths.be/regenerate v1.4.2 by @mathias | MIT license */\n;\n\n(function (root) {\n // Detect free variables `exports`.\n var freeExports = typeof exports == 'object' && exports; // Detect free variable `module`.\n\n var freeModule = typeof module == 'object' && module && module.exports == freeExports && module; // Detect free variable `global`, from Node.js/io.js or Browserified code,\n // and use it as `root`.\n\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n root = freeGlobal;\n }\n /*--------------------------------------------------------------------------*/\n\n\n var ERRORS = {\n 'rangeOrder': 'A range\\u2019s `stop` value must be greater than or equal ' + 'to the `start` value.',\n 'codePointRange': 'Invalid code point value. Code points range from ' + 'U+000000 to U+10FFFF.'\n }; // https://mathiasbynens.be/notes/javascript-encoding#surrogate-pairs\n\n var HIGH_SURROGATE_MIN = 0xD800;\n var HIGH_SURROGATE_MAX = 0xDBFF;\n var LOW_SURROGATE_MIN = 0xDC00;\n var LOW_SURROGATE_MAX = 0xDFFF; // In Regenerate output, `\\0` is never preceded by `\\` because we sort by\n // code point value, so let’s keep this regular expression simple.\n\n var regexNull = /\\\\x00([^0123456789]|$)/g;\n var object = {};\n var hasOwnProperty = object.hasOwnProperty;\n\n var extend = function (destination, source) {\n var key;\n\n for (key in source) {\n if (hasOwnProperty.call(source, key)) {\n destination[key] = source[key];\n }\n }\n\n return destination;\n };\n\n var forEach = function (array, callback) {\n var index = -1;\n var length = array.length;\n\n while (++index < length) {\n callback(array[index], index);\n }\n };\n\n var toString = object.toString;\n\n var isArray = function (value) {\n return toString.call(value) == '[object Array]';\n };\n\n var isNumber = function (value) {\n return typeof value == 'number' || toString.call(value) == '[object Number]';\n }; // This assumes that `number` is a positive integer that `toString()`s nicely\n // (which is the case for all code point values).\n\n\n var zeroes = '0000';\n\n var pad = function (number, totalCharacters) {\n var string = String(number);\n return string.length < totalCharacters ? (zeroes + string).slice(-totalCharacters) : string;\n };\n\n var hex = function (number) {\n return Number(number).toString(16).toUpperCase();\n };\n\n var slice = [].slice;\n /*--------------------------------------------------------------------------*/\n\n var dataFromCodePoints = function (codePoints) {\n var index = -1;\n var length = codePoints.length;\n var max = length - 1;\n var result = [];\n var isStart = true;\n var tmp;\n var previous = 0;\n\n while (++index < length) {\n tmp = codePoints[index];\n\n if (isStart) {\n result.push(tmp);\n previous = tmp;\n isStart = false;\n } else {\n if (tmp == previous + 1) {\n if (index != max) {\n previous = tmp;\n continue;\n } else {\n isStart = true;\n result.push(tmp + 1);\n }\n } else {\n // End the previous range and start a new one.\n result.push(previous + 1, tmp);\n previous = tmp;\n }\n }\n }\n\n if (!isStart) {\n result.push(tmp + 1);\n }\n\n return result;\n };\n\n var dataRemove = function (data, codePoint) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n if (codePoint >= start && codePoint < end) {\n // Modify this pair.\n if (codePoint == start) {\n if (end == start + 1) {\n // Just remove `start` and `end`.\n data.splice(index, 2);\n return data;\n } else {\n // Just replace `start` with a new value.\n data[index] = codePoint + 1;\n return data;\n }\n } else if (codePoint == end - 1) {\n // Just replace `end` with a new value.\n data[index + 1] = codePoint;\n return data;\n } else {\n // Replace `[start, end]` with `[startA, endA, startB, endB]`.\n data.splice(index, 2, start, codePoint, codePoint + 1, end);\n return data;\n }\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataRemoveRange = function (data, rangeStart, rangeEnd) {\n if (rangeEnd < rangeStart) {\n throw Error(ERRORS.rangeOrder);\n } // Iterate over the data per `(start, end)` pair.\n\n\n var index = 0;\n var start;\n var end;\n\n while (index < data.length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n // Exit as soon as no more matching pairs can be found.\n\n if (start > rangeEnd) {\n return data;\n } // Check if this range pair is equal to, or forms a subset of, the range\n // to be removed.\n // E.g. we have `[0, 11, 40, 51]` and want to remove 0-10 → `[40, 51]`.\n // E.g. we have `[40, 51]` and want to remove 0-100 → `[]`.\n\n\n if (rangeStart <= start && rangeEnd >= end) {\n // Remove this pair.\n data.splice(index, 2);\n continue;\n } // Check if both `rangeStart` and `rangeEnd` are within the bounds of\n // this pair.\n // E.g. we have `[0, 11]` and want to remove 4-6 → `[0, 4, 7, 11]`.\n\n\n if (rangeStart >= start && rangeEnd < end) {\n if (rangeStart == start) {\n // Replace `[start, end]` with `[startB, endB]`.\n data[index] = rangeEnd + 1;\n data[index + 1] = end + 1;\n return data;\n } // Replace `[start, end]` with `[startA, endA, startB, endB]`.\n\n\n data.splice(index, 2, start, rangeStart, rangeEnd + 1, end + 1);\n return data;\n } // Check if only `rangeStart` is within the bounds of this pair.\n // E.g. we have `[0, 11]` and want to remove 4-20 → `[0, 4]`.\n\n\n if (rangeStart >= start && rangeStart <= end) {\n // Replace `end` with `rangeStart`.\n data[index + 1] = rangeStart; // Note: we cannot `return` just yet, in case any following pairs still\n // contain matching code points.\n // E.g. we have `[0, 11, 14, 31]` and want to remove 4-20\n // → `[0, 4, 21, 31]`.\n } // Check if only `rangeEnd` is within the bounds of this pair.\n // E.g. we have `[14, 31]` and want to remove 4-20 → `[21, 31]`.\n else if (rangeEnd >= start && rangeEnd <= end) {\n // Just replace `start`.\n data[index] = rangeEnd + 1;\n return data;\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataAdd = function (data, codePoint) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var lastIndex = null;\n var length = data.length;\n\n if (codePoint < 0x0 || codePoint > 0x10FFFF) {\n throw RangeError(ERRORS.codePointRange);\n }\n\n while (index < length) {\n start = data[index];\n end = data[index + 1]; // Check if the code point is already in the set.\n\n if (codePoint >= start && codePoint < end) {\n return data;\n }\n\n if (codePoint == start - 1) {\n // Just replace `start` with a new value.\n data[index] = codePoint;\n return data;\n } // At this point, if `start` is `greater` than `codePoint`, insert a new\n // `[start, end]` pair before the current pair, or after the current pair\n // if there is a known `lastIndex`.\n\n\n if (start > codePoint) {\n data.splice(lastIndex != null ? lastIndex + 2 : 0, 0, codePoint, codePoint + 1);\n return data;\n }\n\n if (codePoint == end) {\n // Check if adding this code point causes two separate ranges to become\n // a single range, e.g. `dataAdd([0, 4, 5, 10], 4)` → `[0, 10]`.\n if (codePoint + 1 == data[index + 2]) {\n data.splice(index, 4, start, data[index + 3]);\n return data;\n } // Else, just replace `end` with a new value.\n\n\n data[index + 1] = codePoint + 1;\n return data;\n }\n\n lastIndex = index;\n index += 2;\n } // The loop has finished; add the new pair to the end of the data set.\n\n\n data.push(codePoint, codePoint + 1);\n return data;\n };\n\n var dataAddData = function (dataA, dataB) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var data = dataA.slice();\n var length = dataB.length;\n\n while (index < length) {\n start = dataB[index];\n end = dataB[index + 1] - 1;\n\n if (start == end) {\n data = dataAdd(data, start);\n } else {\n data = dataAddRange(data, start, end);\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataRemoveData = function (dataA, dataB) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var data = dataA.slice();\n var length = dataB.length;\n\n while (index < length) {\n start = dataB[index];\n end = dataB[index + 1] - 1;\n\n if (start == end) {\n data = dataRemove(data, start);\n } else {\n data = dataRemoveRange(data, start, end);\n }\n\n index += 2;\n }\n\n return data;\n };\n\n var dataAddRange = function (data, rangeStart, rangeEnd) {\n if (rangeEnd < rangeStart) {\n throw Error(ERRORS.rangeOrder);\n }\n\n if (rangeStart < 0x0 || rangeStart > 0x10FFFF || rangeEnd < 0x0 || rangeEnd > 0x10FFFF) {\n throw RangeError(ERRORS.codePointRange);\n } // Iterate over the data per `(start, end)` pair.\n\n\n var index = 0;\n var start;\n var end;\n var added = false;\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n if (added) {\n // The range has already been added to the set; at this point, we just\n // need to get rid of the following ranges in case they overlap.\n // Check if this range can be combined with the previous range.\n if (start == rangeEnd + 1) {\n data.splice(index - 1, 2);\n return data;\n } // Exit as soon as no more possibly overlapping pairs can be found.\n\n\n if (start > rangeEnd) {\n return data;\n } // E.g. `[0, 11, 12, 16]` and we’ve added 5-15, so we now have\n // `[0, 16, 12, 16]`. Remove the `12,16` part, as it lies within the\n // `0,16` range that was previously added.\n\n\n if (start >= rangeStart && start <= rangeEnd) {\n // `start` lies within the range that was previously added.\n if (end > rangeStart && end - 1 <= rangeEnd) {\n // `end` lies within the range that was previously added as well,\n // so remove this pair.\n data.splice(index, 2);\n index -= 2; // Note: we cannot `return` just yet, as there may still be other\n // overlapping pairs.\n } else {\n // `start` lies within the range that was previously added, but\n // `end` doesn’t. E.g. `[0, 11, 12, 31]` and we’ve added 5-15, so\n // now we have `[0, 16, 12, 31]`. This must be written as `[0, 31]`.\n // Remove the previously added `end` and the current `start`.\n data.splice(index - 1, 2);\n index -= 2;\n } // Note: we cannot return yet.\n\n }\n } else if (start == rangeEnd + 1 || start == rangeEnd) {\n data[index] = rangeStart;\n return data;\n } // Check if a new pair must be inserted *before* the current one.\n else if (start > rangeEnd) {\n data.splice(index, 0, rangeStart, rangeEnd + 1);\n return data;\n } else if (rangeStart >= start && rangeStart < end && rangeEnd + 1 <= end) {\n // The new range lies entirely within an existing range pair. No action\n // needed.\n return data;\n } else if ( // E.g. `[0, 11]` and you add 5-15 → `[0, 16]`.\n rangeStart >= start && rangeStart < end || // E.g. `[0, 3]` and you add 3-6 → `[0, 7]`.\n end == rangeStart) {\n // Replace `end` with the new value.\n data[index + 1] = rangeEnd + 1; // Make sure the next range pair doesn’t overlap, e.g. `[0, 11, 12, 14]`\n // and you add 5-15 → `[0, 16]`, i.e. remove the `12,14` part.\n\n added = true; // Note: we cannot `return` just yet.\n } else if (rangeStart <= start && rangeEnd + 1 >= end) {\n // The new range is a superset of the old range.\n data[index] = rangeStart;\n data[index + 1] = rangeEnd + 1;\n added = true;\n }\n\n index += 2;\n } // The loop has finished without doing anything; add the new pair to the end\n // of the data set.\n\n\n if (!added) {\n data.push(rangeStart, rangeEnd + 1);\n }\n\n return data;\n };\n\n var dataContains = function (data, codePoint) {\n var index = 0;\n var length = data.length; // Exit early if `codePoint` is not within `data`’s overall range.\n\n var start = data[index];\n var end = data[length - 1];\n\n if (length >= 2) {\n if (codePoint < start || codePoint > end) {\n return false;\n }\n } // Iterate over the data per `(start, end)` pair.\n\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n if (codePoint >= start && codePoint < end) {\n return true;\n }\n\n index += 2;\n }\n\n return false;\n };\n\n var dataIntersection = function (data, codePoints) {\n var index = 0;\n var length = codePoints.length;\n var codePoint;\n var result = [];\n\n while (index < length) {\n codePoint = codePoints[index];\n\n if (dataContains(data, codePoint)) {\n result.push(codePoint);\n }\n\n ++index;\n }\n\n return dataFromCodePoints(result);\n };\n\n var dataIsEmpty = function (data) {\n return !data.length;\n };\n\n var dataIsSingleton = function (data) {\n // Check if the set only represents a single code point.\n return data.length == 2 && data[0] + 1 == data[1];\n };\n\n var dataToArray = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var index = 0;\n var start;\n var end;\n var result = [];\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1];\n\n while (start < end) {\n result.push(start);\n ++start;\n }\n\n index += 2;\n }\n\n return result;\n };\n /*--------------------------------------------------------------------------*/\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\n\n var floor = Math.floor;\n\n var highSurrogate = function (codePoint) {\n return parseInt(floor((codePoint - 0x10000) / 0x400) + HIGH_SURROGATE_MIN, 10);\n };\n\n var lowSurrogate = function (codePoint) {\n return parseInt((codePoint - 0x10000) % 0x400 + LOW_SURROGATE_MIN, 10);\n };\n\n var stringFromCharCode = String.fromCharCode;\n\n var codePointToString = function (codePoint) {\n var string; // https://mathiasbynens.be/notes/javascript-escapes#single\n // Note: the `\\b` escape sequence for U+0008 BACKSPACE in strings has a\n // different meaning in regular expressions (word boundary), so it cannot\n // be used here.\n\n if (codePoint == 0x09) {\n string = '\\\\t';\n } // Note: IE < 9 treats `'\\v'` as `'v'`, so avoid using it.\n // else if (codePoint == 0x0B) {\n // \tstring = '\\\\v';\n // }\n else if (codePoint == 0x0A) {\n string = '\\\\n';\n } else if (codePoint == 0x0C) {\n string = '\\\\f';\n } else if (codePoint == 0x0D) {\n string = '\\\\r';\n } else if (codePoint == 0x2D) {\n // https://mathiasbynens.be/notes/javascript-escapes#hexadecimal\n // Note: `-` (U+002D HYPHEN-MINUS) is escaped in this way rather\n // than by backslash-escaping, in case the output is used outside\n // of a character class in a `u` RegExp. /\\-/u throws, but\n // /\\x2D/u is fine.\n string = '\\\\x2D';\n } else if (codePoint == 0x5C) {\n string = '\\\\\\\\';\n } else if (codePoint == 0x24 || codePoint >= 0x28 && codePoint <= 0x2B || codePoint == 0x2E || codePoint == 0x2F || codePoint == 0x3F || codePoint >= 0x5B && codePoint <= 0x5E || codePoint >= 0x7B && codePoint <= 0x7D) {\n // The code point maps to an unsafe printable ASCII character;\n // backslash-escape it. Here’s the list of those symbols:\n //\n // $()*+./?[\\]^{|}\n //\n // This matches SyntaxCharacters as well as `/` (U+002F SOLIDUS).\n // https://tc39.github.io/ecma262/#prod-SyntaxCharacter\n string = '\\\\' + stringFromCharCode(codePoint);\n } else if (codePoint >= 0x20 && codePoint <= 0x7E) {\n // The code point maps to one of these printable ASCII symbols\n // (including the space character):\n //\n // !\"#%&',/0123456789:;<=>@ABCDEFGHIJKLMNO\n // PQRSTUVWXYZ_`abcdefghijklmnopqrstuvwxyz~\n //\n // These can safely be used directly.\n string = stringFromCharCode(codePoint);\n } else if (codePoint <= 0xFF) {\n string = '\\\\x' + pad(hex(codePoint), 2);\n } else {\n // `codePoint <= 0xFFFF` holds true.\n // https://mathiasbynens.be/notes/javascript-escapes#unicode\n string = '\\\\u' + pad(hex(codePoint), 4);\n } // There’s no need to account for astral symbols / surrogate pairs here,\n // since `codePointToString` is private and only used for BMP code points.\n // But if that’s what you need, just add an `else` block with this code:\n //\n // string = '\\\\u' + pad(hex(highSurrogate(codePoint)), 4)\n // \t+ '\\\\u' + pad(hex(lowSurrogate(codePoint)), 4);\n\n\n return string;\n };\n\n var codePointToStringUnicode = function (codePoint) {\n if (codePoint <= 0xFFFF) {\n return codePointToString(codePoint);\n }\n\n return '\\\\u{' + codePoint.toString(16).toUpperCase() + '}';\n };\n\n var symbolToCodePoint = function (symbol) {\n var length = symbol.length;\n var first = symbol.charCodeAt(0);\n var second;\n\n if (first >= HIGH_SURROGATE_MIN && first <= HIGH_SURROGATE_MAX && length > 1 // There is a next code unit.\n ) {\n // `first` is a high surrogate, and there is a next character. Assume\n // it’s a low surrogate (else it’s invalid usage of Regenerate anyway).\n second = symbol.charCodeAt(1); // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\n return (first - HIGH_SURROGATE_MIN) * 0x400 + second - LOW_SURROGATE_MIN + 0x10000;\n }\n\n return first;\n };\n\n var createBMPCharacterClasses = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var result = '';\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n if (dataIsSingleton(data)) {\n return codePointToString(data[0]);\n }\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n if (start == end) {\n result += codePointToString(start);\n } else if (start + 1 == end) {\n result += codePointToString(start) + codePointToString(end);\n } else {\n result += codePointToString(start) + '-' + codePointToString(end);\n }\n\n index += 2;\n }\n\n return '[' + result + ']';\n };\n\n var createUnicodeCharacterClasses = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var result = '';\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n if (dataIsSingleton(data)) {\n return codePointToStringUnicode(data[0]);\n }\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n if (start == end) {\n result += codePointToStringUnicode(start);\n } else if (start + 1 == end) {\n result += codePointToStringUnicode(start) + codePointToStringUnicode(end);\n } else {\n result += codePointToStringUnicode(start) + '-' + codePointToStringUnicode(end);\n }\n\n index += 2;\n }\n\n return '[' + result + ']';\n };\n\n var splitAtBMP = function (data) {\n // Iterate over the data per `(start, end)` pair.\n var loneHighSurrogates = [];\n var loneLowSurrogates = [];\n var bmp = [];\n var astral = [];\n var index = 0;\n var start;\n var end;\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n if (start < HIGH_SURROGATE_MIN) {\n // The range starts and ends before the high surrogate range.\n // E.g. (0, 0x10).\n if (end < HIGH_SURROGATE_MIN) {\n bmp.push(start, end + 1);\n } // The range starts before the high surrogate range and ends within it.\n // E.g. (0, 0xD855).\n\n\n if (end >= HIGH_SURROGATE_MIN && end <= HIGH_SURROGATE_MAX) {\n bmp.push(start, HIGH_SURROGATE_MIN);\n loneHighSurrogates.push(HIGH_SURROGATE_MIN, end + 1);\n } // The range starts before the high surrogate range and ends in the low\n // surrogate range. E.g. (0, 0xDCFF).\n\n\n if (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n bmp.push(start, HIGH_SURROGATE_MIN);\n loneHighSurrogates.push(HIGH_SURROGATE_MIN, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, end + 1);\n } // The range starts before the high surrogate range and ends after the\n // low surrogate range. E.g. (0, 0x10FFFF).\n\n\n if (end > LOW_SURROGATE_MAX) {\n bmp.push(start, HIGH_SURROGATE_MIN);\n loneHighSurrogates.push(HIGH_SURROGATE_MIN, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1);\n\n if (end <= 0xFFFF) {\n bmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n } else {\n bmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n }\n } else if (start >= HIGH_SURROGATE_MIN && start <= HIGH_SURROGATE_MAX) {\n // The range starts and ends in the high surrogate range.\n // E.g. (0xD855, 0xD866).\n if (end >= HIGH_SURROGATE_MIN && end <= HIGH_SURROGATE_MAX) {\n loneHighSurrogates.push(start, end + 1);\n } // The range starts in the high surrogate range and ends in the low\n // surrogate range. E.g. (0xD855, 0xDCFF).\n\n\n if (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n loneHighSurrogates.push(start, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, end + 1);\n } // The range starts in the high surrogate range and ends after the low\n // surrogate range. E.g. (0xD855, 0x10FFFF).\n\n\n if (end > LOW_SURROGATE_MAX) {\n loneHighSurrogates.push(start, HIGH_SURROGATE_MAX + 1);\n loneLowSurrogates.push(LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1);\n\n if (end <= 0xFFFF) {\n bmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n } else {\n bmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n }\n } else if (start >= LOW_SURROGATE_MIN && start <= LOW_SURROGATE_MAX) {\n // The range starts and ends in the low surrogate range.\n // E.g. (0xDCFF, 0xDDFF).\n if (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n loneLowSurrogates.push(start, end + 1);\n } // The range starts in the low surrogate range and ends after the low\n // surrogate range. E.g. (0xDCFF, 0x10FFFF).\n\n\n if (end > LOW_SURROGATE_MAX) {\n loneLowSurrogates.push(start, LOW_SURROGATE_MAX + 1);\n\n if (end <= 0xFFFF) {\n bmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n } else {\n bmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n }\n } else if (start > LOW_SURROGATE_MAX && start <= 0xFFFF) {\n // The range starts and ends after the low surrogate range.\n // E.g. (0xFFAA, 0x10FFFF).\n if (end <= 0xFFFF) {\n bmp.push(start, end + 1);\n } else {\n bmp.push(start, 0xFFFF + 1);\n astral.push(0xFFFF + 1, end + 1);\n }\n } else {\n // The range starts and ends in the astral range.\n astral.push(start, end + 1);\n }\n\n index += 2;\n }\n\n return {\n 'loneHighSurrogates': loneHighSurrogates,\n 'loneLowSurrogates': loneLowSurrogates,\n 'bmp': bmp,\n 'astral': astral\n };\n };\n\n var optimizeSurrogateMappings = function (surrogateMappings) {\n var result = [];\n var tmpLow = [];\n var addLow = false;\n var mapping;\n var nextMapping;\n var highSurrogates;\n var lowSurrogates;\n var nextHighSurrogates;\n var nextLowSurrogates;\n var index = -1;\n var length = surrogateMappings.length;\n\n while (++index < length) {\n mapping = surrogateMappings[index];\n nextMapping = surrogateMappings[index + 1];\n\n if (!nextMapping) {\n result.push(mapping);\n continue;\n }\n\n highSurrogates = mapping[0];\n lowSurrogates = mapping[1];\n nextHighSurrogates = nextMapping[0];\n nextLowSurrogates = nextMapping[1]; // Check for identical high surrogate ranges.\n\n tmpLow = lowSurrogates;\n\n while (nextHighSurrogates && highSurrogates[0] == nextHighSurrogates[0] && highSurrogates[1] == nextHighSurrogates[1]) {\n // Merge with the next item.\n if (dataIsSingleton(nextLowSurrogates)) {\n tmpLow = dataAdd(tmpLow, nextLowSurrogates[0]);\n } else {\n tmpLow = dataAddRange(tmpLow, nextLowSurrogates[0], nextLowSurrogates[1] - 1);\n }\n\n ++index;\n mapping = surrogateMappings[index];\n highSurrogates = mapping[0];\n lowSurrogates = mapping[1];\n nextMapping = surrogateMappings[index + 1];\n nextHighSurrogates = nextMapping && nextMapping[0];\n nextLowSurrogates = nextMapping && nextMapping[1];\n addLow = true;\n }\n\n result.push([highSurrogates, addLow ? tmpLow : lowSurrogates]);\n addLow = false;\n }\n\n return optimizeByLowSurrogates(result);\n };\n\n var optimizeByLowSurrogates = function (surrogateMappings) {\n if (surrogateMappings.length == 1) {\n return surrogateMappings;\n }\n\n var index = -1;\n var innerIndex = -1;\n\n while (++index < surrogateMappings.length) {\n var mapping = surrogateMappings[index];\n var lowSurrogates = mapping[1];\n var lowSurrogateStart = lowSurrogates[0];\n var lowSurrogateEnd = lowSurrogates[1];\n innerIndex = index; // Note: the loop starts at the next index.\n\n while (++innerIndex < surrogateMappings.length) {\n var otherMapping = surrogateMappings[innerIndex];\n var otherLowSurrogates = otherMapping[1];\n var otherLowSurrogateStart = otherLowSurrogates[0];\n var otherLowSurrogateEnd = otherLowSurrogates[1];\n\n if (lowSurrogateStart == otherLowSurrogateStart && lowSurrogateEnd == otherLowSurrogateEnd && otherLowSurrogates.length === 2) {\n // Add the code points in the other item to this one.\n if (dataIsSingleton(otherMapping[0])) {\n mapping[0] = dataAdd(mapping[0], otherMapping[0][0]);\n } else {\n mapping[0] = dataAddRange(mapping[0], otherMapping[0][0], otherMapping[0][1] - 1);\n } // Remove the other, now redundant, item.\n\n\n surrogateMappings.splice(innerIndex, 1);\n --innerIndex;\n }\n }\n }\n\n return surrogateMappings;\n };\n\n var surrogateSet = function (data) {\n // Exit early if `data` is an empty set.\n if (!data.length) {\n return [];\n } // Iterate over the data per `(start, end)` pair.\n\n\n var index = 0;\n var start;\n var end;\n var startHigh;\n var startLow;\n var endHigh;\n var endLow;\n var surrogateMappings = [];\n var length = data.length;\n\n while (index < length) {\n start = data[index];\n end = data[index + 1] - 1;\n startHigh = highSurrogate(start);\n startLow = lowSurrogate(start);\n endHigh = highSurrogate(end);\n endLow = lowSurrogate(end);\n var startsWithLowestLowSurrogate = startLow == LOW_SURROGATE_MIN;\n var endsWithHighestLowSurrogate = endLow == LOW_SURROGATE_MAX;\n var complete = false; // Append the previous high-surrogate-to-low-surrogate mappings.\n // Step 1: `(startHigh, startLow)` to `(startHigh, LOW_SURROGATE_MAX)`.\n\n if (startHigh == endHigh || startsWithLowestLowSurrogate && endsWithHighestLowSurrogate) {\n surrogateMappings.push([[startHigh, endHigh + 1], [startLow, endLow + 1]]);\n complete = true;\n } else {\n surrogateMappings.push([[startHigh, startHigh + 1], [startLow, LOW_SURROGATE_MAX + 1]]);\n } // Step 2: `(startHigh + 1, LOW_SURROGATE_MIN)` to\n // `(endHigh - 1, LOW_SURROGATE_MAX)`.\n\n\n if (!complete && startHigh + 1 < endHigh) {\n if (endsWithHighestLowSurrogate) {\n // Combine step 2 and step 3.\n surrogateMappings.push([[startHigh + 1, endHigh + 1], [LOW_SURROGATE_MIN, endLow + 1]]);\n complete = true;\n } else {\n surrogateMappings.push([[startHigh + 1, endHigh], [LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1]]);\n }\n } // Step 3. `(endHigh, LOW_SURROGATE_MIN)` to `(endHigh, endLow)`.\n\n\n if (!complete) {\n surrogateMappings.push([[endHigh, endHigh + 1], [LOW_SURROGATE_MIN, endLow + 1]]);\n }\n\n index += 2;\n } // The format of `surrogateMappings` is as follows:\n //\n // [ surrogateMapping1, surrogateMapping2 ]\n //\n // i.e.:\n //\n // [\n // [ highSurrogates1, lowSurrogates1 ],\n // [ highSurrogates2, lowSurrogates2 ]\n // ]\n\n\n return optimizeSurrogateMappings(surrogateMappings);\n };\n\n var createSurrogateCharacterClasses = function (surrogateMappings) {\n var result = [];\n forEach(surrogateMappings, function (surrogateMapping) {\n var highSurrogates = surrogateMapping[0];\n var lowSurrogates = surrogateMapping[1];\n result.push(createBMPCharacterClasses(highSurrogates) + createBMPCharacterClasses(lowSurrogates));\n });\n return result.join('|');\n };\n\n var createCharacterClassesFromData = function (data, bmpOnly, hasUnicodeFlag) {\n if (hasUnicodeFlag) {\n return createUnicodeCharacterClasses(data);\n }\n\n var result = [];\n var parts = splitAtBMP(data);\n var loneHighSurrogates = parts.loneHighSurrogates;\n var loneLowSurrogates = parts.loneLowSurrogates;\n var bmp = parts.bmp;\n var astral = parts.astral;\n var hasLoneHighSurrogates = !dataIsEmpty(loneHighSurrogates);\n var hasLoneLowSurrogates = !dataIsEmpty(loneLowSurrogates);\n var surrogateMappings = surrogateSet(astral);\n\n if (bmpOnly) {\n bmp = dataAddData(bmp, loneHighSurrogates);\n hasLoneHighSurrogates = false;\n bmp = dataAddData(bmp, loneLowSurrogates);\n hasLoneLowSurrogates = false;\n }\n\n if (!dataIsEmpty(bmp)) {\n // The data set contains BMP code points that are not high surrogates\n // needed for astral code points in the set.\n result.push(createBMPCharacterClasses(bmp));\n }\n\n if (surrogateMappings.length) {\n // The data set contains astral code points; append character classes\n // based on their surrogate pairs.\n result.push(createSurrogateCharacterClasses(surrogateMappings));\n } // https://gist.github.com/mathiasbynens/bbe7f870208abcfec860\n\n\n if (hasLoneHighSurrogates) {\n result.push(createBMPCharacterClasses(loneHighSurrogates) + // Make sure the high surrogates aren’t part of a surrogate pair.\n '(?![\\\\uDC00-\\\\uDFFF])');\n }\n\n if (hasLoneLowSurrogates) {\n result.push( // It is not possible to accurately assert the low surrogates aren’t\n // part of a surrogate pair, since JavaScript regular expressions do\n // not support lookbehind.\n '(?:[^\\\\uD800-\\\\uDBFF]|^)' + createBMPCharacterClasses(loneLowSurrogates));\n }\n\n return result.join('|');\n };\n /*--------------------------------------------------------------------------*/\n // `regenerate` can be used as a constructor (and new methods can be added to\n // its prototype) but also as a regular function, the latter of which is the\n // documented and most common usage. For that reason, it’s not capitalized.\n\n\n var regenerate = function (value) {\n if (arguments.length > 1) {\n value = slice.call(arguments);\n }\n\n if (this instanceof regenerate) {\n this.data = [];\n return value ? this.add(value) : this;\n }\n\n return new regenerate().add(value);\n };\n\n regenerate.version = '1.4.2';\n var proto = regenerate.prototype;\n extend(proto, {\n 'add': function (value) {\n var $this = this;\n\n if (value == null) {\n return $this;\n }\n\n if (value instanceof regenerate) {\n // Allow passing other Regenerate instances.\n $this.data = dataAddData($this.data, value.data);\n return $this;\n }\n\n if (arguments.length > 1) {\n value = slice.call(arguments);\n }\n\n if (isArray(value)) {\n forEach(value, function (item) {\n $this.add(item);\n });\n return $this;\n }\n\n $this.data = dataAdd($this.data, isNumber(value) ? value : symbolToCodePoint(value));\n return $this;\n },\n 'remove': function (value) {\n var $this = this;\n\n if (value == null) {\n return $this;\n }\n\n if (value instanceof regenerate) {\n // Allow passing other Regenerate instances.\n $this.data = dataRemoveData($this.data, value.data);\n return $this;\n }\n\n if (arguments.length > 1) {\n value = slice.call(arguments);\n }\n\n if (isArray(value)) {\n forEach(value, function (item) {\n $this.remove(item);\n });\n return $this;\n }\n\n $this.data = dataRemove($this.data, isNumber(value) ? value : symbolToCodePoint(value));\n return $this;\n },\n 'addRange': function (start, end) {\n var $this = this;\n $this.data = dataAddRange($this.data, isNumber(start) ? start : symbolToCodePoint(start), isNumber(end) ? end : symbolToCodePoint(end));\n return $this;\n },\n 'removeRange': function (start, end) {\n var $this = this;\n var startCodePoint = isNumber(start) ? start : symbolToCodePoint(start);\n var endCodePoint = isNumber(end) ? end : symbolToCodePoint(end);\n $this.data = dataRemoveRange($this.data, startCodePoint, endCodePoint);\n return $this;\n },\n 'intersection': function (argument) {\n var $this = this; // Allow passing other Regenerate instances.\n // TODO: Optimize this by writing and using `dataIntersectionData()`.\n\n var array = argument instanceof regenerate ? dataToArray(argument.data) : argument;\n $this.data = dataIntersection($this.data, array);\n return $this;\n },\n 'contains': function (codePoint) {\n return dataContains(this.data, isNumber(codePoint) ? codePoint : symbolToCodePoint(codePoint));\n },\n 'clone': function () {\n var set = new regenerate();\n set.data = this.data.slice(0);\n return set;\n },\n 'toString': function (options) {\n var result = createCharacterClassesFromData(this.data, options ? options.bmpOnly : false, options ? options.hasUnicodeFlag : false);\n\n if (!result) {\n // For an empty set, return something that can be inserted `/here/` to\n // form a valid regular expression. Avoid `(?:)` since that matches the\n // empty string.\n return '[]';\n } // Use `\\0` instead of `\\x00` where possible.\n\n\n return result.replace(regexNull, '\\\\0$1');\n },\n 'toRegExp': function (flags) {\n var pattern = this.toString(flags && flags.indexOf('u') != -1 ? {\n 'hasUnicodeFlag': true\n } : null);\n return RegExp(pattern, flags || '');\n },\n 'valueOf': function () {\n // Note: `valueOf` is aliased as `toArray`.\n return dataToArray(this.data);\n }\n });\n proto.toArray = proto.valueOf; // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n define(function () {\n return regenerate;\n });\n } else if (freeExports && !freeExports.nodeType) {\n if (freeModule) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = regenerate;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n freeExports.regenerate = regenerate;\n }\n } else {\n // in Rhino or a web browser\n root.regenerate = regenerate;\n }\n})(this);","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default isPropValid;","import { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as s, useMemo as i, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\n\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n\n return e;\n }).apply(this, arguments);\n}\n\nvar g = function (e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) n.push(t[r], e[r + 1]);\n\n return n;\n},\n S = function (t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n},\n w = Object.freeze([]),\n E = Object.freeze({});\n\nfunction b(e) {\n return \"function\" == typeof e;\n}\n\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\n\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\n\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.6\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n} : {};\n\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\n\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\n\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) t += this.groupSizes[n];\n\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) (o <<= 1) < 0 && j(16, \"\" + e);\n\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n\n for (var s = r; s < o; s++) this.groupSizes[s] = 0;\n }\n\n for (var i = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) this.tag.insertRule(i, t[a]) && (this.groupSizes[e]++, i++);\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n\n for (var o = n; o < r; o++) this.tag.deleteRule(n);\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, s = r; s < o; s++) t += this.tag.getRule(s) + \"/*!sc*/\\n\";\n\n return t;\n }, e;\n}(),\n x = new Map(),\n k = new Map(),\n V = 1,\n B = function (e) {\n if (x.has(e)) return x.get(e);\n\n for (; k.has(V);) V++;\n\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), x.set(e, t), k.set(t, e), t;\n},\n z = function (e) {\n return k.get(e);\n},\n M = function (e, t) {\n t >= V && (V = t + 1), x.set(e, t), k.set(t, e);\n},\n G = \"style[\" + A + '][data-styled-version=\"5.3.6\"]',\n L = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function (e, t, n) {\n for (var r, o = n.split(\",\"), s = 0, i = o.length; s < i; s++) (r = o[s]) && e.registerName(t, r);\n},\n Y = function (e, t) {\n for (var n = (t.textContent || \"\").split(\"/*!sc*/\\n\"), r = [], o = 0, s = n.length; o < s; o++) {\n var i = n[o].trim();\n\n if (i) {\n var a = i.match(L);\n\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (M(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(i);\n }\n }\n},\n q = function () {\n return \"undefined\" != typeof __webpack_nonce__ ? __webpack_nonce__ : null;\n},\n H = function (e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n s = void 0 !== o ? o.nextSibling : null;\n\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.6\");\n var i = q();\n return i && r.setAttribute(\"nonce\", i), n.insertBefore(r, s), r;\n},\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n\n j(17);\n }(t), this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n}(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n}(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n}(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n},\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), this.server = !!e.isServer, !this.server && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(G), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n\n e.registerId = function (e) {\n return B(e);\n };\n\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var s = z(o);\n\n if (void 0 !== s) {\n var i = e.names.get(s),\n a = t.getGroup(o);\n\n if (i && a && i.size) {\n var c = A + \".g\" + o + '[id=\"' + s + '\"]',\n u = \"\";\n void 0 !== i && i.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n\n return r;\n }(this);\n }, e;\n}(),\n K = /(a)(d)/gi,\n Q = function (e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n};\n\nfunction ee(e) {\n var t,\n n = \"\";\n\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) n = Q(t % 52) + n;\n\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\n\nvar te = function (e, t) {\n for (var n = t.length; n;) e = 33 * e ^ t.charCodeAt(--n);\n\n return e;\n},\n ne = function (e) {\n return te(5381, e);\n};\n\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n\n return !0;\n}\n\nvar oe = ne(\"5.3.6\"),\n se = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var s = Ne(this.rules, e, t, n).join(\"\"),\n i = ee(te(this.baseHash, s) >>> 0);\n\n if (!t.hasNameForId(r, i)) {\n var a = n(s, \".\" + i, void 0, r);\n t.insertRules(r, i, a);\n }\n\n o.push(i), this.staticRulesId = i;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n\n if (l) {\n var m = ee(u >>> 0);\n\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n}(),\n ie = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\n\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n s = void 0 === e ? E : e,\n i = s.options,\n a = void 0 === i ? E : i,\n c = s.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n\n return function (n, r, o, s, i, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function (e, r, s) {\n return 0 === r && -1 !== ae.indexOf(s[n.length]) || s.match(o) ? e : \".\" + t;\n };\n\n function m(e, s, i, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(ie, \"\"),\n u = s && i ? i + \" \" + s + \" { \" + c + \" }\" : c;\n return t = a, n = s, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(i || !s ? \"\" : s, u);\n }\n\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\n\nvar ue = r.createContext(),\n le = ue.Consumer,\n de = r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\n\nfunction fe() {\n return s(ue) || he;\n}\n\nfunction me() {\n return s(de) || pe;\n}\n\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n s = t[1],\n c = fe(),\n u = i(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = i(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || s(e.stylisPlugins);\n }, [e.stylisPlugins]), r.createElement(ue.Provider, {\n value: u\n }, r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\n\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n}(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function (e) {\n return \"-\" + e.toLowerCase();\n};\n\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\n\nvar _e = function (e) {\n return null == e || !1 === e || \"\" === e;\n};\n\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var s, i = [], a = 0, c = e.length; a < c; a += 1) \"\" !== (s = Ne(e[a], n, r, o)) && (Array.isArray(s) ? i.push.apply(i, s) : i.push(s));\n\n return i;\n }\n\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n s = [];\n\n for (var i in t) t.hasOwnProperty(i) && !_e(t[i]) && (Array.isArray(t[i]) && t[i].isCss || b(t[i]) ? s.push(be(i) + \":\", t[i], \";\") : S(t[i]) ? s.push.apply(s, e(t[i], i)) : s.push(be(i) + \": \" + (r = i, null == (o = t[i]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n\n return n ? [n + \" {\"].concat(s, [\"}\"]) : s;\n }(e) : e.toString();\n}\n\nvar Ae = function (e) {\n return Array.isArray(e) && (e.isCss = !0), e;\n};\n\nfunction Ce(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n return b(e) || S(e) ? Ae(Ne(g(w, [e].concat(n)))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ae(Ne(g(e, n)));\n}\n\nvar Ie = /invalid hook call/i,\n Pe = new Set(),\n Oe = function (e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",\n r = console.error;\n\n try {\n var o = !0;\n console.error = function (e) {\n if (Ie.test(e)) o = !1, Pe.delete(n);else {\n for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) s[i - 1] = arguments[i];\n\n r.apply(void 0, [e].concat(s));\n }\n }, c(), o && !Pe.has(n) && (console.warn(n), Pe.add(n));\n } catch (e) {\n Ie.test(e.message) && Pe.delete(n);\n } finally {\n console.error = r;\n }\n }\n},\n Re = function (e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n},\n De = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n je = /(^-|-$)/g;\n\nfunction Te(e) {\n return e.replace(De, \"-\").replace(je, \"\");\n}\n\nvar xe = function (e) {\n return ee(ne(e) >>> 0);\n};\n\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\n\nvar Ve = function (e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n},\n Be = function (e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n};\n\nfunction ze(e, t, n) {\n var r = e[n];\n Ve(t) && Ve(r) ? Me(r, t) : e[n] = t;\n}\n\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n for (var o = 0, s = n; o < s.length; o++) {\n var i = s[o];\n if (Ve(i)) for (var a in i) Be(a) && ze(e, i[a], a);\n }\n\n return e;\n}\n\nvar Ge = r.createContext(),\n Le = Ge.Consumer;\n\nfunction Fe(e) {\n var t = s(Ge),\n n = i(function () {\n return function (e, t) {\n if (!e) return j(14);\n\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? r.createElement(Ge.Provider, {\n value: n\n }, e.children) : null;\n}\n\nvar Ye = {};\n\nfunction qe(e, t, n) {\n var o = N(e),\n i = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : Te(e);\n Ye[n] = (Ye[n] || 0) + 1;\n var r = n + \"-\" + xe(\"5.3.6\" + n + Ye[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? Te(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n\n var C,\n I = new se(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function (e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n i = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n s,\n i = e;\n\n for (t in b(i) && (i = i(r)), i) r[t] = o[t] = \"className\" === t ? (n = o[t], s = i[t], n && s ? n + \" \" + s : n || s) : i[t];\n }), [r, o];\n }(Re(t, s(Ge), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n s = me(),\n i = t ? e.generateAndInjectStyles(E, o, s) : e.generateAndInjectStyles(n, o, s);\n return \"production\" !== process.env.NODE_ENV && l(i), \"production\" !== process.env.NODE_ENV && !t && r && r(i), i;\n }(i, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n\n for (var I in A) \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, u(_, C);\n }(C, e, t, P);\n };\n\n return O.displayName = f, (C = r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n s = Object.keys(e);\n\n for (r = 0; r < s.length; r++) n = s[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n\n return o;\n }(t, [\"componentId\"]),\n s = r && r + \"-\" + (ke(e) ? e : Te(_(e)));\n\n return qe(e, v({}, o, {\n attrs: S,\n componentId: s\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function () {\n return this._foldedDefaultProps;\n },\n set: function (t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Oe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var s = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + s + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, i && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\n\nvar He = function (e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n\n var s = function () {\n return t(r, o, Ce.apply(void 0, arguments));\n };\n\n return s.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, s.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, s;\n }(qe, e);\n};\n\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n He[e] = He(e);\n});\n\nvar $e = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n s = this.componentId + e;\n n.insertRules(s, s, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\n\nfunction We(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) n[o - 1] = arguments[o];\n\n var i = Ce.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + xe(JSON.stringify(i)),\n u = new $e(i, a);\n\n function l(e) {\n var t = fe(),\n n = me(),\n o = s(Ge),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && i.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), t.server && h(l, e, t, o, n), d(function () {\n if (!t.server) return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var s = v({}, t, {\n theme: Re(t, r, l.defaultProps)\n });\n u.renderStyles(e, s, n, o);\n }\n }\n\n return \"production\" !== process.env.NODE_ENV && Oe(a), r.memo(l);\n}\n\nfunction Ue(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n\n var o = Ce.apply(void 0, [e].concat(n)).join(\"\"),\n s = xe(o);\n return new ve(s, o);\n}\n\nvar Je = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString();\n if (!t) return \"\";\n var n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.6\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n}(),\n Xe = function (e) {\n var t = r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n},\n Ze = function () {\n return s(Ge);\n},\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n};\n\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","module.exports = new Set([// Non-binary properties:\n'General_Category', 'Script', 'Script_Extensions', // Binary properties:\n'Alphabetic', 'Any', 'ASCII', 'ASCII_Hex_Digit', 'Assigned', 'Bidi_Control', 'Bidi_Mirrored', 'Case_Ignorable', 'Cased', 'Changes_When_Casefolded', 'Changes_When_Casemapped', 'Changes_When_Lowercased', 'Changes_When_NFKC_Casefolded', 'Changes_When_Titlecased', 'Changes_When_Uppercased', 'Dash', 'Default_Ignorable_Code_Point', 'Deprecated', 'Diacritic', 'Emoji', 'Emoji_Component', 'Emoji_Modifier', 'Emoji_Modifier_Base', 'Emoji_Presentation', 'Extended_Pictographic', 'Extender', 'Grapheme_Base', 'Grapheme_Extend', 'Hex_Digit', 'ID_Continue', 'ID_Start', 'Ideographic', 'IDS_Binary_Operator', 'IDS_Trinary_Operator', 'Join_Control', 'Logical_Order_Exception', 'Lowercase', 'Math', 'Noncharacter_Code_Point', 'Pattern_Syntax', 'Pattern_White_Space', 'Quotation_Mark', 'Radical', 'Regional_Indicator', 'Sentence_Terminal', 'Soft_Dotted', 'Terminal_Punctuation', 'Unified_Ideograph', 'Uppercase', 'Variation_Selector', 'White_Space', 'XID_Continue', 'XID_Start']);","'use strict';\n\nconst canonicalProperties = require('unicode-canonical-property-names-ecmascript');\n\nconst propertyAliases = require('unicode-property-aliases-ecmascript');\n\nconst matchProperty = function (property) {\n if (canonicalProperties.has(property)) {\n return property;\n }\n\n if (propertyAliases.has(property)) {\n return propertyAliases.get(property);\n }\n\n throw new Error(\"Unknown property: \".concat(property));\n};\n\nmodule.exports = matchProperty;","module.exports = new Map([['General_Category', new Map([['C', 'Other'], ['Cc', 'Control'], ['cntrl', 'Control'], ['Cf', 'Format'], ['Cn', 'Unassigned'], ['Co', 'Private_Use'], ['Cs', 'Surrogate'], ['L', 'Letter'], ['LC', 'Cased_Letter'], ['Ll', 'Lowercase_Letter'], ['Lm', 'Modifier_Letter'], ['Lo', 'Other_Letter'], ['Lt', 'Titlecase_Letter'], ['Lu', 'Uppercase_Letter'], ['M', 'Mark'], ['Combining_Mark', 'Mark'], ['Mc', 'Spacing_Mark'], ['Me', 'Enclosing_Mark'], ['Mn', 'Nonspacing_Mark'], ['N', 'Number'], ['Nd', 'Decimal_Number'], ['digit', 'Decimal_Number'], ['Nl', 'Letter_Number'], ['No', 'Other_Number'], ['P', 'Punctuation'], ['punct', 'Punctuation'], ['Pc', 'Connector_Punctuation'], ['Pd', 'Dash_Punctuation'], ['Pe', 'Close_Punctuation'], ['Pf', 'Final_Punctuation'], ['Pi', 'Initial_Punctuation'], ['Po', 'Other_Punctuation'], ['Ps', 'Open_Punctuation'], ['S', 'Symbol'], ['Sc', 'Currency_Symbol'], ['Sk', 'Modifier_Symbol'], ['Sm', 'Math_Symbol'], ['So', 'Other_Symbol'], ['Z', 'Separator'], ['Zl', 'Line_Separator'], ['Zp', 'Paragraph_Separator'], ['Zs', 'Space_Separator'], ['Other', 'Other'], ['Control', 'Control'], ['Format', 'Format'], ['Unassigned', 'Unassigned'], ['Private_Use', 'Private_Use'], ['Surrogate', 'Surrogate'], ['Letter', 'Letter'], ['Cased_Letter', 'Cased_Letter'], ['Lowercase_Letter', 'Lowercase_Letter'], ['Modifier_Letter', 'Modifier_Letter'], ['Other_Letter', 'Other_Letter'], ['Titlecase_Letter', 'Titlecase_Letter'], ['Uppercase_Letter', 'Uppercase_Letter'], ['Mark', 'Mark'], ['Spacing_Mark', 'Spacing_Mark'], ['Enclosing_Mark', 'Enclosing_Mark'], ['Nonspacing_Mark', 'Nonspacing_Mark'], ['Number', 'Number'], ['Decimal_Number', 'Decimal_Number'], ['Letter_Number', 'Letter_Number'], ['Other_Number', 'Other_Number'], ['Punctuation', 'Punctuation'], ['Connector_Punctuation', 'Connector_Punctuation'], ['Dash_Punctuation', 'Dash_Punctuation'], ['Close_Punctuation', 'Close_Punctuation'], ['Final_Punctuation', 'Final_Punctuation'], ['Initial_Punctuation', 'Initial_Punctuation'], ['Other_Punctuation', 'Other_Punctuation'], ['Open_Punctuation', 'Open_Punctuation'], ['Symbol', 'Symbol'], ['Currency_Symbol', 'Currency_Symbol'], ['Modifier_Symbol', 'Modifier_Symbol'], ['Math_Symbol', 'Math_Symbol'], ['Other_Symbol', 'Other_Symbol'], ['Separator', 'Separator'], ['Line_Separator', 'Line_Separator'], ['Paragraph_Separator', 'Paragraph_Separator'], ['Space_Separator', 'Space_Separator']])], ['Script', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])], ['Script_Extensions', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])]]);","'use strict';\n\nconst propertyToValueAliases = require('./data/mappings.js');\n\nconst matchPropertyValue = function (property, value) {\n const aliasToValue = propertyToValueAliases.get(property);\n\n if (!aliasToValue) {\n throw new Error(\"Unknown property `\".concat(property, \"`.\"));\n }\n\n const canonicalValue = aliasToValue.get(value);\n\n if (canonicalValue) {\n return canonicalValue;\n }\n\n throw new Error(\"Unknown value `\".concat(value, \"` for property `\").concat(property, \"`.\"));\n};\n\nmodule.exports = matchPropertyValue;","// Generated using `npm run build`. Do not edit!\nmodule.exports = new Map([['scx', 'Script_Extensions'], ['sc', 'Script'], ['gc', 'General_Category'], ['AHex', 'ASCII_Hex_Digit'], ['Alpha', 'Alphabetic'], ['Bidi_C', 'Bidi_Control'], ['Bidi_M', 'Bidi_Mirrored'], ['Cased', 'Cased'], ['CI', 'Case_Ignorable'], ['CWCF', 'Changes_When_Casefolded'], ['CWCM', 'Changes_When_Casemapped'], ['CWKCF', 'Changes_When_NFKC_Casefolded'], ['CWL', 'Changes_When_Lowercased'], ['CWT', 'Changes_When_Titlecased'], ['CWU', 'Changes_When_Uppercased'], ['Dash', 'Dash'], ['Dep', 'Deprecated'], ['DI', 'Default_Ignorable_Code_Point'], ['Dia', 'Diacritic'], ['EBase', 'Emoji_Modifier_Base'], ['EComp', 'Emoji_Component'], ['EMod', 'Emoji_Modifier'], ['Emoji', 'Emoji'], ['EPres', 'Emoji_Presentation'], ['Ext', 'Extender'], ['ExtPict', 'Extended_Pictographic'], ['Gr_Base', 'Grapheme_Base'], ['Gr_Ext', 'Grapheme_Extend'], ['Hex', 'Hex_Digit'], ['IDC', 'ID_Continue'], ['Ideo', 'Ideographic'], ['IDS', 'ID_Start'], ['IDSB', 'IDS_Binary_Operator'], ['IDST', 'IDS_Trinary_Operator'], ['Join_C', 'Join_Control'], ['LOE', 'Logical_Order_Exception'], ['Lower', 'Lowercase'], ['Math', 'Math'], ['NChar', 'Noncharacter_Code_Point'], ['Pat_Syn', 'Pattern_Syntax'], ['Pat_WS', 'Pattern_White_Space'], ['QMark', 'Quotation_Mark'], ['Radical', 'Radical'], ['RI', 'Regional_Indicator'], ['SD', 'Soft_Dotted'], ['STerm', 'Sentence_Terminal'], ['Term', 'Terminal_Punctuation'], ['UIdeo', 'Unified_Ideograph'], ['Upper', 'Uppercase'], ['VS', 'Variation_Selector'], ['WSpace', 'White_Space'], ['space', 'White_Space'], ['XIDC', 'XID_Continue'], ['XIDS', 'XID_Start']]);","var map = {\n\t\"./Binary_Property/ASCII.js\": 80055,\n\t\"./Binary_Property/ASCII_Hex_Digit.js\": 81731,\n\t\"./Binary_Property/Alphabetic.js\": 75244,\n\t\"./Binary_Property/Any.js\": 25929,\n\t\"./Binary_Property/Assigned.js\": 72573,\n\t\"./Binary_Property/Bidi_Control.js\": 83029,\n\t\"./Binary_Property/Bidi_Mirrored.js\": 50755,\n\t\"./Binary_Property/Case_Ignorable.js\": 86317,\n\t\"./Binary_Property/Cased.js\": 78087,\n\t\"./Binary_Property/Changes_When_Casefolded.js\": 61587,\n\t\"./Binary_Property/Changes_When_Casemapped.js\": 62518,\n\t\"./Binary_Property/Changes_When_Lowercased.js\": 50140,\n\t\"./Binary_Property/Changes_When_NFKC_Casefolded.js\": 97224,\n\t\"./Binary_Property/Changes_When_Titlecased.js\": 40835,\n\t\"./Binary_Property/Changes_When_Uppercased.js\": 95428,\n\t\"./Binary_Property/Dash.js\": 78233,\n\t\"./Binary_Property/Default_Ignorable_Code_Point.js\": 91357,\n\t\"./Binary_Property/Deprecated.js\": 18391,\n\t\"./Binary_Property/Diacritic.js\": 5198,\n\t\"./Binary_Property/Emoji.js\": 42117,\n\t\"./Binary_Property/Emoji_Component.js\": 97581,\n\t\"./Binary_Property/Emoji_Modifier.js\": 39030,\n\t\"./Binary_Property/Emoji_Modifier_Base.js\": 18618,\n\t\"./Binary_Property/Emoji_Presentation.js\": 29702,\n\t\"./Binary_Property/Extended_Pictographic.js\": 5667,\n\t\"./Binary_Property/Extender.js\": 9002,\n\t\"./Binary_Property/Grapheme_Base.js\": 96851,\n\t\"./Binary_Property/Grapheme_Extend.js\": 71054,\n\t\"./Binary_Property/Hex_Digit.js\": 80662,\n\t\"./Binary_Property/IDS_Binary_Operator.js\": 66910,\n\t\"./Binary_Property/IDS_Trinary_Operator.js\": 31548,\n\t\"./Binary_Property/ID_Continue.js\": 97301,\n\t\"./Binary_Property/ID_Start.js\": 47818,\n\t\"./Binary_Property/Ideographic.js\": 82217,\n\t\"./Binary_Property/Join_Control.js\": 15332,\n\t\"./Binary_Property/Logical_Order_Exception.js\": 55780,\n\t\"./Binary_Property/Lowercase.js\": 61091,\n\t\"./Binary_Property/Math.js\": 7146,\n\t\"./Binary_Property/Noncharacter_Code_Point.js\": 51752,\n\t\"./Binary_Property/Pattern_Syntax.js\": 76596,\n\t\"./Binary_Property/Pattern_White_Space.js\": 86436,\n\t\"./Binary_Property/Quotation_Mark.js\": 29467,\n\t\"./Binary_Property/Radical.js\": 68163,\n\t\"./Binary_Property/Regional_Indicator.js\": 16412,\n\t\"./Binary_Property/Sentence_Terminal.js\": 25496,\n\t\"./Binary_Property/Soft_Dotted.js\": 83045,\n\t\"./Binary_Property/Terminal_Punctuation.js\": 20991,\n\t\"./Binary_Property/Unified_Ideograph.js\": 15154,\n\t\"./Binary_Property/Uppercase.js\": 91909,\n\t\"./Binary_Property/Variation_Selector.js\": 64590,\n\t\"./Binary_Property/White_Space.js\": 42886,\n\t\"./Binary_Property/XID_Continue.js\": 83067,\n\t\"./Binary_Property/XID_Start.js\": 86524,\n\t\"./General_Category/Cased_Letter.js\": 94195,\n\t\"./General_Category/Close_Punctuation.js\": 42549,\n\t\"./General_Category/Connector_Punctuation.js\": 72437,\n\t\"./General_Category/Control.js\": 44467,\n\t\"./General_Category/Currency_Symbol.js\": 75431,\n\t\"./General_Category/Dash_Punctuation.js\": 86441,\n\t\"./General_Category/Decimal_Number.js\": 57965,\n\t\"./General_Category/Enclosing_Mark.js\": 89586,\n\t\"./General_Category/Final_Punctuation.js\": 32965,\n\t\"./General_Category/Format.js\": 32277,\n\t\"./General_Category/Initial_Punctuation.js\": 5900,\n\t\"./General_Category/Letter.js\": 63764,\n\t\"./General_Category/Letter_Number.js\": 43043,\n\t\"./General_Category/Line_Separator.js\": 19307,\n\t\"./General_Category/Lowercase_Letter.js\": 45025,\n\t\"./General_Category/Mark.js\": 76197,\n\t\"./General_Category/Math_Symbol.js\": 21803,\n\t\"./General_Category/Modifier_Letter.js\": 31022,\n\t\"./General_Category/Modifier_Symbol.js\": 46858,\n\t\"./General_Category/Nonspacing_Mark.js\": 85948,\n\t\"./General_Category/Number.js\": 78861,\n\t\"./General_Category/Open_Punctuation.js\": 38999,\n\t\"./General_Category/Other.js\": 30567,\n\t\"./General_Category/Other_Letter.js\": 52093,\n\t\"./General_Category/Other_Number.js\": 80180,\n\t\"./General_Category/Other_Punctuation.js\": 72919,\n\t\"./General_Category/Other_Symbol.js\": 57481,\n\t\"./General_Category/Paragraph_Separator.js\": 26400,\n\t\"./General_Category/Private_Use.js\": 55205,\n\t\"./General_Category/Punctuation.js\": 78350,\n\t\"./General_Category/Separator.js\": 66827,\n\t\"./General_Category/Space_Separator.js\": 29909,\n\t\"./General_Category/Spacing_Mark.js\": 67089,\n\t\"./General_Category/Surrogate.js\": 38703,\n\t\"./General_Category/Symbol.js\": 34345,\n\t\"./General_Category/Titlecase_Letter.js\": 87135,\n\t\"./General_Category/Unassigned.js\": 48068,\n\t\"./General_Category/Uppercase_Letter.js\": 54508,\n\t\"./Property_of_Strings/Basic_Emoji.js\": 7134,\n\t\"./Property_of_Strings/Emoji_Keycap_Sequence.js\": 1354,\n\t\"./Property_of_Strings/RGI_Emoji.js\": 64708,\n\t\"./Property_of_Strings/RGI_Emoji_Flag_Sequence.js\": 32530,\n\t\"./Property_of_Strings/RGI_Emoji_Modifier_Sequence.js\": 76685,\n\t\"./Property_of_Strings/RGI_Emoji_Tag_Sequence.js\": 80852,\n\t\"./Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js\": 70523,\n\t\"./Script/Adlam.js\": 67309,\n\t\"./Script/Ahom.js\": 21824,\n\t\"./Script/Anatolian_Hieroglyphs.js\": 44251,\n\t\"./Script/Arabic.js\": 93703,\n\t\"./Script/Armenian.js\": 52003,\n\t\"./Script/Avestan.js\": 91194,\n\t\"./Script/Balinese.js\": 97148,\n\t\"./Script/Bamum.js\": 92508,\n\t\"./Script/Bassa_Vah.js\": 87398,\n\t\"./Script/Batak.js\": 70403,\n\t\"./Script/Bengali.js\": 60285,\n\t\"./Script/Bhaiksuki.js\": 10143,\n\t\"./Script/Bopomofo.js\": 25500,\n\t\"./Script/Brahmi.js\": 69672,\n\t\"./Script/Braille.js\": 67008,\n\t\"./Script/Buginese.js\": 32055,\n\t\"./Script/Buhid.js\": 90141,\n\t\"./Script/Canadian_Aboriginal.js\": 40912,\n\t\"./Script/Carian.js\": 68653,\n\t\"./Script/Caucasian_Albanian.js\": 47231,\n\t\"./Script/Chakma.js\": 38234,\n\t\"./Script/Cham.js\": 29076,\n\t\"./Script/Cherokee.js\": 47242,\n\t\"./Script/Chorasmian.js\": 91466,\n\t\"./Script/Common.js\": 2325,\n\t\"./Script/Coptic.js\": 4957,\n\t\"./Script/Cuneiform.js\": 51215,\n\t\"./Script/Cypriot.js\": 94221,\n\t\"./Script/Cypro_Minoan.js\": 77004,\n\t\"./Script/Cyrillic.js\": 49326,\n\t\"./Script/Deseret.js\": 2436,\n\t\"./Script/Devanagari.js\": 76224,\n\t\"./Script/Dives_Akuru.js\": 28156,\n\t\"./Script/Dogra.js\": 19019,\n\t\"./Script/Duployan.js\": 11233,\n\t\"./Script/Egyptian_Hieroglyphs.js\": 82904,\n\t\"./Script/Elbasan.js\": 50651,\n\t\"./Script/Elymaic.js\": 63404,\n\t\"./Script/Ethiopic.js\": 42249,\n\t\"./Script/Georgian.js\": 77113,\n\t\"./Script/Glagolitic.js\": 84922,\n\t\"./Script/Gothic.js\": 8047,\n\t\"./Script/Grantha.js\": 31338,\n\t\"./Script/Greek.js\": 74214,\n\t\"./Script/Gujarati.js\": 51130,\n\t\"./Script/Gunjala_Gondi.js\": 60046,\n\t\"./Script/Gurmukhi.js\": 37307,\n\t\"./Script/Han.js\": 77439,\n\t\"./Script/Hangul.js\": 73296,\n\t\"./Script/Hanifi_Rohingya.js\": 67439,\n\t\"./Script/Hanunoo.js\": 71394,\n\t\"./Script/Hatran.js\": 68092,\n\t\"./Script/Hebrew.js\": 24189,\n\t\"./Script/Hiragana.js\": 84371,\n\t\"./Script/Imperial_Aramaic.js\": 10780,\n\t\"./Script/Inherited.js\": 71122,\n\t\"./Script/Inscriptional_Pahlavi.js\": 53431,\n\t\"./Script/Inscriptional_Parthian.js\": 580,\n\t\"./Script/Javanese.js\": 37174,\n\t\"./Script/Kaithi.js\": 77983,\n\t\"./Script/Kannada.js\": 29485,\n\t\"./Script/Katakana.js\": 3962,\n\t\"./Script/Kawi.js\": 99140,\n\t\"./Script/Kayah_Li.js\": 88425,\n\t\"./Script/Kharoshthi.js\": 11648,\n\t\"./Script/Khitan_Small_Script.js\": 67968,\n\t\"./Script/Khmer.js\": 21205,\n\t\"./Script/Khojki.js\": 5794,\n\t\"./Script/Khudawadi.js\": 95492,\n\t\"./Script/Lao.js\": 29088,\n\t\"./Script/Latin.js\": 59992,\n\t\"./Script/Lepcha.js\": 66891,\n\t\"./Script/Limbu.js\": 33324,\n\t\"./Script/Linear_A.js\": 74596,\n\t\"./Script/Linear_B.js\": 1620,\n\t\"./Script/Lisu.js\": 42747,\n\t\"./Script/Lycian.js\": 1657,\n\t\"./Script/Lydian.js\": 79038,\n\t\"./Script/Mahajani.js\": 58990,\n\t\"./Script/Makasar.js\": 31935,\n\t\"./Script/Malayalam.js\": 15666,\n\t\"./Script/Mandaic.js\": 81458,\n\t\"./Script/Manichaean.js\": 49002,\n\t\"./Script/Marchen.js\": 38394,\n\t\"./Script/Masaram_Gondi.js\": 13910,\n\t\"./Script/Medefaidrin.js\": 91850,\n\t\"./Script/Meetei_Mayek.js\": 43034,\n\t\"./Script/Mende_Kikakui.js\": 51271,\n\t\"./Script/Meroitic_Cursive.js\": 70039,\n\t\"./Script/Meroitic_Hieroglyphs.js\": 28978,\n\t\"./Script/Miao.js\": 41801,\n\t\"./Script/Modi.js\": 28146,\n\t\"./Script/Mongolian.js\": 34848,\n\t\"./Script/Mro.js\": 75485,\n\t\"./Script/Multani.js\": 45988,\n\t\"./Script/Myanmar.js\": 76042,\n\t\"./Script/Nabataean.js\": 81263,\n\t\"./Script/Nag_Mundari.js\": 17318,\n\t\"./Script/Nandinagari.js\": 16087,\n\t\"./Script/New_Tai_Lue.js\": 93938,\n\t\"./Script/Newa.js\": 12645,\n\t\"./Script/Nko.js\": 41687,\n\t\"./Script/Nushu.js\": 19566,\n\t\"./Script/Nyiakeng_Puachue_Hmong.js\": 57324,\n\t\"./Script/Ogham.js\": 28054,\n\t\"./Script/Ol_Chiki.js\": 50326,\n\t\"./Script/Old_Hungarian.js\": 89704,\n\t\"./Script/Old_Italic.js\": 81737,\n\t\"./Script/Old_North_Arabian.js\": 60623,\n\t\"./Script/Old_Permic.js\": 84547,\n\t\"./Script/Old_Persian.js\": 4062,\n\t\"./Script/Old_Sogdian.js\": 91435,\n\t\"./Script/Old_South_Arabian.js\": 17744,\n\t\"./Script/Old_Turkic.js\": 85004,\n\t\"./Script/Old_Uyghur.js\": 56299,\n\t\"./Script/Oriya.js\": 61702,\n\t\"./Script/Osage.js\": 66820,\n\t\"./Script/Osmanya.js\": 68741,\n\t\"./Script/Pahawh_Hmong.js\": 43421,\n\t\"./Script/Palmyrene.js\": 71540,\n\t\"./Script/Pau_Cin_Hau.js\": 1646,\n\t\"./Script/Phags_Pa.js\": 79532,\n\t\"./Script/Phoenician.js\": 17297,\n\t\"./Script/Psalter_Pahlavi.js\": 59563,\n\t\"./Script/Rejang.js\": 15670,\n\t\"./Script/Runic.js\": 15180,\n\t\"./Script/Samaritan.js\": 85123,\n\t\"./Script/Saurashtra.js\": 40061,\n\t\"./Script/Sharada.js\": 72487,\n\t\"./Script/Shavian.js\": 59504,\n\t\"./Script/Siddham.js\": 565,\n\t\"./Script/SignWriting.js\": 19877,\n\t\"./Script/Sinhala.js\": 66662,\n\t\"./Script/Sogdian.js\": 11761,\n\t\"./Script/Sora_Sompeng.js\": 35055,\n\t\"./Script/Soyombo.js\": 62187,\n\t\"./Script/Sundanese.js\": 78461,\n\t\"./Script/Syloti_Nagri.js\": 74405,\n\t\"./Script/Syriac.js\": 15815,\n\t\"./Script/Tagalog.js\": 2333,\n\t\"./Script/Tagbanwa.js\": 38249,\n\t\"./Script/Tai_Le.js\": 29852,\n\t\"./Script/Tai_Tham.js\": 59997,\n\t\"./Script/Tai_Viet.js\": 92465,\n\t\"./Script/Takri.js\": 95234,\n\t\"./Script/Tamil.js\": 59527,\n\t\"./Script/Tangsa.js\": 946,\n\t\"./Script/Tangut.js\": 86011,\n\t\"./Script/Telugu.js\": 4866,\n\t\"./Script/Thaana.js\": 36876,\n\t\"./Script/Thai.js\": 71517,\n\t\"./Script/Tibetan.js\": 49897,\n\t\"./Script/Tifinagh.js\": 71384,\n\t\"./Script/Tirhuta.js\": 51862,\n\t\"./Script/Toto.js\": 79830,\n\t\"./Script/Ugaritic.js\": 92019,\n\t\"./Script/Vai.js\": 57677,\n\t\"./Script/Vithkuqi.js\": 10301,\n\t\"./Script/Wancho.js\": 12679,\n\t\"./Script/Warang_Citi.js\": 79917,\n\t\"./Script/Yezidi.js\": 33172,\n\t\"./Script/Yi.js\": 94344,\n\t\"./Script/Zanabazar_Square.js\": 90753,\n\t\"./Script_Extensions/Adlam.js\": 38937,\n\t\"./Script_Extensions/Ahom.js\": 9811,\n\t\"./Script_Extensions/Anatolian_Hieroglyphs.js\": 11878,\n\t\"./Script_Extensions/Arabic.js\": 98988,\n\t\"./Script_Extensions/Armenian.js\": 50944,\n\t\"./Script_Extensions/Avestan.js\": 96478,\n\t\"./Script_Extensions/Balinese.js\": 28898,\n\t\"./Script_Extensions/Bamum.js\": 42809,\n\t\"./Script_Extensions/Bassa_Vah.js\": 36382,\n\t\"./Script_Extensions/Batak.js\": 18210,\n\t\"./Script_Extensions/Bengali.js\": 39762,\n\t\"./Script_Extensions/Bhaiksuki.js\": 69666,\n\t\"./Script_Extensions/Bopomofo.js\": 87754,\n\t\"./Script_Extensions/Brahmi.js\": 94830,\n\t\"./Script_Extensions/Braille.js\": 65528,\n\t\"./Script_Extensions/Buginese.js\": 3789,\n\t\"./Script_Extensions/Buhid.js\": 53126,\n\t\"./Script_Extensions/Canadian_Aboriginal.js\": 61228,\n\t\"./Script_Extensions/Carian.js\": 26604,\n\t\"./Script_Extensions/Caucasian_Albanian.js\": 68874,\n\t\"./Script_Extensions/Chakma.js\": 57717,\n\t\"./Script_Extensions/Cham.js\": 50272,\n\t\"./Script_Extensions/Cherokee.js\": 48334,\n\t\"./Script_Extensions/Chorasmian.js\": 61166,\n\t\"./Script_Extensions/Common.js\": 73219,\n\t\"./Script_Extensions/Coptic.js\": 33538,\n\t\"./Script_Extensions/Cuneiform.js\": 59678,\n\t\"./Script_Extensions/Cypriot.js\": 45995,\n\t\"./Script_Extensions/Cypro_Minoan.js\": 19536,\n\t\"./Script_Extensions/Cyrillic.js\": 18638,\n\t\"./Script_Extensions/Deseret.js\": 77756,\n\t\"./Script_Extensions/Devanagari.js\": 85640,\n\t\"./Script_Extensions/Dives_Akuru.js\": 97606,\n\t\"./Script_Extensions/Dogra.js\": 80650,\n\t\"./Script_Extensions/Duployan.js\": 4539,\n\t\"./Script_Extensions/Egyptian_Hieroglyphs.js\": 41585,\n\t\"./Script_Extensions/Elbasan.js\": 40751,\n\t\"./Script_Extensions/Elymaic.js\": 8933,\n\t\"./Script_Extensions/Ethiopic.js\": 56370,\n\t\"./Script_Extensions/Georgian.js\": 60656,\n\t\"./Script_Extensions/Glagolitic.js\": 22125,\n\t\"./Script_Extensions/Gothic.js\": 56298,\n\t\"./Script_Extensions/Grantha.js\": 86631,\n\t\"./Script_Extensions/Greek.js\": 80161,\n\t\"./Script_Extensions/Gujarati.js\": 41962,\n\t\"./Script_Extensions/Gunjala_Gondi.js\": 46189,\n\t\"./Script_Extensions/Gurmukhi.js\": 8194,\n\t\"./Script_Extensions/Han.js\": 5545,\n\t\"./Script_Extensions/Hangul.js\": 94337,\n\t\"./Script_Extensions/Hanifi_Rohingya.js\": 25890,\n\t\"./Script_Extensions/Hanunoo.js\": 54191,\n\t\"./Script_Extensions/Hatran.js\": 62640,\n\t\"./Script_Extensions/Hebrew.js\": 26210,\n\t\"./Script_Extensions/Hiragana.js\": 4645,\n\t\"./Script_Extensions/Imperial_Aramaic.js\": 47790,\n\t\"./Script_Extensions/Inherited.js\": 65719,\n\t\"./Script_Extensions/Inscriptional_Pahlavi.js\": 58626,\n\t\"./Script_Extensions/Inscriptional_Parthian.js\": 50167,\n\t\"./Script_Extensions/Javanese.js\": 29743,\n\t\"./Script_Extensions/Kaithi.js\": 11958,\n\t\"./Script_Extensions/Kannada.js\": 26161,\n\t\"./Script_Extensions/Katakana.js\": 58831,\n\t\"./Script_Extensions/Kawi.js\": 93386,\n\t\"./Script_Extensions/Kayah_Li.js\": 65916,\n\t\"./Script_Extensions/Kharoshthi.js\": 97319,\n\t\"./Script_Extensions/Khitan_Small_Script.js\": 82273,\n\t\"./Script_Extensions/Khmer.js\": 21654,\n\t\"./Script_Extensions/Khojki.js\": 60840,\n\t\"./Script_Extensions/Khudawadi.js\": 84937,\n\t\"./Script_Extensions/Lao.js\": 3895,\n\t\"./Script_Extensions/Latin.js\": 34462,\n\t\"./Script_Extensions/Lepcha.js\": 55753,\n\t\"./Script_Extensions/Limbu.js\": 82970,\n\t\"./Script_Extensions/Linear_A.js\": 61456,\n\t\"./Script_Extensions/Linear_B.js\": 7475,\n\t\"./Script_Extensions/Lisu.js\": 82841,\n\t\"./Script_Extensions/Lycian.js\": 25245,\n\t\"./Script_Extensions/Lydian.js\": 40610,\n\t\"./Script_Extensions/Mahajani.js\": 71461,\n\t\"./Script_Extensions/Makasar.js\": 90995,\n\t\"./Script_Extensions/Malayalam.js\": 4201,\n\t\"./Script_Extensions/Mandaic.js\": 85976,\n\t\"./Script_Extensions/Manichaean.js\": 61361,\n\t\"./Script_Extensions/Marchen.js\": 51089,\n\t\"./Script_Extensions/Masaram_Gondi.js\": 75850,\n\t\"./Script_Extensions/Medefaidrin.js\": 35394,\n\t\"./Script_Extensions/Meetei_Mayek.js\": 65222,\n\t\"./Script_Extensions/Mende_Kikakui.js\": 56734,\n\t\"./Script_Extensions/Meroitic_Cursive.js\": 48438,\n\t\"./Script_Extensions/Meroitic_Hieroglyphs.js\": 63315,\n\t\"./Script_Extensions/Miao.js\": 89426,\n\t\"./Script_Extensions/Modi.js\": 56126,\n\t\"./Script_Extensions/Mongolian.js\": 48441,\n\t\"./Script_Extensions/Mro.js\": 96237,\n\t\"./Script_Extensions/Multani.js\": 12152,\n\t\"./Script_Extensions/Myanmar.js\": 88384,\n\t\"./Script_Extensions/Nabataean.js\": 22445,\n\t\"./Script_Extensions/Nag_Mundari.js\": 48651,\n\t\"./Script_Extensions/Nandinagari.js\": 54947,\n\t\"./Script_Extensions/New_Tai_Lue.js\": 25650,\n\t\"./Script_Extensions/Newa.js\": 997,\n\t\"./Script_Extensions/Nko.js\": 35334,\n\t\"./Script_Extensions/Nushu.js\": 38408,\n\t\"./Script_Extensions/Nyiakeng_Puachue_Hmong.js\": 53615,\n\t\"./Script_Extensions/Ogham.js\": 72435,\n\t\"./Script_Extensions/Ol_Chiki.js\": 6286,\n\t\"./Script_Extensions/Old_Hungarian.js\": 10512,\n\t\"./Script_Extensions/Old_Italic.js\": 7259,\n\t\"./Script_Extensions/Old_North_Arabian.js\": 79715,\n\t\"./Script_Extensions/Old_Permic.js\": 84513,\n\t\"./Script_Extensions/Old_Persian.js\": 29058,\n\t\"./Script_Extensions/Old_Sogdian.js\": 22883,\n\t\"./Script_Extensions/Old_South_Arabian.js\": 25750,\n\t\"./Script_Extensions/Old_Turkic.js\": 38028,\n\t\"./Script_Extensions/Old_Uyghur.js\": 82038,\n\t\"./Script_Extensions/Oriya.js\": 93543,\n\t\"./Script_Extensions/Osage.js\": 55599,\n\t\"./Script_Extensions/Osmanya.js\": 6499,\n\t\"./Script_Extensions/Pahawh_Hmong.js\": 87093,\n\t\"./Script_Extensions/Palmyrene.js\": 33203,\n\t\"./Script_Extensions/Pau_Cin_Hau.js\": 32175,\n\t\"./Script_Extensions/Phags_Pa.js\": 80475,\n\t\"./Script_Extensions/Phoenician.js\": 88683,\n\t\"./Script_Extensions/Psalter_Pahlavi.js\": 13132,\n\t\"./Script_Extensions/Rejang.js\": 10643,\n\t\"./Script_Extensions/Runic.js\": 92370,\n\t\"./Script_Extensions/Samaritan.js\": 62803,\n\t\"./Script_Extensions/Saurashtra.js\": 69504,\n\t\"./Script_Extensions/Sharada.js\": 57957,\n\t\"./Script_Extensions/Shavian.js\": 15581,\n\t\"./Script_Extensions/Siddham.js\": 45898,\n\t\"./Script_Extensions/SignWriting.js\": 73338,\n\t\"./Script_Extensions/Sinhala.js\": 54400,\n\t\"./Script_Extensions/Sogdian.js\": 69554,\n\t\"./Script_Extensions/Sora_Sompeng.js\": 82168,\n\t\"./Script_Extensions/Soyombo.js\": 55339,\n\t\"./Script_Extensions/Sundanese.js\": 17361,\n\t\"./Script_Extensions/Syloti_Nagri.js\": 7453,\n\t\"./Script_Extensions/Syriac.js\": 49190,\n\t\"./Script_Extensions/Tagalog.js\": 78050,\n\t\"./Script_Extensions/Tagbanwa.js\": 6896,\n\t\"./Script_Extensions/Tai_Le.js\": 30486,\n\t\"./Script_Extensions/Tai_Tham.js\": 43272,\n\t\"./Script_Extensions/Tai_Viet.js\": 2338,\n\t\"./Script_Extensions/Takri.js\": 15222,\n\t\"./Script_Extensions/Tamil.js\": 25234,\n\t\"./Script_Extensions/Tangsa.js\": 14113,\n\t\"./Script_Extensions/Tangut.js\": 12606,\n\t\"./Script_Extensions/Telugu.js\": 60209,\n\t\"./Script_Extensions/Thaana.js\": 34190,\n\t\"./Script_Extensions/Thai.js\": 24815,\n\t\"./Script_Extensions/Tibetan.js\": 65333,\n\t\"./Script_Extensions/Tifinagh.js\": 98578,\n\t\"./Script_Extensions/Tirhuta.js\": 25740,\n\t\"./Script_Extensions/Toto.js\": 20190,\n\t\"./Script_Extensions/Ugaritic.js\": 41418,\n\t\"./Script_Extensions/Vai.js\": 95619,\n\t\"./Script_Extensions/Vithkuqi.js\": 4862,\n\t\"./Script_Extensions/Wancho.js\": 80134,\n\t\"./Script_Extensions/Warang_Citi.js\": 61158,\n\t\"./Script_Extensions/Yezidi.js\": 25,\n\t\"./Script_Extensions/Yi.js\": 47685,\n\t\"./Script_Extensions/Zanabazar_Square.js\": 92290,\n\t\"./index.js\": 31714,\n\t\"./unicode-version.js\": 35362\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 38531;","var parent = require('../../stable/object/assign');\n\nmodule.exports = parent;\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","module.exports = require('../../full/object/assign');\n","var parent = require('../../actual/object/assign');\n\nmodule.exports = parent;\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nvar toString = uncurryThisRaw({}.toString);\nvar stringSlice = uncurryThisRaw(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = function (fn) {\n return NATIVE_BIND ? uncurryThisWithBind(fn) : function () {\n return call.apply(fn, arguments);\n };\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThisRaw(fn);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","var parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals() {\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGoogleAnalytics(data);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\n\nfunction sendToGoogleAnalytics({\n name,\n value,\n id\n}) {\n window.ga(`send`, `event`, {\n eventCategory: `Web Vitals`,\n eventAction: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n eventLabel: id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n eventValue: Math.round(name === `CLS` ? value * 1000 : value),\n // Use a non-interaction event to avoid affecting bounce rate.\n nonInteraction: true,\n // Use `sendBeacon()` if the browser supports it.\n transport: `beacon`\n });\n}\n\nexport const onRouteUpdate = ({\n location\n}, pluginOptions = {}) => {\n const ga = window.ga;\n\n if (process.env.NODE_ENV !== `production` || typeof ga !== `function`) {\n return null;\n }\n\n const pathIsExcluded = location && typeof window.excludeGAPaths !== `undefined` && window.excludeGAPaths.some(rx => rx.test(location.pathname));\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n const sendPageView = () => {\n const pagePath = location ? location.pathname + location.search + location.hash : undefined;\n ga(`set`, `page`, pagePath);\n ga(`send`, `pageview`);\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n const delay = Math.max(32, pluginOptions.pageTransitionDelay || 0);\n setTimeout(sendPageView, delay);\n return null;\n};\nexport function onInitialClientRender(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` && typeof ga === `function` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals();\n }\n}","import React, { useEffect } from 'react'\r\nimport { graphql, StaticQuery } from 'gatsby'\r\nimport styled, { createGlobalStyle } from '@xstyled/styled-components'\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n #carbonads {\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu,\r\n Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n }\r\n\r\n #carbonads {\r\n display: inline-flex;\r\n background-color: background-light;\r\n border: 1;\r\n border-color: layout-border;\r\n box-shadow: none;\r\n }\r\n\r\n #carbonads a {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n #carbonads a:hover {\r\n color: inherit;\r\n }\r\n\r\n #carbonads span {\r\n position: relative;\r\n display: block;\r\n overflow: hidden;\r\n }\r\n\r\n #carbonads .carbon-wrap {\r\n display: flex;\r\n }\r\n\r\n .carbon-img {\r\n display: block;\r\n margin: 0;\r\n line-height: 1;\r\n }\r\n\r\n .carbon-img img {\r\n display: block;\r\n }\r\n\r\n .carbon-text {\r\n font-size: 13px;\r\n padding: 10px;\r\n line-height: 1.5;\r\n text-align: left;\r\n }\r\n\r\n .carbon-poweredby {\r\n display: block;\r\n padding: 8px 10px;\r\n background: repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4);\r\n text-align: center;\r\n text-transform: uppercase;\r\n letter-spacing: .5px;\r\n font-weight: 600;\r\n font-size: 9px;\r\n line-height: 1;\r\n }\r\n`\r\n\r\nconst QUERY = graphql`\r\n query CodeFund {\r\n site {\r\n siteMetadata {\r\n carbonAdsURL\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst AdContainer = styled.aside`\r\n display: block;\r\n height: 125;\r\n min-width: 1;\r\n margin: 3 0;\r\n`\r\n\r\nfunction InnerCarbonAd({ url }) {\r\n const ref = React.useRef()\r\n useEffect(() => {\r\n const wrapper = ref.current\r\n const script = document.createElement('script')\r\n script.src = url\r\n script.async = true\r\n script.id = '_carbonads_js'\r\n wrapper.appendChild(script)\r\n return () => {\r\n wrapper.removeChild(script)\r\n }\r\n }, [url])\r\n return (\r\n <>\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport function CarbonAd() {\r\n return (\r\n \r\n data.site.siteMetadata.carbonAdsURL ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n />\r\n )\r\n}\r\n","import styled, { up, css } from '@xstyled/styled-components'\r\n\r\nexport const TableContainer = styled.div`\r\n overflow-y: auto;\r\n margin: 3 0 2;\r\n\r\n ${up(\r\n 'lg',\r\n css`\r\n max-height: 480;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Table = styled.table`\r\n width: 100%;\r\n text-align: left;\r\n border-collapse: collapse;\r\n font-size: 90%;\r\n\r\n tr {\r\n background-color: transparent;\r\n }\r\n\r\n td,\r\n th {\r\n padding: 2 3;\r\n }\r\n\r\n th {\r\n color: on-background-light;\r\n background-color: background-light;\r\n font-weight: 600;\r\n z-index: 20;\r\n position: sticky;\r\n top: 0;\r\n }\r\n\r\n td {\r\n font-size: 85%;\r\n border-top: 1;\r\n border-bottom: 1;\r\n border-color: layout-border;\r\n }\r\n`\r\n","import React from 'react'\r\nimport { MDXProvider as BaseMDXProvider } from '@mdx-js/react'\r\nimport { Code } from './Code'\r\nimport { CarbonAd } from './CarbonAd'\r\nimport { Table, TableContainer } from './Table'\r\n\r\nfunction transformCode({ children, className, ...props }) {\r\n const lang = className && className.split('-')[1]\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nfunction getCodeChild(children) {\r\n const childrenArray = React.Children.toArray(children)\r\n if (childrenArray.length !== 1) return null\r\n const [firstChild] = childrenArray\r\n if (firstChild.type !== 'code') return null\r\n return firstChild\r\n}\r\n\r\nexport const mdxComponents = {\r\n 'carbon-ad': () => ,\r\n pre: ({ children }) => {\r\n const codeChild = getCodeChild(children)\r\n return codeChild ? transformCode(codeChild.props) :
{children}
\r\n },\r\n table: ({ children }) => {\r\n return (\r\n \r\n {children}
\r\n
\r\n )\r\n },\r\n}\r\n\r\nexport function MDXProvider({ children, components }) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols; // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n} // @private\n\n\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n } // prettier-ignore\n\n\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n/**\n * Check if a string ends with something\n * @private\n */\n\n\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\nvar pixelsto = pxtoFactory;\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em = /*#__PURE__*/pixelsto('em');\nvar em$1 = em;\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\n\nvar rem = /*#__PURE__*/pixelsto('rem');\nvar rem$1 = rem;\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\n\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\n\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\n\n\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\n\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings; // Error Handling\n\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\n\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\n\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\n\n\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\n\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\n\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n/* eslint-disable key-spacing */\n\n\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\n\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n\n\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n} // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\n\n\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\nvar curriedDarken$1 = curriedDarken;\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\nvar curriedLighten$1 = curriedLighten;\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\nvar mix$1 = curriedMix;\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar curriedOpacify$1 = curriedOpacify;\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\n\n\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\nvar curriedShade$1 = curriedShade;\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\nvar curriedTint$1 = curriedTint;\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Allow single or multiple animations passed\n\n\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\n\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\n\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\n\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\n\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\n\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\n\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\n\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\n\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import { transparentize } from 'polished'\r\nimport { css, th, defaultTheme, aliasColor } from '@xstyled/styled-components'\r\n\r\nexport function primaryColor(color) {\r\n return aliasColor('primary', color)\r\n}\r\n\r\nexport const theme = {\r\n initialColorModeName: 'light',\r\n ...defaultTheme,\r\n global: css`\r\n html,\r\n body {\r\n transition: 300ms ease-in color, 300ms ease-in background-color;\r\n margin: 0;\r\n font-family: base;\r\n background-color: background;\r\n color: on-background;\r\n line-height: base;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n }\r\n \r\n img {\r\n display: inline-block;\r\n }\r\n\r\n :focus {\r\n outline-color: primary-500;\r\n }\r\n blockquote.quote {\r\n background-color: var(--xstyled-colors-editor-background,#18181b);\r\n margin: 3vw 3vw;\r\n box-sizing: border-box;\r\n position: relative;\r\n font-size: 24px;\r\n padding: 1vw 5vw;\r\n border-radius: 8px;\r\n \r\n font-style: italic;\r\n }\r\n @media (min-width: 768px) {\r\n blockquote.quote:before {\r\n width: 6vw;\r\n height: 7vw;\r\n top: 50%;\r\n left: 0;\r\n transform: translate(-50%, -50%);\r\n }\r\n .only-small {\r\n display: none;\r\n }\r\n }\r\n @media (max-width: 768px) {\r\n .only-wide {\r\n display: none;\r\n }\r\n }\r\n blockquote.quote:before {\r\n content: \"\";\r\n background-image: url(/resources/quote.svg);\r\n position: absolute;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n }\r\n .xstyled-color-mode-light blockquote.quote {\r\n color: black;\r\n background-color: #d4d4d8;\r\n border-color: #a8a8af;\r\n }\r\n \r\n .wide-feature-text h3 {\r\n font-size: 38px;\r\n text-align: center;\r\n }\r\n .wide-feature-text p {\r\n font-size: 24px;\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text ul {\r\n font-size: 24px;\r\n list-style-type: \"👉 \";\r\n margin-left: 3rem;\r\n }\r\n .wide-feature-text li {\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text strong,\r\n strong.orange {\r\n color: #F2A41F;\r\n // font-weight: normal;\r\n }\r\n \r\n .home-screenshots {\r\n margin-bottom: 2rem;\r\n }\r\n .home-screenshots h2 {\r\n font-size: 34px;\r\n font-weight: 400;\r\n margin-top: 3rem;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n .home-screenshots img {\r\n width: 80%;\r\n }\r\n \r\n \r\n .home-links {\r\n text-align: center;\r\n display: flex;\r\n }\r\n .home-links > * {\r\n width:30%;\r\n padding: 1rem;\r\n }\r\n\r\n .home-links a {\r\n color: var(--xstyled-colors-on-background, #ffffff)!important;\r\n }\r\n \r\n h3 {\r\n font-size: 1.17em;\r\n margin-bottom: 0.5em;\r\n }\r\n \r\n .carousel__back-button, .carousel__next-button {\r\n background: transparent;\r\n }\r\n\r\n `,\r\n 'prism-theme': () => ({\r\n styles: [\r\n {\r\n types: ['comment'],\r\n style: {\r\n color: 'rgb(106, 171, 115)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['line-comment'],\r\n style: {\r\n color: 'rgb(99,103,100)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['zdl-keyword', 'keyword'],\r\n style: {\r\n color: 'rgb(207, 142, 107)',\r\n },\r\n },\r\n {\r\n types: ['zdl-annotation', 'zdl-validation'],\r\n style: {\r\n color: 'rgb(179, 174, 96)',\r\n },\r\n },\r\n {\r\n types: ['zdl-class-name'],\r\n style: {\r\n color: 'rgb(102,127,209)',\r\n },\r\n },\r\n {\r\n types: ['zdl-field'],\r\n style: {\r\n color: 'rgb(198, 120, 221)',\r\n },\r\n },\r\n {\r\n types: ['punctuation'],\r\n style: {\r\n color: 'rgb(230,233,236)', // fixme\r\n },\r\n },\r\n {\r\n types: ['boolean', 'bool', 'char', 'number'],\r\n style: {\r\n color: 'rgb(33,51,157)',// fixme\r\n },\r\n },\r\n {\r\n types: ['tag'],\r\n style: {\r\n color: 'rgb(229, 192, 123)',\r\n },\r\n },\r\n {\r\n types: ['operator'],\r\n style: {\r\n color: 'rgb(171, 178, 191)',\r\n },\r\n },\r\n {\r\n types: ['string'],\r\n style: {\r\n color: 'rgb(152, 195, 121)',\r\n },\r\n },\r\n {\r\n types: ['attr-name', 'comment'],\r\n style: {\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['function'],\r\n style: {\r\n color: 'rgb(97, 175, 239)',\r\n },\r\n },\r\n ],\r\n }),\r\n fonts: {\r\n base: '-apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif',\r\n },\r\n lineHeights: {\r\n base: 1.4,\r\n control: th.lineHeight('base'),\r\n },\r\n transitions: {\r\n base: '300ms ease all',\r\n fast: '150ms cubic-bezier(0.215, 0.61, 0.355, 1) all',\r\n control: th.transition('base'),\r\n },\r\n radii: {\r\n base: 4,\r\n control: th.radius('base'),\r\n editor: th.radius('base'),\r\n blockquote: th.radius('base'),\r\n },\r\n borderWidths: {\r\n base: 1,\r\n control: th.borderWidth('base'),\r\n },\r\n shadows: {\r\n focus: (p) => `0 0 0 ${th.px(2)(p)} ${th.color('primary-a500')(p)}`,\r\n 'control-focus': th.shadow('focus'),\r\n },\r\n sizes: {\r\n screen: 1669, // 1440,\r\n },\r\n space: {\r\n 0: 0,\r\n 1: 4,\r\n 2: 8,\r\n 3: 16,\r\n 4: 24,\r\n 5: 48,\r\n 6: 96,\r\n 7: 144,\r\n 8: 192,\r\n 9: 240,\r\n 'preview-padding-y': 16,\r\n 'preview-padding-x': 24,\r\n },\r\n colors: {\r\n ...defaultTheme.colors,\r\n\r\n // Primary = indigo\r\n ...aliasColor('primary', 'indigo'),\r\n\r\n primary: th.color('primary-500'),\r\n 'primary-a500': (p) => transparentize(0.5, th.color('primary-500')(p)),\r\n\r\n background: th.color('white'),\r\n 'background-light': th.color('gray-100'),\r\n 'background-primary': th.color('primary-100'),\r\n 'background-mark': th.color('yellow-200'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('black'),\r\n 'on-background-light': th.color('gray-700'),\r\n 'on-background-primary': th.color('primary-700'),\r\n 'on-background-primary-dark': th.color('primary-800'),\r\n\r\n 'layout-border': th.color('gray-300'),\r\n\r\n 'control-background': th.color('gray-100'),\r\n 'control-placeholder': th.color('gray-600'),\r\n 'control-on': th.color('gray-900'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-400'),\r\n\r\n 'editor-background': th.color('gray-900'),\r\n 'editor-on': th.color('gray-100'),\r\n 'editor-border': th.color('layout-border'),\r\n\r\n 'blockquote-link': th.color('yellow-800'),\r\n 'blockquote-background': th.color('yellow-200'),\r\n 'blockquote-border': th.color('yellow'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-200'),\r\n 'doc-search-suggestion-highlight-on-background': th.color('primary-800'),\r\n 'doc-search-suggestion-content-background': th.color('primary-100'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-700'),\r\n\r\n modes: {\r\n dark: {\r\n background: th.color('gray-900'),\r\n 'editor-background': th.color('black'),\r\n 'background-light': th.color('gray-800'),\r\n 'background-primary': th.color('primary-900'),\r\n 'background-mark': th.color('yellow-500'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('white'),\r\n 'on-background-light': th.color('gray-300'),\r\n 'on-background-primary': th.color('primary-300'),\r\n 'on-background-primary-dark': th.color('primary-200'),\r\n\r\n 'layout-border': th.color('gray-700'),\r\n\r\n 'control-background': th.color('gray-800'),\r\n 'control-placeholder': th.color('gray-400'),\r\n 'control-on': th.color('gray-100'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-600'),\r\n\r\n 'blockquote-link': th.color('yellow-200'),\r\n 'blockquote-background': th.color('yellow-900'),\r\n 'blockquote-border': th.color('yellow-300'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-800'),\r\n 'doc-search-suggestion-highlight-on-background':\r\n th.color('primary-200'),\r\n 'doc-search-suggestion-content-background': th.color('primary-900'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-300'),\r\n },\r\n },\r\n },\r\n}\r\n","import React from 'react'\r\nimport {\r\n createGlobalStyle,\r\n ThemeProvider as SCThemeProvider,\r\n th,\r\n} from '@xstyled/styled-components'\r\nimport { theme } from '../theme'\r\n\r\nexport const GlobalStyle = createGlobalStyle`\r\n ${th('global')}\r\n`\r\n\r\nexport function ThemeProvider({ children }) {\r\n return {children}\r\n}\r\n","import React from 'react'\r\nimport { ColorModeProvider, Preflight } from '@xstyled/styled-components'\r\nimport { MDXProvider } from './MDX'\r\nimport { GlobalStyle, ThemeProvider } from './Theme'\r\n\r\nexport function RootWrapper({ children }) {\r\n return (\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n","import { useDisclosureState } from '../disclosure/disclosure-state.js';\n/**\n * Provides state for the `Dialog` components.\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * \n * Content\n * ```\n */\n\nfunction useDialogState(props) {\n if (props === void 0) {\n props = {};\n }\n\n const disclosure = useDisclosureState(props);\n return disclosure;\n}\n\nexport { useDialogState };","import { useRef, useState, useCallback, useMemo } from 'react';\nimport { useControlledState, usePreviousValue } from 'ariakit-utils/hooks';\n/**\n * Provides state for the `Disclosure` components.\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure\n * Content\n * ```\n */\n\nfunction useDisclosureState(_temp) {\n var _props$defaultOpen;\n\n let {\n animated = false,\n ...props\n } = _temp === void 0 ? {} : _temp;\n const disclosureRef = useRef(null);\n const [open, setOpen] = useControlledState((_props$defaultOpen = props.defaultOpen) != null ? _props$defaultOpen : false, props.open, props.setOpen);\n const [contentElement, setContentElement] = useState(null);\n const [animating, setAnimating] = useState(!!animated && open);\n const prevOpen = usePreviousValue(open);\n const mounted = open || animating;\n\n if (animated && !animating && prevOpen !== open) {\n setAnimating(true);\n }\n\n const show = useCallback(() => setOpen(true), [setOpen]);\n const hide = useCallback(() => setOpen(false), [setOpen]);\n const toggle = useCallback(() => setOpen(v => !v), [setOpen]);\n const stopAnimation = useCallback(() => setAnimating(false), []);\n const state = useMemo(() => ({\n disclosureRef,\n open,\n mounted,\n animated,\n animating,\n contentElement,\n setContentElement,\n setOpen,\n show,\n hide,\n toggle,\n stopAnimation\n }), [open, mounted, animated, animating, contentElement, setContentElement, setOpen, show, hide, toggle, stopAnimation]);\n return state;\n}\n\nexport { useDisclosureState };","import { useState } from 'react';\nimport { useId, useSafeLayoutEffect, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { flushSync } from 'react-dom';\n\nfunction afterTimeout(timeoutMs, cb) {\n const timeoutId = setTimeout(cb, timeoutMs);\n return () => clearTimeout(timeoutId);\n}\n\nfunction afterPaint(cb) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\n\nfunction parseCSSTime() {\n for (var _len = arguments.length, times = new Array(_len), _key = 0; _key < _len; _key++) {\n times[_key] = arguments[_key];\n }\n\n return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n const currentTime = parseFloat(currentTimeString || \"0s\") * 1000; // When multiple times are specified, we want to use the longest one so we\n // wait until the longest transition has finished.\n\n if (currentTime > longestTime) return currentTime;\n return longestTime;\n }, 0);\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosureContent({ state });\n * Disclosure\n * Content\n * ```\n */\n\n\nconst useDisclosureContent = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n const id = useId(props.id);\n const [transition, setTransition] = useState(null);\n useSafeLayoutEffect(() => {\n var _state$contentElement;\n\n if (!state.animated) return; // When the disclosure content element is rendered in a portal, we need to\n // wait for the portal to be mounted and connected to the DOM before we\n // can start the animation.\n\n if (!((_state$contentElement = state.contentElement) != null && _state$contentElement.isConnected)) {\n setTransition(null);\n return;\n } // Double requestAnimationFrame is necessary here to avoid potential bugs\n // when the data attribute is added before the element is fully rendered\n // in the DOM, which wouldn't trigger the animation.\n\n\n return afterPaint(() => {\n setTransition(state.open ? \"enter\" : \"leave\");\n });\n }, [state.animated, state.contentElement, state.open]);\n useSafeLayoutEffect(() => {\n if (!state.animated) return;\n if (!state.contentElement) return;\n if (!transition) return;\n if (transition === \"enter\" && !state.open) return;\n if (transition === \"leave\" && state.open) return; // When the animated state is a number, the user has manually set the\n // animation timeout, so we just respect it.\n\n if (typeof state.animated === \"number\") {\n const timeoutMs = state.animated;\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n } // Otherwise, we need to parse the CSS transition/animation duration and\n // delay to know when the animation ends. This is safer than relying on\n // the transitionend/animationend events because it's not guaranteed that\n // these events will fire. For example, if the element is removed from the\n // DOM before the animation ends or if the animation wasn't triggered in\n // the first place, the events won't fire.\n\n\n const {\n transitionDuration,\n animationDuration,\n transitionDelay,\n animationDelay\n } = getComputedStyle(state.contentElement);\n const delay = parseCSSTime(transitionDelay, animationDelay);\n const duration = parseCSSTime(transitionDuration, animationDuration);\n const timeoutMs = delay + duration; // If the animation/transition delay and duration are 0, this means the\n // element is not animated with CSS (they may be using framer-motion,\n // react-spring, or something else). In this case, the user is responsible\n // for calling `stopAnimation` when the animation ends.\n\n if (!timeoutMs) return; // TODO: We should probably warn if `stopAnimation` hasn't been called\n // after X seconds.\n\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n }, [state.animated, state.contentElement, transition, state.open, state.stopAnimation]);\n const style = state.mounted || props.hidden === false ? props.style : { ...props.style,\n display: \"none\"\n };\n props = {\n id,\n \"data-enter\": transition === \"enter\" ? \"\" : undefined,\n \"data-leave\": transition === \"leave\" ? \"\" : undefined,\n hidden: !state.mounted,\n ...props,\n ref: useForkRef(id ? state.setContentElement : null, props.ref),\n style\n };\n return props;\n});\n/**\n * A component that renders an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure\n * Content\n * ```\n */\n\nconst DisclosureContent = createComponent(props => {\n const htmlProps = useDisclosureContent(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DisclosureContent.displayName = \"DisclosureContent\";\n}\n\nexport { DisclosureContent, useDisclosureContent };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component. When applying the props returned by this hook to a\n * component, the component will be visually hidden, but still accessible to\n * screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * const props = useVisuallyHidden();\n * \n * Learn more about the Solar System.\n * \n * ```\n */\n\nconst useVisuallyHidden = createHook(props => {\n props = { ...props,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n ...props.style\n }\n };\n return props;\n});\n/**\n * A component that renders an element that's visually hidden, but still\n * accessible to screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * \n * Learn more about the Solar System.\n * \n * ```\n */\n\nconst VisuallyHidden = createComponent(props => {\n const htmlProps = useVisuallyHidden(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n VisuallyHidden.displayName = \"VisuallyHidden\";\n}\n\nexport { VisuallyHidden, useVisuallyHidden };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useVisuallyHidden } from '../visually-hidden/visually-hidden.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * const props = useFocusTrap();\n * \n * ```\n */\n\nconst useFocusTrap = createHook(props => {\n props = {\n \"data-focus-trap\": \"\",\n tabIndex: 0,\n \"aria-hidden\": true,\n ...props,\n style: {\n // Prevents unintended scroll jumps.\n position: \"fixed\",\n top: 0,\n left: 0,\n ...props.style\n }\n };\n props = useVisuallyHidden(props);\n return props;\n});\n/**\n * A component that renders a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * \n * ```\n */\n\nconst FocusTrap = createComponent(props => {\n const htmlProps = useFocusTrap(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrap.displayName = \"FocusTrap\";\n}\n\nexport { FocusTrap, useFocusTrap };","import { useRef } from 'react';\nimport { getAllTabbableIn } from 'ariakit-utils/focus';\nimport { useWrapElement, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { FocusTrap } from './focus-trap.js';\nimport { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nconst useFocusTrapRegion = createHook(_ref => {\n let {\n enabled = false,\n ...props\n } = _ref;\n const ref = useRef(null);\n props = useWrapElement(props, element => {\n const renderFocusTrap = () => {\n if (!enabled) return null;\n return /*#__PURE__*/jsx(FocusTrap, {\n onFocus: event => {\n const container = ref.current;\n if (!container) return;\n const tabbables = getAllTabbableIn(container, true);\n const first = tabbables[0];\n const last = tabbables[tabbables.length - 1]; // Fallbacks to the container element\n\n if (!tabbables.length) {\n container.focus();\n return;\n }\n\n if (event.relatedTarget === first) {\n last == null ? void 0 : last.focus();\n } else {\n first == null ? void 0 : first.focus();\n }\n }\n });\n };\n\n return /*#__PURE__*/jsxs(Fragment, {\n children: [renderFocusTrap(), element, renderFocusTrap()]\n });\n }, [enabled]);\n props = { ...props,\n ref: useForkRef(ref, props.ref)\n };\n return props;\n});\n/**\n * A component that renders a focus trap region element.\n * @see https://ariakit.org/components/focus-trap-region\n * @example\n * ```jsx\n * \n * \n * \n * \n * \n * ```\n */\n\nconst FocusTrapRegion = createComponent(props => {\n const htmlProps = useFocusTrapRegion(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrapRegion.displayName = \"FocusTrapRegion\";\n}\n\nexport { FocusTrapRegion, useFocusTrapRegion };","import { createContext } from 'react';\nconst HeadingContext = /*#__PURE__*/createContext(0);\nexport { HeadingContext as H };","import { useContext } from 'react';\nimport { H as HeadingContext } from '../__utils-5a52896b.js';\nimport { jsx } from 'react/jsx-runtime';\n\nfunction HeadingLevel(_ref) {\n let {\n level,\n children\n } = _ref;\n const contextLevel = useContext(HeadingContext);\n const nextLevel = Math.max(Math.min(level || contextLevel + 1, 6), 1);\n return /*#__PURE__*/jsx(HeadingContext.Provider, {\n value: nextLevel,\n children: children\n });\n}\n\nexport { HeadingLevel };","import { createContext } from 'react';\n/**\n * Stores the element that will contain the portal. By default, it will be the\n * body of the document.\n * @example\n * ```jsx\n * const container = document.getElementById(\"container\");\n *\n * function App() {\n * return (\n * \n * \n * \n * );\n * }\n * ```\n */\n\nconst PortalContext = /*#__PURE__*/createContext(null);\nexport { PortalContext };","import { useRef, useContext, useState, useEffect } from 'react';\nimport { getDocument } from 'ariakit-utils/dom';\nimport { isFocusEventOutside } from 'ariakit-utils/events';\nimport { getNextTabbable, getPreviousTabbable, restoreFocusIn, disableFocusIn } from 'ariakit-utils/focus';\nimport { useForkRef, useSafeLayoutEffect, useWrapElement } from 'ariakit-utils/hooks';\nimport { setRef, queueMicrotask } from 'ariakit-utils/misc';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { createPortal } from 'react-dom';\nimport { PortalContext } from './portal-context.js';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { FocusTrap } from '../focus-trap/focus-trap.js';\n\nfunction getRootElement(element) {\n return getDocument(element).body;\n}\n\nfunction getPortalElement(element, portalElement) {\n if (!portalElement) {\n return getDocument(element).createElement(\"div\");\n }\n\n if (typeof portalElement === \"function\") {\n return portalElement(element);\n }\n\n return portalElement;\n}\n\nfunction getRandomId(prefix) {\n if (prefix === void 0) {\n prefix = \"id\";\n }\n\n return \"\" + (prefix ? prefix + \"-\" : \"\") + Math.random().toString(36).substr(2, 6);\n}\n\nfunction queueFocus(element) {\n queueMicrotask(() => {\n element == null ? void 0 : element.focus();\n });\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * const props = usePortal();\n * Content\n * ```\n */\n\n\nconst usePortal = createHook(_ref => {\n let {\n preserveTabOrder,\n portalElement,\n portalRef,\n portal = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const refProp = useForkRef(ref, props.ref);\n const context = useContext(PortalContext);\n const [portalNode, setPortalNode] = useState(null);\n const beforeOutsideRef = useRef(null);\n const beforeInsideRef = useRef(null);\n const afterInsideRef = useRef(null);\n const afterOutsideRef = useRef(null); // Create the portal node and attach it to the DOM.\n\n useSafeLayoutEffect(() => {\n const element = ref.current;\n\n if (!element || !portal) {\n setPortalNode(null);\n return;\n }\n\n const portalEl = getPortalElement(element, portalElement); // TODO: Warn about portals as the document.body element.\n\n if (!portalEl) {\n setPortalNode(null);\n return;\n }\n\n const isPortalInDocument = portalEl.isConnected;\n\n if (!isPortalInDocument) {\n const rootElement = context || getRootElement(element);\n rootElement.appendChild(portalEl);\n } // If the portal element doesn't have an id already, set one.\n\n\n if (!portalEl.id) {\n // Use the element's id so rendering will\n // produce predictable results.\n portalEl.id = element.id ? element.id + \"-portal\" : getRandomId();\n } // Set the internal portal node state and the portalRef prop.\n\n\n setPortalNode(portalEl);\n setRef(portalRef, portalEl); // If the portal element was already in the document, we don't need to\n // remove it when the element is unmounted, so we just return.\n\n if (isPortalInDocument) return; // Otherwise, we need to remove the portal from the DOM.\n\n return () => {\n portalEl.remove();\n setRef(portalRef, null);\n };\n }, [portal, portalElement, context, portalRef]); // When preserveTabOrder is true, make sure elements inside the portal\n // element are tabbable only when the portal has already been focused,\n // either by tabbing into a focus trap element outside or using the mouse.\n\n useEffect(() => {\n if (!portalNode) return;\n if (!preserveTabOrder) return;\n let raf = 0;\n\n const onFocus = event => {\n if (isFocusEventOutside(event)) {\n const focusing = event.type === \"focusin\";\n if (focusing) return restoreFocusIn(portalNode); // Wait for the next frame to allow tabindex changes after the focus\n // event.\n\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n disableFocusIn(portalNode, true);\n });\n }\n }; // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n\n\n portalNode.addEventListener(\"focusin\", onFocus, true);\n portalNode.addEventListener(\"focusout\", onFocus, true);\n return () => {\n portalNode.removeEventListener(\"focusin\", onFocus, true);\n portalNode.removeEventListener(\"focusout\", onFocus, true);\n };\n }, [portalNode, preserveTabOrder]);\n props = useWrapElement(props, element => {\n element =\n /*#__PURE__*/\n // While the portal node is not in the DOM, we need to pass the\n // current context to the portal context, otherwise it's going to\n // reset to the body element on nested portals.\n jsx(PortalContext.Provider, {\n value: portalNode || context,\n children: element\n });\n if (!portal) return element;\n\n if (!portalNode) {\n // If the element should be rendered within a portal, but the portal\n // node is not yet in the DOM, we'll return an empty div element. We\n // assign the id to the element so we can use it to set the portal id\n // later on. We're using position: fixed here so that the browser\n // doesn't add margin to the element when setting gap on a parent\n // element.\n return /*#__PURE__*/jsx(\"span\", {\n ref: refProp,\n id: props.id,\n style: {\n position: \"fixed\"\n }\n });\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getNextTabbable());\n } else {\n queueFocus(beforeOutsideRef.current);\n }\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getPreviousTabbable());\n } else {\n queueFocus(afterOutsideRef.current);\n }\n }\n })]\n });\n\n if (portalNode) {\n element = /*#__PURE__*/createPortal(element, portalNode);\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(beforeInsideRef.current);\n } else {\n queueFocus(getPreviousTabbable());\n }\n }\n }), preserveTabOrder &&\n /*#__PURE__*/\n // We're using position: fixed here so that the browser doesn't\n // add margin to the element when setting gap on a parent element.\n jsx(\"span\", {\n \"aria-owns\": portalNode == null ? void 0 : portalNode.id,\n style: {\n position: \"fixed\"\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(afterInsideRef.current);\n } else {\n queueFocus(getNextTabbable());\n }\n }\n })]\n });\n return element;\n }, [portalNode, context, portal, props.id, preserveTabOrder]);\n props = { ...props,\n ref: refProp\n };\n return props;\n});\n/**\n * A component that renders an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * Content\n * ```\n */\n\nconst Portal = createComponent(props => {\n const htmlProps = usePortal(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n}\n\nexport { Portal, usePortal };","import { createContext } from 'react';\nconst DialogContext = /*#__PURE__*/createContext(undefined);\nconst DialogHeadingContext = /*#__PURE__*/createContext(undefined);\nconst DialogDescriptionContext = /*#__PURE__*/createContext(undefined);\nexport { DialogContext as D, DialogHeadingContext as a, DialogDescriptionContext as b };","import { useRef, useEffect, useMemo, useCallback, useContext, useState, createContext } from 'react';\nimport { getDocument, contains, getActiveElement, getWindow, isButton, closest } from 'ariakit-utils/dom';\nimport { addGlobalEventListener, isSelfTarget, queueBeforeEvent } from 'ariakit-utils/events';\nimport { getFirstTabbableIn, focusIfNeeded, isFocusable } from 'ariakit-utils/focus';\nimport { useSafeLayoutEffect, useBooleanEvent, useEvent, useForkRef, useForceUpdate, useLiveRef, usePortalRef, useId, useWrapElement } from 'ariakit-utils/hooks';\nimport { noop, chain } from 'ariakit-utils/misc';\nimport { isApple, isMac, isSafari } from 'ariakit-utils/platform';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosureContent } from '../disclosure/disclosure-content.js';\nimport { useFocusTrapRegion } from '../focus-trap/focus-trap-region.js';\nimport { useFocusable } from '../focusable/focusable.js';\nimport { HeadingLevel } from '../heading/heading-level.js';\nimport { usePortal } from '../portal/portal.js';\nimport { jsx } from 'react/jsx-runtime';\nimport { D as DialogContext, a as DialogHeadingContext, b as DialogDescriptionContext } from '../dialog-context-f963dd70.js';\nimport { flushSync } from 'react-dom';\n\nfunction usePreviousMouseDownRef(enabled) {\n const previousMouseDownRef = useRef();\n useEffect(() => {\n if (!enabled) {\n previousMouseDownRef.current = null;\n return;\n }\n\n const onMouseDown = event => {\n previousMouseDownRef.current = event.target;\n };\n\n return addGlobalEventListener(\"mousedown\", onMouseDown, true);\n }, [enabled]);\n return previousMouseDownRef;\n}\n\nfunction DialogBackdrop(_ref) {\n var _state$contentElement;\n\n let {\n state,\n backdrop,\n backdropProps,\n hideOnInteractOutside = true,\n hideOnEscape = true,\n hidden,\n children\n } = _ref;\n const ref = useRef(null);\n state = useMemo(() => ({ ...state,\n // Override the setContentElement method to prevent the backdrop from\n // overwriting the dialog's content element.\n setContentElement: noop\n }), [state]);\n useSafeLayoutEffect(() => {\n const backdrop = ref.current;\n const dialog = state.contentElement;\n if (!backdrop) return;\n if (!dialog) return;\n backdrop.style.zIndex = getComputedStyle(dialog).zIndex;\n }, [state.contentElement]);\n const onClickProp = backdropProps == null ? void 0 : backdropProps.onClick;\n const hideOnInteractOutsideProp = useBooleanEvent(hideOnInteractOutside);\n const previousMouseDownRef = usePreviousMouseDownRef(state.mounted);\n const onClick = useEvent(event => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (previousMouseDownRef.current !== event.currentTarget) return;\n if (!hideOnInteractOutsideProp(event)) return;\n event.stopPropagation();\n state.hide();\n });\n const onKeyDownProp = backdropProps == null ? void 0 : backdropProps.onKeyDown;\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // When hideOnInteractOutside is false and the backdrop is clicked, the\n // backdrop will receive focus (because we set the tabIndex on it). Therefore,\n // the Escape key will not be captured by the Dialog component. So we listen\n // to it here.\n\n const onKeyDown = useEvent(event => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Escape\") return;\n if (!isSelfTarget(event)) return;\n if (!hideOnEscapeProp(event)) return;\n state.hide();\n });\n const props = useDisclosureContent({\n state,\n id: undefined,\n role: \"presentation\",\n tabIndex: -1,\n hidden,\n ...backdropProps,\n ref: useForkRef(backdropProps == null ? void 0 : backdropProps.ref, ref),\n onClick,\n onKeyDown,\n style: {\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...(backdropProps == null ? void 0 : backdropProps.style)\n }\n });\n const Component = typeof backdrop !== \"boolean\" ? backdrop || \"div\" : \"div\";\n return /*#__PURE__*/jsx(Component, { ...props,\n \"data-backdrop\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n children: children\n });\n} // We don't need to walk through certain tags.\n\n\nconst ignoreTags = [\"SCRIPT\", \"STYLE\"];\n\nfunction isValidElement(element, ignoredElements) {\n if (ignoreTags.includes(element.tagName)) return false;\n return !ignoredElements.some(enabledElement => enabledElement && contains(element, enabledElement));\n}\n\nfunction walkTreeOutside(elements, callback) {\n for (let element of elements) {\n const document = getDocument(element); // Loops through the parent elements and then through each of their\n // children.\n\n while ((_element = element) != null && _element.parentElement && element !== document.body) {\n var _element;\n\n for (const child of element.parentElement.children) {\n if (isValidElement(child, elements)) {\n callback(child);\n }\n }\n\n element = element.parentElement;\n }\n }\n}\n\nfunction disableElement$1(element) {\n const previousAriaHidden = element.getAttribute(\"aria-hidden\") || \"\";\n element.setAttribute(\"aria-hidden\", \"true\");\n\n const enableElement = () => {\n if (previousAriaHidden) {\n element.setAttribute(\"aria-hidden\", previousAriaHidden);\n } else {\n element.removeAttribute(\"aria-hidden\");\n }\n };\n\n return enableElement;\n}\n\nfunction disableAccessibilityTreeOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement$1(element));\n });\n\n const restoreAccessibilityTree = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restoreAccessibilityTree;\n}\n\nfunction disableElement(element) {\n if (!(\"style\" in element)) return noop;\n const previousPointerEvents = element.style.pointerEvents;\n element.style.pointerEvents = \"none\";\n\n const enableElement = () => {\n element.style.pointerEvents = previousPointerEvents != null ? previousPointerEvents : \"\";\n };\n\n return enableElement;\n}\n\nfunction disablePointerEventsOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement(element));\n });\n\n const restorePointerEvents = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restorePointerEvents;\n}\n\nfunction prependHiddenDismiss(container, onClick) {\n const document = getDocument(container);\n const button = document.createElement(\"button\");\n button.type = \"button\";\n button.tabIndex = -1;\n button.textContent = \"Dismiss popup\"; // Visually hidden styles\n\n button.style.border = \"0px\";\n button.style.clip = \"rect(0 0 0 0)\";\n button.style.height = \"1px\";\n button.style.margin = \"-1px\";\n button.style.overflow = \"hidden\";\n button.style.padding = \"0px\";\n button.style.position = \"absolute\";\n button.style.whiteSpace = \"nowrap\";\n button.style.width = \"1px\";\n button.addEventListener(\"click\", onClick);\n container.prepend(button);\n\n const removeHiddenDismiss = () => {\n button.removeEventListener(\"click\", onClick);\n button.remove();\n };\n\n return removeHiddenDismiss;\n}\n/**\n * Controls which dialog is the champion that will control global behavior such\n * as body scrolling and accessibility tree outside.\n */\n\n\nfunction useChampionDialog(dialogRef, attribute, enabled) {\n const [updated, retry] = useForceUpdate();\n const isChampionDialog = useCallback(() => {\n if (!enabled) return false;\n const dialog = dialogRef.current;\n if (!dialog) return false;\n const {\n body\n } = getDocument(dialog);\n const id = body.getAttribute(attribute);\n return !id || id === dialog.id;\n }, [updated, enabled, attribute]);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!enabled) return;\n const {\n body\n } = getDocument(dialog);\n\n if (!isChampionDialog()) {\n const observer = new MutationObserver(() => flushSync(retry));\n observer.observe(body, {\n attributeFilter: [attribute]\n });\n return () => observer.disconnect();\n }\n\n body.setAttribute(attribute, dialog.id);\n return () => {\n body.removeAttribute(attribute);\n };\n }, [updated, dialogRef, enabled, isChampionDialog, attribute]);\n return isChampionDialog;\n}\n/**\n * When the focused child gets removed from the DOM, we make sure to move focus\n * to the dialog.\n */\n\n\nfunction useFocusOnChildUnmount(dialogRef, state) {\n useEffect(() => {\n if (!state.open) return;\n const dialog = dialogRef.current;\n if (!dialog) return;\n const observer = new MutationObserver(_ref => {\n let [mutation] = _ref;\n if (!mutation) return; // If target is not dialog, then this observer was triggered by a nested\n // dialog, so we just ignore it here and let the nested dialog handle it.\n\n if (mutation.target !== dialog) return;\n const document = getDocument(dialog);\n const activeElement = getActiveElement(dialog); // We can check if the current focused element is the document body.\n\n if (activeElement === document.body) {\n dialog.focus();\n }\n });\n observer.observe(dialog, {\n childList: true,\n subtree: true\n });\n return () => observer.disconnect();\n }, [state.open, dialogRef]);\n}\n\nfunction isInDocument(target) {\n if (target.tagName === \"HTML\") return true;\n return contains(getDocument(target).body, target);\n}\n\nfunction isDisclosure(disclosure, target) {\n if (contains(disclosure, target)) return true;\n const activeId = target.getAttribute(\"aria-activedescendant\");\n\n if (activeId) {\n const activeElement = getDocument(disclosure).getElementById(activeId);\n\n if (activeElement) {\n return contains(disclosure, activeElement);\n }\n }\n\n return false;\n}\n\nfunction isBackdrop$1(dialog, target) {\n if (!dialog) return false;\n if (!target) return false;\n return target.hasAttribute(\"data-backdrop\") && target.getAttribute(\"data-backdrop\") === dialog.id;\n}\n\nfunction dialogContains(target) {\n return dialogRef => {\n const dialog = dialogRef.current;\n if (!dialog) return false;\n if (contains(dialog, target)) return true;\n if (isBackdrop$1(dialog, target)) return true;\n return false;\n };\n}\n\nfunction useEventOutside(_ref) {\n let {\n type,\n listener,\n dialogRef,\n nestedDialogs,\n disclosureRef,\n enabled,\n capture\n } = _ref;\n const callListener = useEvent(listener);\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n useEffect(() => {\n if (!enabled) return;\n\n const onEvent = event => {\n const container = dialogRef.current;\n const disclosure = disclosureRef == null ? void 0 : disclosureRef.current;\n const target = event.target;\n if (!container) return;\n if (!target) return; // When an element is unmounted right after it receives focus, the focus\n // event is triggered after that, when the element isn't part of the\n // current document anymore. We just ignore it.\n\n if (!isInDocument(target)) return; // Event inside dialog\n\n if (contains(container, target)) return; // Event on disclosure\n\n if (disclosure && isDisclosure(disclosure, target)) return; // Event on focus trap\n\n if (target.hasAttribute(\"data-focus-trap\")) return; // Event inside a nested dialog\n\n if (nestedDialogsRef.current.some(dialogContains(target))) return;\n callListener(event);\n };\n\n return addGlobalEventListener(type, onEvent, capture);\n }, [enabled, dialogRef, disclosureRef, callListener, capture]);\n}\n\nfunction shouldHideOnInteractOutside(hideOnInteractOutside, event) {\n if (typeof hideOnInteractOutside === \"function\") {\n return hideOnInteractOutside(event);\n }\n\n return !!hideOnInteractOutside;\n}\n\nfunction useHideOnInteractOutside(dialogRef, nestedDialogs, _ref2) {\n let {\n state,\n modal,\n hideOnInteractOutside,\n enabled = state.open\n } = _ref2;\n const previousMouseDownRef = usePreviousMouseDownRef(enabled);\n const props = {\n disclosureRef: state.disclosureRef,\n enabled,\n dialogRef,\n nestedDialogs,\n capture: true\n };\n useEventOutside({ ...props,\n type: \"mousedown\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (modal && !shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n // If the dialog is modal and the user clicked outside the dialog, but\n // shouldHideOnInteractOutside is false, we don't hide the dialog, but\n // ensure focus is placed on it. Otherwise the focus might end up on an\n // element outside of the dialog or the body element itself.\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n });\n useEventOutside({ ...props,\n type: \"click\",\n listener: event => {\n const previousMouseDown = previousMouseDownRef.current; // If there's no previously mousedown'd element, this probably means that\n // the dialog opened with a mousedown event, and a subsequent click event\n // was dispatched outside of the dialog. See form-select example. We just\n // ignore this.\n\n if (!previousMouseDown) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const dialog = dialogRef.current;\n const draggingFromDialog = dialog && contains(dialog, previousMouseDown); // This prevents the dialog from closing by dragging the cursor (for\n // example, selecting some text inside the dialog and releasing the mouse\n // outside of it). See https://github.com/ariakit/ariakit/issues/1336\n\n if (draggingFromDialog) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"focusin\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n } // Fix for https://github.com/ariakit/ariakit/issues/619\n\n\n if (event.target === getDocument(dialog)) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"contextmenu\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n state.hide();\n }\n });\n}\n\nconst NestedDialogsContext = /*#__PURE__*/createContext({});\n/**\n * Handles nested dialogs.\n */\n\nfunction useNestedDialogs(dialogRef, _ref) {\n let {\n state,\n modal\n } = _ref;\n const context = useContext(NestedDialogsContext);\n const [openModals, setOpenModals] = useState([]);\n const [nestedDialogs, setNestedDialogs] = useState([]);\n const addDialog = useCallback(ref => {\n const removeFromContext = context.addDialog == null ? void 0 : context.addDialog(ref);\n setNestedDialogs(dialogs => [...dialogs, ref]);\n return () => {\n removeFromContext == null ? void 0 : removeFromContext();\n setNestedDialogs(dialogs => dialogs.filter(dialog => dialog !== ref));\n };\n }, [context.addDialog]);\n const showModal = useCallback(ref => {\n const hideModal = context.showModal == null ? void 0 : context.showModal(ref);\n setOpenModals(modals => [...modals, ref]);\n return () => {\n hideModal == null ? void 0 : hideModal();\n setOpenModals(modals => modals.filter(modal => modal !== ref));\n };\n }, [context.showModal]); // If this is a nested dialog, add it to the context.\n\n useSafeLayoutEffect(() => {\n return context.addDialog == null ? void 0 : context.addDialog(dialogRef);\n }, [context.addDialog, dialogRef]);\n useSafeLayoutEffect(() => {\n if (!modal) return;\n if (!state.open) return;\n return context.showModal == null ? void 0 : context.showModal(dialogRef);\n }, [modal, state.open, context.showModal, dialogRef]); // Close all nested dialogs when parent dialog closes.\n\n useSafeLayoutEffect(() => {\n if (context.open === false && state.open) {\n state.hide();\n }\n }, [context.open, state.open, state.hide]); // Provider\n\n const providerValue = useMemo(() => ({\n open: state.open,\n addDialog,\n showModal\n }), [state.open, addDialog, showModal]);\n const wrapElement = useCallback(element => /*#__PURE__*/jsx(NestedDialogsContext.Provider, {\n value: providerValue,\n children: element\n }), [providerValue]);\n return {\n nestedDialogs,\n openModals,\n wrapElement\n };\n} // Based on https://github.com/floating-ui/floating-ui/blob/1201e72e67a80e479122293d46d96c9bbc8f156d/packages/react-dom-interactions/src/FloatingOverlay.tsx\n\n\nfunction assignStyle(element, style) {\n if (!element) return () => {};\n const previousStyle = element.style.cssText;\n Object.assign(element.style, style);\n return () => {\n element.style.cssText = previousStyle;\n };\n}\n\nfunction setCSSProperty(element, property, value) {\n if (!element) return () => {};\n const previousValue = element.style.getPropertyValue(property);\n element.style.setProperty(property, value);\n return () => {\n if (previousValue) {\n element.style.setProperty(property, previousValue);\n } else {\n element.style.removeProperty(property);\n }\n };\n}\n\nfunction getPaddingProperty(documentElement) {\n // RTL scrollbar\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\n\nfunction usePreventBodyScroll(dialogRef, enabled) {\n const isChampionDialog = useChampionDialog(dialogRef, \"data-dialog-body-scroll\", enabled);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!isChampionDialog()) return;\n const doc = getDocument(dialog);\n const win = getWindow(dialog);\n const {\n documentElement,\n body\n } = doc;\n const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n\n const setScrollbarWidthProperty = () => setCSSProperty(documentElement, \"--scrollbar-width\", scrollbarWidth + \"px\");\n\n const paddingProperty = getPaddingProperty(documentElement);\n\n const setStyle = () => assignStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: scrollbarWidth + \"px\"\n }); // Only iOS doesn't respect `overflow: hidden` on document.body\n\n\n const setIOSStyle = () => {\n var _visualViewport$offse, _visualViewport$offse2;\n\n const {\n scrollX,\n scrollY,\n visualViewport\n } = win; // iOS 12 does not support `visuaViewport`.\n\n const offsetLeft = (_visualViewport$offse = visualViewport == null ? void 0 : visualViewport.offsetLeft) != null ? _visualViewport$offse : 0;\n const offsetTop = (_visualViewport$offse2 = visualViewport == null ? void 0 : visualViewport.offsetTop) != null ? _visualViewport$offse2 : 0;\n const restoreStyle = assignStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: \"0\",\n [paddingProperty]: scrollbarWidth + \"px\"\n });\n return () => {\n restoreStyle(); // istanbul ignore next: JSDOM doesn't implement window.scrollTo\n\n if (process.env.NODE_ENV !== \"test\") {\n win.scrollTo(scrollX, scrollY);\n }\n };\n };\n\n const isIOS = isApple() && !isMac();\n return chain(setScrollbarWidthProperty(), isIOS ? setIOSStyle() : setStyle());\n }, [dialogRef, isChampionDialog]);\n}\n\nconst isSafariBrowser = isSafari();\n\nfunction isBackdrop(dialog, element) {\n const id = dialog.id;\n if (!id) return;\n return element.getAttribute(\"data-backdrop\") === id;\n}\n\nfunction isInDialog(element) {\n return dialogRef => dialogRef.current && contains(dialogRef.current, element);\n}\n\nfunction isAlreadyFocusingAnotherElement(dialog, nestedDialogs) {\n const activeElement = getActiveElement();\n if (!activeElement) return false;\n if (contains(dialog, activeElement)) return false;\n if (isBackdrop(dialog, activeElement)) return false;\n if (nestedDialogs != null && nestedDialogs.some(isInDialog(activeElement))) return false;\n if (isFocusable(activeElement)) return true;\n return false;\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialog({ state });\n * Dialog\n * ```\n */\n\n\nconst useDialog = createHook(_ref => {\n let {\n state,\n focusable = true,\n modal = true,\n portal = !!modal,\n backdrop = !!modal,\n backdropProps,\n hideOnEscape = true,\n hideOnInteractOutside = true,\n preventBodyScroll = !!modal,\n autoFocusOnShow = true,\n autoFocusOnHide = true,\n initialFocusRef,\n finalFocusRef,\n ...props\n } = _ref;\n const ref = useRef(null);\n const openRef = useRef(state.open); // domReady can be also the portal node element so it's updated when the\n // portal node changes (like in between re-renders), triggering effects\n // again.\n\n const {\n portalRef,\n portalNode,\n domReady\n } = usePortalRef(portal, props.portalRef); // Sets preserveTabOrder to true only if the dialog is not a modal and is\n // open.\n\n const preserveTabOrder = props.preserveTabOrder && !modal && state.mounted;\n const openStable = state.open && !state.animating; // Usually, we only want to disable the accessibility tree outside if the\n // dialog is a modal. But the Portal component can't preserve the tab order\n // on Safari/VoiceOver. By allowing only the dialog/portal to be accessible,\n // we provide a similar tab order flow. We don't need to disable pointer\n // events because it's just for screen readers.\n\n const shouldDisableAccessibilityTree = modal || portal && preserveTabOrder && isSafari();\n const id = useId(props.id); // Sets disclosure ref. It needs to be a layout effect so we get the focused\n // element right before the dialog is mounted.\n\n useSafeLayoutEffect(() => {\n if (!openStable) return;\n const dialog = ref.current;\n const activeElement = getActiveElement(dialog, true);\n if (!activeElement) return;\n if (activeElement.tagName === \"BODY\") return; // The disclosure element can't be inside the dialog.\n\n if (dialog && contains(dialog, activeElement)) return;\n state.disclosureRef.current = activeElement;\n }, [openStable]);\n const nested = useNestedDialogs(ref, {\n state,\n modal\n });\n const {\n nestedDialogs,\n openModals,\n wrapElement\n } = nested;\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n usePreventBodyScroll(ref, preventBodyScroll && state.mounted); // When a focused child element is removed, focus will be placed on the\n // document's body. This will focus on the dialog instead.\n\n useFocusOnChildUnmount(ref, state);\n useHideOnInteractOutside(ref, nestedDialogs, {\n state,\n modal,\n hideOnInteractOutside,\n enabled: state.open\n }); // Safari does not focus on native buttons on mousedown. The\n // DialogDisclosure component normalizes this behavior using the\n // useFocusable hook, but the disclosure button may use a custom component,\n // and not DialogDisclosure. In this case, we need to make sure the\n // disclosure button gets focused here.\n\n if (isSafariBrowser) {\n useEffect(() => {\n if (!state.mounted) return;\n const disclosure = state.disclosureRef.current;\n if (!disclosure) return;\n if (!isButton(disclosure)) return;\n\n const onMouseDown = () => {\n let receivedFocus = false;\n\n const onFocus = () => {\n receivedFocus = true;\n };\n\n const options = {\n capture: true,\n once: true\n };\n disclosure.addEventListener(\"focusin\", onFocus, options);\n queueBeforeEvent(disclosure, \"mouseup\", () => {\n disclosure.removeEventListener(\"focusin\", onFocus, true);\n if (receivedFocus) return;\n focusIfNeeded(disclosure);\n });\n };\n\n disclosure.addEventListener(\"mousedown\", onMouseDown);\n return () => {\n disclosure.removeEventListener(\"mousedown\", onMouseDown);\n };\n }, [state.mounted, state.disclosureRef]);\n } // Renders a hidden dismiss button at the top of the modal dialog element.\n // So that screen reader users aren't trapped in the dialog when there's no\n // visible dismiss button.\n\n\n useEffect(() => {\n if (!state.mounted) return;\n if (!domReady) return;\n const dialog = ref.current;\n if (!dialog) return; // Usually, we only want to force the presence of a dismiss button if the\n // dialog is a modal. But, on Safari, since we're disabling the\n // accessibility tree outside, we need to ensure the user will be able to\n // close the dialog.\n\n if (shouldDisableAccessibilityTree) {\n // If there's already a DialogDismiss component, it does nothing.\n const existingDismiss = dialog.querySelector(\"[data-dialog-dismiss]\");\n if (existingDismiss) return;\n return prependHiddenDismiss(dialog, state.hide);\n }\n\n return;\n }, [state.mounted, domReady, shouldDisableAccessibilityTree, state.hide]);\n const shouldDisableOutside = useChampionDialog(ref, \"data-dialog-disable-outside\", openStable && !openModals.length && shouldDisableAccessibilityTree); // Disables/enables the element tree around the modal dialog element.\n\n useSafeLayoutEffect(() => {\n // When the dialog is animating, we immediately restore the element tree\n // outside. This means the element tree will be enabled when the focus is\n // moved back to the disclosure element.\n if (!shouldDisableOutside()) return; // If portal is enabled, we get the portalNode instead of the dialog\n // element. This will consider nested dialogs as they will be children of\n // the portal node, but not the dialog. This also accounts for the tiny\n // delay before the dialog element is appended to the portal node, and the\n // portal node is added to the DOM.\n\n const element = portal ? portalNode : ref.current;\n\n if (modal) {\n return chain(disableAccessibilityTreeOutside(element), // When the backdrop is not visible, we also need to disable pointer\n // events outside of the modal dialog.\n !backdrop ? disablePointerEventsOutside(element) : null);\n }\n\n return disableAccessibilityTreeOutside(element);\n }, [shouldDisableOutside, portal, portalNode, modal, backdrop]);\n const prevInitialFocusRef = useRef();\n const mayAutoFocusOnShow = !!autoFocusOnShow;\n const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow); // Auto focus on show.\n\n useEffect(() => {\n var _nestedDialogsRef$cur;\n\n if (!openStable) return;\n if (!mayAutoFocusOnShow) return; // Makes sure to wait for the portalNode to be created before moving\n // focus. This is useful for when the Dialog component is unmounted\n // when hidden.\n\n if (!domReady) return; // If there are open nested dialogs, let them handle the focus.\n\n const hasNestedOpenDialog = (_nestedDialogsRef$cur = nestedDialogsRef.current) == null ? void 0 : _nestedDialogsRef$cur.some(child => child.current && !child.current.hidden);\n if (hasNestedOpenDialog) return; // The dialog element may change for different reasons. For example, when\n // the `modal`, `portal` or `backdrop` props change, the HTML structure\n // will also change, which will affect the dialog element reference.\n // That's why we're listening to `state.contentElement` here instead of\n // getting the `ref.current` value. This ensures this effect will re-run\n // when the dialog element reference changes.\n\n const dialog = state.contentElement;\n if (!(dialog != null && dialog.isConnected)) return;\n const initialFocus = initialFocusRef == null ? void 0 : initialFocusRef.current;\n const element = initialFocus || // We have to fallback to the first focusable element otherwise portaled\n // dialogs with preserveTabOrder set to true will not receive focus\n // properly because the elements aren't tabbable until the dialog\n // receives focus.\n getFirstTabbableIn(dialog, true, portal && preserveTabOrder) || dialog;\n const prevInitialFocus = prevInitialFocusRef.current;\n prevInitialFocusRef.current = initialFocus; // If the initial focus is the same as the previous initial focus and\n // there's already an element with focus inside the dialog, we don't\n // change focus here.\n\n if (initialFocus === prevInitialFocus) {\n const activeElement = getActiveElement(dialog, true);\n if (activeElement && contains(dialog, activeElement)) return;\n }\n\n if (!autoFocusOnShowProp(element)) return;\n element.focus();\n }, [openStable, mayAutoFocusOnShow, domReady, state.contentElement, initialFocusRef, portal, preserveTabOrder, autoFocusOnShowProp]);\n const mayAutoFocusOnHide = !!autoFocusOnHide;\n const autoFocusOnHideProp = useBooleanEvent(autoFocusOnHide); // Auto focus on hide.\n\n useEffect(() => {\n const dialog = ref.current;\n const prevOpen = openRef.current;\n openRef.current = state.open; // We only want to auto focus on hide if the dialog was open before.\n\n if (!prevOpen) return;\n if (!mayAutoFocusOnHide) return;\n if (!dialog) return; // A function so we can use it on the effect setup and cleanup phases.\n\n const focusOnHide = () => {\n const dialogs = nestedDialogsRef.current; // Hide was triggered by a click/focus on a tabbable element outside\n // the dialog or on another dialog. We won't change focus then.\n\n if (isAlreadyFocusingAnotherElement(dialog, dialogs)) return;\n let element = (finalFocusRef == null ? void 0 : finalFocusRef.current) || state.disclosureRef.current;\n\n if (element) {\n if (element.id) {\n const doc = getDocument(element);\n const selector = \"[aria-activedescendant=\\\"\" + element.id + \"\\\"]\";\n const composite = doc.querySelector(selector); // If the element is an item in a composite widget that handles\n // focus with the `aria-activedescendant` attribute, we want to\n // focus on the composite element itself.\n\n if (composite) {\n element = composite;\n }\n } // If the element is not focusable by the time the dialog is hidden,\n // it's probably because it's an element inside another popover or\n // menu that also got hidden when this dialog was shown. We'll try to\n // focus on their disclosure element instead.\n\n\n if (!isFocusable(element)) {\n const parentDialog = closest(element, \"[data-dialog]\");\n\n if (parentDialog && parentDialog.id) {\n const doc = getDocument(parentDialog);\n const selector = \"[aria-controls~=\\\"\" + parentDialog.id + \"\\\"]\";\n const control = doc.querySelector(selector);\n\n if (control) {\n element = control;\n }\n }\n }\n\n if (!autoFocusOnHideProp(element)) return;\n element.focus();\n }\n };\n\n if (!state.open) {\n // If this effect is running while state.open is false, this means\n // that the Dialog component doesn't get unmounted when it's not\n // open, so we can immediatelly move focus.\n return focusOnHide();\n } // Otherwise, we just return the focusOnHide function so it's going to\n // be executed when the Dialog component gets unmounted. This is useful\n // so we can support both mounting and unmounting Dialog components.\n\n\n return focusOnHide;\n }, [mayAutoFocusOnHide, state.open, finalFocusRef, state.disclosureRef, autoFocusOnHideProp]);\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // Hide on Escape.\n\n useEffect(() => {\n if (!domReady) return;\n if (!state.mounted) return;\n\n const onKeyDown = event => {\n const dialog = ref.current;\n if (!dialog) return;\n const target = event.target;\n const disclosure = state.disclosureRef.current;\n if (event.key !== \"Escape\") return;\n if (event.defaultPrevented) return;\n if (!target) return; // This considers valid targets only the disclosure element or\n // descendants of the dialog element that are not descendants of nested\n // dialogs.\n\n const isValidTarget = () => {\n if (contains(dialog, target)) {\n const dialogs = nestedDialogsRef.current; // Since this is a native DOM event, it won't be triggered by\n // keystrokes on nested dialogs inside portals. But we still need to\n // check if the target is inside a nested non-portal dialog.\n\n const inNestedDialog = dialogs.some(isInDialog(target));\n if (inNestedDialog) return false;\n return true;\n }\n\n if (disclosure && contains(disclosure, target)) return true;\n return false;\n };\n\n if (isValidTarget() && hideOnEscapeProp(event)) {\n state.hide();\n }\n }; // We're attatching the listener to the document instead of the dialog\n // element so we can also listen to keystrokes on the disclosure element.\n // We can't do this on a onKeyDown prop on the disclosure element because\n // we don't have access to the hideOnEscape prop there.\n\n\n return addGlobalEventListener(\"keydown\", onKeyDown);\n }, [domReady, state.mounted, state.disclosureRef, hideOnEscapeProp, state.hide]); // Wraps the element with the nested dialog context.\n\n props = useWrapElement(props, wrapElement, [wrapElement]); // Resets the heading levels inside the modal dialog so they start with h1.\n\n props = useWrapElement(props, element => /*#__PURE__*/jsx(HeadingLevel, {\n level: modal ? 1 : undefined,\n children: element\n }), [modal]); // Focus traps.\n\n props = useFocusTrapRegion({ ...props,\n enabled: state.open && modal && !openModals.length\n });\n const hiddenProp = props.hidden; // Wraps the dialog with a backdrop element if the backdrop prop is truthy.\n\n props = useWrapElement(props, element => {\n if (backdrop) {\n return /*#__PURE__*/jsx(DialogBackdrop, {\n state: state,\n backdrop: backdrop,\n backdropProps: backdropProps,\n hideOnInteractOutside: hideOnInteractOutside,\n hideOnEscape: hideOnEscape,\n hidden: hiddenProp,\n children: element\n });\n }\n\n return element;\n }, [state, backdrop, backdropProps, hideOnInteractOutside, hideOnEscape, hiddenProp]);\n const [headingId, setHeadingId] = useState();\n const [descriptionId, setDescriptionId] = useState();\n props = useWrapElement(props, element => /*#__PURE__*/jsx(DialogContext.Provider, {\n value: state,\n children: /*#__PURE__*/jsx(DialogHeadingContext.Provider, {\n value: setHeadingId,\n children: /*#__PURE__*/jsx(DialogDescriptionContext.Provider, {\n value: setDescriptionId,\n children: element\n })\n })\n }), [state]);\n props = {\n id,\n \"data-dialog\": \"\",\n role: \"dialog\",\n tabIndex: focusable ? -1 : undefined,\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n ...props,\n ref: useForkRef(ref, props.ref)\n };\n props = useDisclosureContent({\n state,\n ...props\n });\n props = useFocusable({ ...props,\n focusable\n });\n props = usePortal({\n portal,\n ...props,\n portalRef,\n preserveTabOrder\n });\n return props;\n});\n/**\n * A component that renders a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * \n * Dialog\n * ```\n */\n\nconst Dialog = createComponent(props => {\n const htmlProps = useDialog(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Dialog.displayName = \"Dialog\";\n}\n\nexport { Dialog, useDialog };","import { useRef, useState } from 'react';\nimport { useSafeLayoutEffect, useEvent, useBooleanEvent, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useButton } from '../button/button.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosure({ state });\n * Disclosure\n * Content\n * ```\n */\n\nconst useDisclosure = createHook(_ref => {\n var _state$contentElement;\n\n let {\n state,\n toggleOnClick = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const [expanded, setExpanded] = useState(false); // Assigns the disclosureRef whenever it's undefined or disconnected from\n // the DOM. If this disclosure element is the disclosureRef, this element\n // will get the `aria-expanded` attribute set to `true` when the disclosure\n // content is open.\n\n useSafeLayoutEffect(() => {\n const currentDisclosure = state.disclosureRef.current;\n\n if (!currentDisclosure || !currentDisclosure.isConnected) {\n state.disclosureRef.current = ref.current;\n }\n\n const isCurrentDisclosure = state.disclosureRef.current === ref.current;\n setExpanded(state.open && isCurrentDisclosure);\n }, [state.disclosureRef, state.open]);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n });\n const onClickProp = props.onClick;\n const toggleOnClickProp = useBooleanEvent(toggleOnClick);\n const isDuplicate = (\"data-disclosure\" in props);\n const onClick = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (!toggleOnClickProp(event)) return;\n state.toggle();\n });\n props = {\n \"data-disclosure\": \"\",\n \"aria-expanded\": expanded,\n \"aria-controls\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n ...props,\n ref: useForkRef(ref, props.ref),\n onMouseDown,\n onClick\n };\n props = useButton(props);\n return props;\n});\n/**\n * A component that renders an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure\n * Content\n * ```\n */\n\nconst Disclosure = createComponent(props => {\n const htmlProps = useDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Disclosure.displayName = \"Disclosure\";\n}\n\nexport { Disclosure, useDisclosure };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosure } from '../disclosure/disclosure.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialogDisclosure({ state });\n * Disclosure\n * Content\n * ```\n */\n\nconst useDialogDisclosure = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n props = useDisclosure({\n state,\n ...props\n });\n return props;\n});\n/**\n * A component that renders a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Disclosure\n * Content\n * ```\n */\n\nconst DialogDisclosure = createComponent(props => {\n const htmlProps = useDialogDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogDisclosure.displayName = \"DialogDisclosure\";\n}\n\nexport { DialogDisclosure, useDialogDisclosure };","import React from 'react'\r\nimport { useStaticQuery, graphql, Link, withPrefix } from 'gatsby'\r\nimport styled from '@xstyled/styled-components'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\n\r\nconst SideNavQuery = graphql`\r\n query SideNavQuery {\r\n allMdx(filter: { fields: { pageType: { eq: \"doc\" }, title: { ne: \"\" } } }) {\r\n edges {\r\n node {\r\n id\r\n fields {\r\n title\r\n pageType\r\n section\r\n order\r\n slug\r\n }\r\n }\r\n }\r\n }\r\n\r\n site {\r\n siteMetadata {\r\n sections\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst createOrFindGroup = (name, groups) => {\r\n const existingGroup = groups.find((group) => group.name === name)\r\n if (existingGroup) return existingGroup\r\n\r\n const group = { name, nodes: [] }\r\n groups.push(group)\r\n return group\r\n}\r\n\r\nconst DEFAULT_ORDER_VALUE = -9999\r\n\r\nconst sortNodes = (a, b) => {\r\n const diff =\r\n a.fields.order !== DEFAULT_ORDER_VALUE &&\r\n b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? a.fields.order - b.fields.order\r\n : a.fields.order !== DEFAULT_ORDER_VALUE\r\n ? -1\r\n : b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? 1\r\n : a.fields.title.localeCompare(b.fields.title)\r\n return diff === 0 ? 0 : diff > 0 ? 1 : -1\r\n}\r\n\r\nconst groupNodes = (nodes) =>\r\n nodes.reduce((groups, node) => {\r\n if (!node.fields.title) return groups\r\n const group = createOrFindGroup(node.fields.section || '', groups)\r\n group.nodes.push(node)\r\n group.nodes.sort(sortNodes)\r\n return groups\r\n }, [])\r\n\r\nconst Nav = styled.nav`\r\n padding: 4 3 5;\r\n`\r\n\r\nconst NavGroup = styled.div`\r\n margin-bottom: 4;\r\n`\r\n\r\nconst NavGroupTitle = styled.h4`\r\n font-size: 14;\r\n font-weight: 500;\r\n color: on-background-light;\r\n text-transform: uppercase;\r\n margin: 0 0 3 0;\r\n`\r\n\r\nconst NavGroupMenu = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n border-left: 1;\r\n border-left-color: layout-border;\r\n`\r\n\r\nconst NavGroupMenuItem = styled.li`\r\n list-style-type: none;\r\n margin: 2 0 0 -2px;\r\n padding: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n\r\n a {\r\n color: on-background-light;\r\n display: block;\r\n transition: fast;\r\n transition-property: color, border-color;\r\n padding: 2px 0 2px 2;\r\n border-left: 3;\r\n border-color: transparent;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &:hover {\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n\r\n &[aria-current='page'] {\r\n font-weight: 600;\r\n border-color: primary;\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nconst sortGroupsWithConfig = (section) => (a, b) => {\r\n const indexA = section.indexOf(a.name)\r\n const indexB = section.indexOf(b.name)\r\n const diff = indexA - indexB\r\n return diff === 0 ? 0 : diff < 0 ? -1 : 1\r\n}\r\n\r\nexport function useSideNavState() {\r\n const data = useStaticQuery(SideNavQuery)\r\n return React.useMemo(() => {\r\n const navGroups = groupNodes(data.allMdx.edges.map((edge) => edge.node))\r\n navGroups.sort(sortGroupsWithConfig(data.site.siteMetadata.sections))\r\n return { navGroups }\r\n }, [data])\r\n}\r\n\r\nexport function useSideNavPrevNext({ navGroups }) {\r\n const { pathname } = useLocation()\r\n const nodes = navGroups.flatMap((group) => group.nodes)\r\n const nodeIndex = nodes.findIndex(\r\n (node) => withPrefix(node.fields.slug) === pathname,\r\n )\r\n return {\r\n prev: nodeIndex > -1 ? nodes[nodeIndex - 1] : null,\r\n next: nodeIndex > -1 ? nodes[nodeIndex + 1] : null,\r\n }\r\n}\r\n\r\nexport function SideNav({ navGroups }) {\r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\nimport styled, { th } from '@xstyled/styled-components'\r\n\r\nconst TOP_OFFSET = 100\r\n\r\nfunction getHeaderAnchors() {\r\n return Array.prototype.filter.call(\r\n document.getElementsByClassName('anchor'),\r\n (testElement) =>\r\n testElement.parentNode.nodeName === 'H2' ||\r\n testElement.parentNode.nodeName === 'H3',\r\n )\r\n}\r\n\r\nfunction getHeaderDataFromAnchor(el) {\r\n return {\r\n url: el.getAttribute('href'),\r\n text: el.parentElement?.innerText,\r\n depth: Number(el.parentElement?.nodeName.replace('H', '')),\r\n }\r\n}\r\n\r\nfunction getAnchorHeaderIdentifier(el) {\r\n return el?.parentElement?.id\r\n}\r\n\r\nexport function useTocHighlight(ref) {\r\n const { pathname } = useLocation()\r\n const [lastActiveLink, setLastActiveLink] = React.useState(undefined)\r\n const [headings, setHeadings] = React.useState([])\r\n\r\n React.useEffect(() => {\r\n setHeadings(getHeaderAnchors().map(getHeaderDataFromAnchor))\r\n }, [pathname])\r\n\r\n React.useEffect(() => {\r\n let headersAnchors = []\r\n let links = []\r\n\r\n function setActiveLink() {\r\n function getActiveHeaderAnchor() {\r\n let index = 0\r\n let activeHeaderAnchor = null\r\n\r\n headersAnchors = getHeaderAnchors()\r\n while (index < headersAnchors.length && !activeHeaderAnchor) {\r\n const headerAnchor = headersAnchors[index]\r\n const { top } = headerAnchor.getBoundingClientRect()\r\n\r\n if (top >= 0 && top <= TOP_OFFSET) {\r\n activeHeaderAnchor = headerAnchor\r\n }\r\n\r\n index += 1\r\n }\r\n\r\n return activeHeaderAnchor\r\n }\r\n\r\n const activeHeaderAnchor = getActiveHeaderAnchor()\r\n\r\n if (activeHeaderAnchor) {\r\n let index = 0\r\n let itemHighlighted = false\r\n\r\n links = ref.current ? ref.current.querySelectorAll('a') : []\r\n\r\n while (index < links.length && !itemHighlighted) {\r\n const link = links[index]\r\n const { href } = link\r\n const anchorValue = decodeURIComponent(\r\n href.substring(href.indexOf('#') + 1),\r\n )\r\n\r\n if (getAnchorHeaderIdentifier(activeHeaderAnchor) === anchorValue) {\r\n if (lastActiveLink) {\r\n lastActiveLink.removeAttribute('aria-current')\r\n }\r\n\r\n link.setAttribute('aria-current', 'true')\r\n\r\n setLastActiveLink(link)\r\n itemHighlighted = true\r\n }\r\n\r\n index += 1\r\n }\r\n }\r\n }\r\n\r\n document.addEventListener('scroll', setActiveLink)\r\n document.addEventListener('resize', setActiveLink)\r\n\r\n setActiveLink()\r\n\r\n return () => {\r\n document.removeEventListener('scroll', setActiveLink)\r\n document.removeEventListener('resize', setActiveLink)\r\n }\r\n })\r\n\r\n return headings\r\n}\r\n\r\nconst TocContainer = styled.div`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 5 3 4; // 5 0 4;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n font-size: 15;\r\n\r\n h4 {\r\n margin: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n text-transform: uppercase;\r\n color: on-background-light;\r\n }\r\n\r\n ul {\r\n list-style-type: none;\r\n padding: 0;\r\n\r\n li {\r\n margin: 2 0;\r\n\r\n &[data-depth='3'] {\r\n padding-left: 2;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n display: inline-block;\r\n transition: fast;\r\n color: on-background-light;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &[aria-current] {\r\n font-weight: 500;\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n\r\n &:hover {\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nexport function TableOfContents() {\r\n const ref = React.useRef()\r\n const headings = useTocHighlight(ref)\r\n if (!headings.length) return null\r\n return (\r\n \r\n

On this page

\r\n
    \r\n {headings.map((heading, i) =>\r\n heading.url ? (\r\n
  • \r\n {heading.text}\r\n
  • \r\n ) : null,\r\n )}\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th, useUp } from '@xstyled/styled-components'\r\nimport { useDialogState, Dialog, DialogDisclosure } from 'ariakit/dialog'\r\nimport { Portal } from 'ariakit/portal'\r\nimport { VscChevronUp } from 'react-icons/vsc'\r\nimport { RiPencilLine } from 'react-icons/ri'\r\nimport { ScreenContainer } from '../ScreenContainer'\r\nimport { SideNav, useSideNavState, useSideNavPrevNext } from '../SideNav'\r\nimport { SiblingNav, SiblingNavLink } from '../SiblingNav'\r\nimport { Article } from '../Article'\r\nimport { TableOfContents } from '../TableOfContents'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst SidebarDialog = styled.div`\r\n background-color: background-light-a50;\r\n backdrop-filter: blur(3px);\r\n position: fixed;\r\n top: 50;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 20;\r\n overflow: auto;\r\n transition: base;\r\n opacity: 0;\r\n transition: opacity 250ms ease-in-out, transform 250ms ease-in-out;\r\n transform: translate3d(0, 10vh, 0);\r\n\r\n &[data-enter] {\r\n opacity: 1;\r\n transform: translate3d(0, 0, 0);\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n`\r\n\r\nconst Container = styled.div`\r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: 288px minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: 288px minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst SidebarSticky = styled.aside`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 4 0;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n width: 288px;\r\n\r\n ${down(\r\n 'md',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst MenuButton = styled.button`\r\n appearance: none;\r\n border: 0;\r\n border-radius: 50%;\r\n width: 60;\r\n height: 60;\r\n position: fixed;\r\n right: ${th.size(8)};\r\n bottom: ${th.size(8)};\r\n z-index: 25;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n color: background;\r\n background-color: on-background;\r\n transition: base;\r\n transition-property: color;\r\n\r\n &:focus {\r\n color: background;\r\n }\r\n\r\n > svg {\r\n width: 24;\r\n height: 24;\r\n transition: transform 200ms ease-in-out;\r\n\r\n &:first-child {\r\n transform: translateX(-1px);\r\n }\r\n\r\n &:last-child {\r\n transform: translate(-1px) rotate(180deg);\r\n }\r\n }\r\n\r\n &[aria-expanded='true'] {\r\n > svg:first-child {\r\n transform: translate(-1px, 16px);\r\n }\r\n\r\n > svg:last-child {\r\n transform: translate(-1px, -16px) rotate(180deg);\r\n }\r\n }\r\n`\r\n\r\nfunction MobileSidebar({ children }) {\r\n const dialog = useDialogState({ animated: true })\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction PrevNextLinks(props) {\r\n const { prev, next } = useSideNavPrevNext(props)\r\n if (!prev && !next) return null\r\n return (\r\n \r\n {prev && (\r\n \r\n {prev.fields.title}\r\n \r\n )}\r\n {next && (\r\n \r\n {next.fields.title}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport function DocLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = true;\r\n const upMd = useUp('md')\r\n const sideNav = useSideNavState()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {!upMd && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n {children}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\nimport PostHero from \"../blog/PostHero\";\r\nimport PostTitle from \"../blog/PostTitle\";\r\nimport PostDate from \"../blog/PostDate\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nexport function PostLayout({ children, tableOfContents, ...props }) {\r\n const post = children?.props?.pageContext?.frontmatter || {}\r\n const canonical = post.canonical || ''\r\n // console.log(`PostLayout.js`, `post ${JSON.stringify(post)}`)\r\n return (\r\n \r\n \r\n \r\n
\r\n {/*
*/}\r\n {/*

{post.title}

*/}\r\n {/*

{post.date}

*/}\r\n {/*
*/}\r\n {children}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n)}\r\n`\r\n\r\nexport function PageLayout({ children, tableOfContents, editLink, ...props }) {\r\n console.log(`PageLayout.js`)\r\n return (\r\n \r\n \r\n \r\n
{children}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled from '@xstyled/styled-components'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst HomeMain = styled.main`\r\n background-color: background;\r\n flex: 1;\r\n \r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n`\r\n\r\nexport function HomeLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = false;\r\n props.isHome = children.key === '/';\r\n return \r\n {children}\r\n \r\n}\r\n","import React from 'react'\r\nimport { DocLayout } from './layouts/DocLayout'\r\nimport { PostLayout } from './layouts/PostLayout'\r\nimport {PageLayout} from \"./layouts/PageLayout\";\r\nimport {HomeLayout} from \"./layouts/HomeLayout\";\r\n\r\nexport function PageWrapper({\r\n children,\r\n props: {\r\n data: { mdx },\r\n },\r\n}) {\r\n console.log(`PageWrapper.js ${mdx?.fields?.pageType}`)\r\n if (!mdx?.fields?.pageType) return children\r\n switch (mdx.fields.pageType) {\r\n case 'doc':\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n case 'page':\r\n console.log(\"PageWrapper\", children);\r\n if(children.key === '/') {\r\n return {children}\r\n } else {\r\n return {children}\r\n }\r\n case 'post':\r\n return {children}\r\n default:\r\n return children\r\n }\r\n}\r\n","import React from 'react'\r\nimport { RootWrapper } from './src/components/RootWrapper'\r\nimport { PageWrapper } from './src/components/PageWrapper'\r\n\r\nexport const wrapRootElement = ({ element }) => {\r\n return {element}\r\n}\r\n\r\nexport const wrapPageElement = ({ element, props }) => {\r\n return {element}\r\n}\r\n","import styled, { css, up, down } from '@xstyled/styled-components'\r\n\r\nexport const Article = styled.article`\r\n .anchor {\r\n margin-left: calc(-1em - 4px);\r\n > svg {\r\n fill: on-background;\r\n width: 1em;\r\n height: 1em;\r\n display: inline;\r\n vertical-align: -15%;\r\n }\r\n }\r\n\r\n code {\r\n background-color: background-light;\r\n color: on-background-primary;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n mark {\r\n background-color: background-mark;\r\n }\r\n\r\n > p {\r\n margin: 3 0;\r\n font-size: 16;\r\n line-height: 1.6;\r\n // max-width: 52em;\r\n }\r\n\r\n /* Intro */\r\n > h1 + p {\r\n font-size: 18;\r\n font-weight: 300;\r\n color: on-background-light;\r\n margin: 2 0 !important;\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 22;\r\n line-height: 1.2;\r\n `,\r\n )};\r\n\r\n a,\r\n strong {\r\n font-weight: 400;\r\n }\r\n }\r\n\r\n > hr {\r\n margin: 0;\r\n height: 0;\r\n border: 0;\r\n border-top: 1;\r\n border-color: layout-border;\r\n margin: 4 0;\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n > h1 {\r\n font-size: 32;\r\n line-height: 1.1;\r\n font-weight: 600;\r\n margin: 40 0 2;\r\n }\r\n\r\n > h2 {\r\n font-size: 24;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0;\r\n padding-top: 3;\r\n border-top: 1;\r\n border-color: layout-border;\r\n }\r\n\r\n > h1 + h2,\r\n > h2:first-child {\r\n border-top: 0;\r\n margin-top: 0;\r\n padding-top: 0;\r\n }\r\n\r\n > h3 {\r\n font-size: 18;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0 3;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n overflow-wrap: break-word;\r\n word-break: break-word;\r\n `,\r\n )}\r\n }\r\n\r\n > h4 {\r\n font-weight: 500;\r\n font-size: 16;\r\n line-height: 1.2;\r\n margin: 3 0;\r\n }\r\n\r\n > h4 + p {\r\n margin-top: 3;\r\n }\r\n\r\n > ul + p {\r\n margin-top: 2;\r\n }\r\n\r\n .editor {\r\n background-color: editor-background;\r\n color: editor-text;\r\n padding: 3 4;\r\n margin: 4 -3;\r\n overflow: auto;\r\n font-size: 14;\r\n line-height: 1.45;\r\n border-radius: base;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n margin-left: -4;\r\n margin-right: -4;\r\n border-radius: 0;\r\n `,\r\n )}\r\n }\r\n\r\n > code {\r\n background-color: editor-background;\r\n border-radius: base;\r\n color: inherit;\r\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono,\r\n Courier New, monospace;\r\n font-size: 85%;\r\n padding: 1 2;\r\n }\r\n\r\n img {\r\n max-width: 100%;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-top: 4;\r\n font-size: 16;\r\n padding-left: 4;\r\n\r\n p,\r\n p:first-of-type {\r\n font-size: 16;\r\n margin-top: 0;\r\n line-height: 1.2;\r\n }\r\n\r\n li {\r\n margin-top: 2;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-left: 4;\r\n margin-top: 2;\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n }\r\n\r\n > blockquote {\r\n font-size: 16;\r\n background-color: blockquote-background;\r\n border-left: 8;\r\n border-color: blockquote-border;\r\n padding: 3;\r\n margin: 3 -2;\r\n border-radius: blockquote;\r\n\r\n code {\r\n background-color: rgba(255, 255, 255, 0.1);\r\n background-blend-mode: color;\r\n color: on-background;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n p {\r\n margin-top: 3;\r\n\r\n &:first-of-type {\r\n margin-top: 0;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n color: blockquote-link;\r\n text-decoration: underline;\r\n\r\n &:hover {\r\n color: on-background;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n text-decoration: underline;\r\n color: on-background-primary;\r\n\r\n &:hover {\r\n color: on-background-primary-dark;\r\n }\r\n }\r\n`\r\n","/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\n\n/**\n * prism-react-renderer:\n * This file has been modified to remove:\n * - globals and window dependency\n * - worker support\n * - highlightAll and other element dependent methods\n * - _.hooks helpers\n * - UMD/node-specific hacks\n * It has also been run through prettier\n */\nvar Prism = function () {\n // Private helper vars\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0; // The grammar object for plaintext\n\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&').replace(/} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone =\n /** @type {Record} */\n {};\n visited[id] = clone;\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n\n return (\n /** @type {any} */\n clone\n );\n\n case 'Array':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone = [];\n visited[id] = clone;\n\n /** @type {Array} */\n\n /** @type {any} */\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n\n default:\n return o;\n }\n },\n\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function (element) {\n while (element) {\n var m = lang.exec(element.className);\n\n if (m) {\n return m[1].toLowerCase();\n }\n\n element = element.parentElement;\n }\n\n return 'none';\n },\n\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function (element, language) {\n // remove all `language-xxxx` classes\n // (this might leave behind a leading space)\n element.className = element.className.replace(RegExp(lang, 'gi'), ''); // add the new `language-xxxx` class\n // (using `classList` will automatically clean up spaces for us)\n\n element.classList.add('language-' + language);\n },\n\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function (element, className, defaultActivation) {\n var no = 'no-' + className;\n\n while (element) {\n var classList = element.classList;\n\n if (classList.contains(className)) {\n return true;\n }\n\n if (classList.contains(no)) {\n return false;\n }\n\n element = element.parentElement;\n }\n\n return !!defaultActivation;\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function (id, redef) {\n var lang = _.util.clone(_.languages[id]);\n\n for (var key in redef) {\n lang[key] = redef[key];\n }\n\n return lang;\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.6\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n}(),\n Xe = function (e) {\n var t = r.forwardRef(function (t, n) {\n var o = s(Ge),\n i = e.defaultProps,\n a = Re(t, o, i);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n},\n Ze = function () {\n return s(Ge);\n},\n Ke = {\n StyleSheet: Z,\n masterSheet: he\n};\n\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && \"undefined\" != typeof window && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };","module.exports = new Set([// Non-binary properties:\n'General_Category', 'Script', 'Script_Extensions', // Binary properties:\n'Alphabetic', 'Any', 'ASCII', 'ASCII_Hex_Digit', 'Assigned', 'Bidi_Control', 'Bidi_Mirrored', 'Case_Ignorable', 'Cased', 'Changes_When_Casefolded', 'Changes_When_Casemapped', 'Changes_When_Lowercased', 'Changes_When_NFKC_Casefolded', 'Changes_When_Titlecased', 'Changes_When_Uppercased', 'Dash', 'Default_Ignorable_Code_Point', 'Deprecated', 'Diacritic', 'Emoji', 'Emoji_Component', 'Emoji_Modifier', 'Emoji_Modifier_Base', 'Emoji_Presentation', 'Extended_Pictographic', 'Extender', 'Grapheme_Base', 'Grapheme_Extend', 'Hex_Digit', 'ID_Continue', 'ID_Start', 'Ideographic', 'IDS_Binary_Operator', 'IDS_Trinary_Operator', 'Join_Control', 'Logical_Order_Exception', 'Lowercase', 'Math', 'Noncharacter_Code_Point', 'Pattern_Syntax', 'Pattern_White_Space', 'Quotation_Mark', 'Radical', 'Regional_Indicator', 'Sentence_Terminal', 'Soft_Dotted', 'Terminal_Punctuation', 'Unified_Ideograph', 'Uppercase', 'Variation_Selector', 'White_Space', 'XID_Continue', 'XID_Start']);","'use strict';\n\nconst canonicalProperties = require('unicode-canonical-property-names-ecmascript');\n\nconst propertyAliases = require('unicode-property-aliases-ecmascript');\n\nconst matchProperty = function (property) {\n if (canonicalProperties.has(property)) {\n return property;\n }\n\n if (propertyAliases.has(property)) {\n return propertyAliases.get(property);\n }\n\n throw new Error(\"Unknown property: \".concat(property));\n};\n\nmodule.exports = matchProperty;","module.exports = new Map([['General_Category', new Map([['C', 'Other'], ['Cc', 'Control'], ['cntrl', 'Control'], ['Cf', 'Format'], ['Cn', 'Unassigned'], ['Co', 'Private_Use'], ['Cs', 'Surrogate'], ['L', 'Letter'], ['LC', 'Cased_Letter'], ['Ll', 'Lowercase_Letter'], ['Lm', 'Modifier_Letter'], ['Lo', 'Other_Letter'], ['Lt', 'Titlecase_Letter'], ['Lu', 'Uppercase_Letter'], ['M', 'Mark'], ['Combining_Mark', 'Mark'], ['Mc', 'Spacing_Mark'], ['Me', 'Enclosing_Mark'], ['Mn', 'Nonspacing_Mark'], ['N', 'Number'], ['Nd', 'Decimal_Number'], ['digit', 'Decimal_Number'], ['Nl', 'Letter_Number'], ['No', 'Other_Number'], ['P', 'Punctuation'], ['punct', 'Punctuation'], ['Pc', 'Connector_Punctuation'], ['Pd', 'Dash_Punctuation'], ['Pe', 'Close_Punctuation'], ['Pf', 'Final_Punctuation'], ['Pi', 'Initial_Punctuation'], ['Po', 'Other_Punctuation'], ['Ps', 'Open_Punctuation'], ['S', 'Symbol'], ['Sc', 'Currency_Symbol'], ['Sk', 'Modifier_Symbol'], ['Sm', 'Math_Symbol'], ['So', 'Other_Symbol'], ['Z', 'Separator'], ['Zl', 'Line_Separator'], ['Zp', 'Paragraph_Separator'], ['Zs', 'Space_Separator'], ['Other', 'Other'], ['Control', 'Control'], ['Format', 'Format'], ['Unassigned', 'Unassigned'], ['Private_Use', 'Private_Use'], ['Surrogate', 'Surrogate'], ['Letter', 'Letter'], ['Cased_Letter', 'Cased_Letter'], ['Lowercase_Letter', 'Lowercase_Letter'], ['Modifier_Letter', 'Modifier_Letter'], ['Other_Letter', 'Other_Letter'], ['Titlecase_Letter', 'Titlecase_Letter'], ['Uppercase_Letter', 'Uppercase_Letter'], ['Mark', 'Mark'], ['Spacing_Mark', 'Spacing_Mark'], ['Enclosing_Mark', 'Enclosing_Mark'], ['Nonspacing_Mark', 'Nonspacing_Mark'], ['Number', 'Number'], ['Decimal_Number', 'Decimal_Number'], ['Letter_Number', 'Letter_Number'], ['Other_Number', 'Other_Number'], ['Punctuation', 'Punctuation'], ['Connector_Punctuation', 'Connector_Punctuation'], ['Dash_Punctuation', 'Dash_Punctuation'], ['Close_Punctuation', 'Close_Punctuation'], ['Final_Punctuation', 'Final_Punctuation'], ['Initial_Punctuation', 'Initial_Punctuation'], ['Other_Punctuation', 'Other_Punctuation'], ['Open_Punctuation', 'Open_Punctuation'], ['Symbol', 'Symbol'], ['Currency_Symbol', 'Currency_Symbol'], ['Modifier_Symbol', 'Modifier_Symbol'], ['Math_Symbol', 'Math_Symbol'], ['Other_Symbol', 'Other_Symbol'], ['Separator', 'Separator'], ['Line_Separator', 'Line_Separator'], ['Paragraph_Separator', 'Paragraph_Separator'], ['Space_Separator', 'Space_Separator']])], ['Script', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])], ['Script_Extensions', new Map([['Adlm', 'Adlam'], ['Aghb', 'Caucasian_Albanian'], ['Ahom', 'Ahom'], ['Arab', 'Arabic'], ['Armi', 'Imperial_Aramaic'], ['Armn', 'Armenian'], ['Avst', 'Avestan'], ['Bali', 'Balinese'], ['Bamu', 'Bamum'], ['Bass', 'Bassa_Vah'], ['Batk', 'Batak'], ['Beng', 'Bengali'], ['Bhks', 'Bhaiksuki'], ['Bopo', 'Bopomofo'], ['Brah', 'Brahmi'], ['Brai', 'Braille'], ['Bugi', 'Buginese'], ['Buhd', 'Buhid'], ['Cakm', 'Chakma'], ['Cans', 'Canadian_Aboriginal'], ['Cari', 'Carian'], ['Cham', 'Cham'], ['Cher', 'Cherokee'], ['Chrs', 'Chorasmian'], ['Copt', 'Coptic'], ['Qaac', 'Coptic'], ['Cpmn', 'Cypro_Minoan'], ['Cprt', 'Cypriot'], ['Cyrl', 'Cyrillic'], ['Deva', 'Devanagari'], ['Diak', 'Dives_Akuru'], ['Dogr', 'Dogra'], ['Dsrt', 'Deseret'], ['Dupl', 'Duployan'], ['Egyp', 'Egyptian_Hieroglyphs'], ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], ['Gonm', 'Masaram_Gondi'], ['Goth', 'Gothic'], ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], ['Hano', 'Hanunoo'], ['Hatr', 'Hatran'], ['Hebr', 'Hebrew'], ['Hira', 'Hiragana'], ['Hluw', 'Anatolian_Hieroglyphs'], ['Hmng', 'Pahawh_Hmong'], ['Hmnp', 'Nyiakeng_Puachue_Hmong'], ['Hrkt', 'Katakana_Or_Hiragana'], ['Hung', 'Old_Hungarian'], ['Ital', 'Old_Italic'], ['Java', 'Javanese'], ['Kali', 'Kayah_Li'], ['Kana', 'Katakana'], ['Khar', 'Kharoshthi'], ['Khmr', 'Khmer'], ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], ['Latn', 'Latin'], ['Lepc', 'Lepcha'], ['Limb', 'Limbu'], ['Lina', 'Linear_A'], ['Linb', 'Linear_B'], ['Lisu', 'Lisu'], ['Lyci', 'Lycian'], ['Lydi', 'Lydian'], ['Mahj', 'Mahajani'], ['Maka', 'Makasar'], ['Mand', 'Mandaic'], ['Mani', 'Manichaean'], ['Marc', 'Marchen'], ['Medf', 'Medefaidrin'], ['Mend', 'Mende_Kikakui'], ['Merc', 'Meroitic_Cursive'], ['Mero', 'Meroitic_Hieroglyphs'], ['Mlym', 'Malayalam'], ['Modi', 'Modi'], ['Mong', 'Mongolian'], ['Mroo', 'Mro'], ['Mtei', 'Meetei_Mayek'], ['Mult', 'Multani'], ['Mymr', 'Myanmar'], ['Nand', 'Nandinagari'], ['Narb', 'Old_North_Arabian'], ['Nbat', 'Nabataean'], ['Newa', 'Newa'], ['Nkoo', 'Nko'], ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], ['Osma', 'Osmanya'], ['Ougr', 'Old_Uyghur'], ['Palm', 'Palmyrene'], ['Pauc', 'Pau_Cin_Hau'], ['Perm', 'Old_Permic'], ['Phag', 'Phags_Pa'], ['Phli', 'Inscriptional_Pahlavi'], ['Phlp', 'Psalter_Pahlavi'], ['Phnx', 'Phoenician'], ['Plrd', 'Miao'], ['Prti', 'Inscriptional_Parthian'], ['Rjng', 'Rejang'], ['Rohg', 'Hanifi_Rohingya'], ['Runr', 'Runic'], ['Samr', 'Samaritan'], ['Sarb', 'Old_South_Arabian'], ['Saur', 'Saurashtra'], ['Sgnw', 'SignWriting'], ['Shaw', 'Shavian'], ['Shrd', 'Sharada'], ['Sidd', 'Siddham'], ['Sind', 'Khudawadi'], ['Sinh', 'Sinhala'], ['Sogd', 'Sogdian'], ['Sogo', 'Old_Sogdian'], ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], ['Takr', 'Takri'], ['Tale', 'Tai_Le'], ['Talu', 'New_Tai_Lue'], ['Taml', 'Tamil'], ['Tang', 'Tangut'], ['Tavt', 'Tai_Viet'], ['Telu', 'Telugu'], ['Tfng', 'Tifinagh'], ['Tglg', 'Tagalog'], ['Thaa', 'Thaana'], ['Thai', 'Thai'], ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], ['Toto', 'Toto'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], ['Wara', 'Warang_Citi'], ['Wcho', 'Wancho'], ['Xpeo', 'Old_Persian'], ['Xsux', 'Cuneiform'], ['Yezi', 'Yezidi'], ['Yiii', 'Yi'], ['Zanb', 'Zanabazar_Square'], ['Zinh', 'Inherited'], ['Qaai', 'Inherited'], ['Zyyy', 'Common'], ['Zzzz', 'Unknown'], ['Adlam', 'Adlam'], ['Caucasian_Albanian', 'Caucasian_Albanian'], ['Arabic', 'Arabic'], ['Imperial_Aramaic', 'Imperial_Aramaic'], ['Armenian', 'Armenian'], ['Avestan', 'Avestan'], ['Balinese', 'Balinese'], ['Bamum', 'Bamum'], ['Bassa_Vah', 'Bassa_Vah'], ['Batak', 'Batak'], ['Bengali', 'Bengali'], ['Bhaiksuki', 'Bhaiksuki'], ['Bopomofo', 'Bopomofo'], ['Brahmi', 'Brahmi'], ['Braille', 'Braille'], ['Buginese', 'Buginese'], ['Buhid', 'Buhid'], ['Chakma', 'Chakma'], ['Canadian_Aboriginal', 'Canadian_Aboriginal'], ['Carian', 'Carian'], ['Cherokee', 'Cherokee'], ['Chorasmian', 'Chorasmian'], ['Coptic', 'Coptic'], ['Cypro_Minoan', 'Cypro_Minoan'], ['Cypriot', 'Cypriot'], ['Cyrillic', 'Cyrillic'], ['Devanagari', 'Devanagari'], ['Dives_Akuru', 'Dives_Akuru'], ['Dogra', 'Dogra'], ['Deseret', 'Deseret'], ['Duployan', 'Duployan'], ['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'], ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], ['Masaram_Gondi', 'Masaram_Gondi'], ['Gothic', 'Gothic'], ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], ['Hanunoo', 'Hanunoo'], ['Hatran', 'Hatran'], ['Hebrew', 'Hebrew'], ['Hiragana', 'Hiragana'], ['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'], ['Pahawh_Hmong', 'Pahawh_Hmong'], ['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'], ['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'], ['Old_Hungarian', 'Old_Hungarian'], ['Old_Italic', 'Old_Italic'], ['Javanese', 'Javanese'], ['Kayah_Li', 'Kayah_Li'], ['Katakana', 'Katakana'], ['Kharoshthi', 'Kharoshthi'], ['Khmer', 'Khmer'], ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], ['Latin', 'Latin'], ['Lepcha', 'Lepcha'], ['Limbu', 'Limbu'], ['Linear_A', 'Linear_A'], ['Linear_B', 'Linear_B'], ['Lycian', 'Lycian'], ['Lydian', 'Lydian'], ['Mahajani', 'Mahajani'], ['Makasar', 'Makasar'], ['Mandaic', 'Mandaic'], ['Manichaean', 'Manichaean'], ['Marchen', 'Marchen'], ['Medefaidrin', 'Medefaidrin'], ['Mende_Kikakui', 'Mende_Kikakui'], ['Meroitic_Cursive', 'Meroitic_Cursive'], ['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'], ['Malayalam', 'Malayalam'], ['Mongolian', 'Mongolian'], ['Mro', 'Mro'], ['Meetei_Mayek', 'Meetei_Mayek'], ['Multani', 'Multani'], ['Myanmar', 'Myanmar'], ['Nandinagari', 'Nandinagari'], ['Old_North_Arabian', 'Old_North_Arabian'], ['Nabataean', 'Nabataean'], ['Nko', 'Nko'], ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], ['Osmanya', 'Osmanya'], ['Old_Uyghur', 'Old_Uyghur'], ['Palmyrene', 'Palmyrene'], ['Pau_Cin_Hau', 'Pau_Cin_Hau'], ['Old_Permic', 'Old_Permic'], ['Phags_Pa', 'Phags_Pa'], ['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'], ['Psalter_Pahlavi', 'Psalter_Pahlavi'], ['Phoenician', 'Phoenician'], ['Miao', 'Miao'], ['Inscriptional_Parthian', 'Inscriptional_Parthian'], ['Rejang', 'Rejang'], ['Hanifi_Rohingya', 'Hanifi_Rohingya'], ['Runic', 'Runic'], ['Samaritan', 'Samaritan'], ['Old_South_Arabian', 'Old_South_Arabian'], ['Saurashtra', 'Saurashtra'], ['SignWriting', 'SignWriting'], ['Shavian', 'Shavian'], ['Sharada', 'Sharada'], ['Siddham', 'Siddham'], ['Khudawadi', 'Khudawadi'], ['Sinhala', 'Sinhala'], ['Sogdian', 'Sogdian'], ['Old_Sogdian', 'Old_Sogdian'], ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], ['Takri', 'Takri'], ['Tai_Le', 'Tai_Le'], ['New_Tai_Lue', 'New_Tai_Lue'], ['Tamil', 'Tamil'], ['Tangut', 'Tangut'], ['Tai_Viet', 'Tai_Viet'], ['Telugu', 'Telugu'], ['Tifinagh', 'Tifinagh'], ['Tagalog', 'Tagalog'], ['Thaana', 'Thaana'], ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], ['Warang_Citi', 'Warang_Citi'], ['Wancho', 'Wancho'], ['Old_Persian', 'Old_Persian'], ['Cuneiform', 'Cuneiform'], ['Yezidi', 'Yezidi'], ['Yi', 'Yi'], ['Zanabazar_Square', 'Zanabazar_Square'], ['Inherited', 'Inherited'], ['Common', 'Common'], ['Unknown', 'Unknown']])]]);","'use strict';\n\nconst propertyToValueAliases = require('./data/mappings.js');\n\nconst matchPropertyValue = function (property, value) {\n const aliasToValue = propertyToValueAliases.get(property);\n\n if (!aliasToValue) {\n throw new Error(\"Unknown property `\".concat(property, \"`.\"));\n }\n\n const canonicalValue = aliasToValue.get(value);\n\n if (canonicalValue) {\n return canonicalValue;\n }\n\n throw new Error(\"Unknown value `\".concat(value, \"` for property `\").concat(property, \"`.\"));\n};\n\nmodule.exports = matchPropertyValue;","// Generated using `npm run build`. Do not edit!\nmodule.exports = new Map([['scx', 'Script_Extensions'], ['sc', 'Script'], ['gc', 'General_Category'], ['AHex', 'ASCII_Hex_Digit'], ['Alpha', 'Alphabetic'], ['Bidi_C', 'Bidi_Control'], ['Bidi_M', 'Bidi_Mirrored'], ['Cased', 'Cased'], ['CI', 'Case_Ignorable'], ['CWCF', 'Changes_When_Casefolded'], ['CWCM', 'Changes_When_Casemapped'], ['CWKCF', 'Changes_When_NFKC_Casefolded'], ['CWL', 'Changes_When_Lowercased'], ['CWT', 'Changes_When_Titlecased'], ['CWU', 'Changes_When_Uppercased'], ['Dash', 'Dash'], ['Dep', 'Deprecated'], ['DI', 'Default_Ignorable_Code_Point'], ['Dia', 'Diacritic'], ['EBase', 'Emoji_Modifier_Base'], ['EComp', 'Emoji_Component'], ['EMod', 'Emoji_Modifier'], ['Emoji', 'Emoji'], ['EPres', 'Emoji_Presentation'], ['Ext', 'Extender'], ['ExtPict', 'Extended_Pictographic'], ['Gr_Base', 'Grapheme_Base'], ['Gr_Ext', 'Grapheme_Extend'], ['Hex', 'Hex_Digit'], ['IDC', 'ID_Continue'], ['Ideo', 'Ideographic'], ['IDS', 'ID_Start'], ['IDSB', 'IDS_Binary_Operator'], ['IDST', 'IDS_Trinary_Operator'], ['Join_C', 'Join_Control'], ['LOE', 'Logical_Order_Exception'], ['Lower', 'Lowercase'], ['Math', 'Math'], ['NChar', 'Noncharacter_Code_Point'], ['Pat_Syn', 'Pattern_Syntax'], ['Pat_WS', 'Pattern_White_Space'], ['QMark', 'Quotation_Mark'], ['Radical', 'Radical'], ['RI', 'Regional_Indicator'], ['SD', 'Soft_Dotted'], ['STerm', 'Sentence_Terminal'], ['Term', 'Terminal_Punctuation'], ['UIdeo', 'Unified_Ideograph'], ['Upper', 'Uppercase'], ['VS', 'Variation_Selector'], ['WSpace', 'White_Space'], ['space', 'White_Space'], ['XIDC', 'XID_Continue'], ['XIDS', 'XID_Start']]);","var map = {\n\t\"./Binary_Property/ASCII.js\": 80055,\n\t\"./Binary_Property/ASCII_Hex_Digit.js\": 81731,\n\t\"./Binary_Property/Alphabetic.js\": 75244,\n\t\"./Binary_Property/Any.js\": 25929,\n\t\"./Binary_Property/Assigned.js\": 72573,\n\t\"./Binary_Property/Bidi_Control.js\": 83029,\n\t\"./Binary_Property/Bidi_Mirrored.js\": 50755,\n\t\"./Binary_Property/Case_Ignorable.js\": 86317,\n\t\"./Binary_Property/Cased.js\": 78087,\n\t\"./Binary_Property/Changes_When_Casefolded.js\": 61587,\n\t\"./Binary_Property/Changes_When_Casemapped.js\": 62518,\n\t\"./Binary_Property/Changes_When_Lowercased.js\": 50140,\n\t\"./Binary_Property/Changes_When_NFKC_Casefolded.js\": 97224,\n\t\"./Binary_Property/Changes_When_Titlecased.js\": 40835,\n\t\"./Binary_Property/Changes_When_Uppercased.js\": 95428,\n\t\"./Binary_Property/Dash.js\": 78233,\n\t\"./Binary_Property/Default_Ignorable_Code_Point.js\": 91357,\n\t\"./Binary_Property/Deprecated.js\": 18391,\n\t\"./Binary_Property/Diacritic.js\": 5198,\n\t\"./Binary_Property/Emoji.js\": 42117,\n\t\"./Binary_Property/Emoji_Component.js\": 97581,\n\t\"./Binary_Property/Emoji_Modifier.js\": 39030,\n\t\"./Binary_Property/Emoji_Modifier_Base.js\": 18618,\n\t\"./Binary_Property/Emoji_Presentation.js\": 29702,\n\t\"./Binary_Property/Extended_Pictographic.js\": 5667,\n\t\"./Binary_Property/Extender.js\": 9002,\n\t\"./Binary_Property/Grapheme_Base.js\": 96851,\n\t\"./Binary_Property/Grapheme_Extend.js\": 71054,\n\t\"./Binary_Property/Hex_Digit.js\": 80662,\n\t\"./Binary_Property/IDS_Binary_Operator.js\": 66910,\n\t\"./Binary_Property/IDS_Trinary_Operator.js\": 31548,\n\t\"./Binary_Property/ID_Continue.js\": 97301,\n\t\"./Binary_Property/ID_Start.js\": 47818,\n\t\"./Binary_Property/Ideographic.js\": 82217,\n\t\"./Binary_Property/Join_Control.js\": 15332,\n\t\"./Binary_Property/Logical_Order_Exception.js\": 55780,\n\t\"./Binary_Property/Lowercase.js\": 61091,\n\t\"./Binary_Property/Math.js\": 7146,\n\t\"./Binary_Property/Noncharacter_Code_Point.js\": 51752,\n\t\"./Binary_Property/Pattern_Syntax.js\": 76596,\n\t\"./Binary_Property/Pattern_White_Space.js\": 86436,\n\t\"./Binary_Property/Quotation_Mark.js\": 29467,\n\t\"./Binary_Property/Radical.js\": 68163,\n\t\"./Binary_Property/Regional_Indicator.js\": 16412,\n\t\"./Binary_Property/Sentence_Terminal.js\": 25496,\n\t\"./Binary_Property/Soft_Dotted.js\": 83045,\n\t\"./Binary_Property/Terminal_Punctuation.js\": 20991,\n\t\"./Binary_Property/Unified_Ideograph.js\": 15154,\n\t\"./Binary_Property/Uppercase.js\": 91909,\n\t\"./Binary_Property/Variation_Selector.js\": 64590,\n\t\"./Binary_Property/White_Space.js\": 42886,\n\t\"./Binary_Property/XID_Continue.js\": 83067,\n\t\"./Binary_Property/XID_Start.js\": 86524,\n\t\"./General_Category/Cased_Letter.js\": 94195,\n\t\"./General_Category/Close_Punctuation.js\": 42549,\n\t\"./General_Category/Connector_Punctuation.js\": 72437,\n\t\"./General_Category/Control.js\": 44467,\n\t\"./General_Category/Currency_Symbol.js\": 75431,\n\t\"./General_Category/Dash_Punctuation.js\": 86441,\n\t\"./General_Category/Decimal_Number.js\": 57965,\n\t\"./General_Category/Enclosing_Mark.js\": 89586,\n\t\"./General_Category/Final_Punctuation.js\": 32965,\n\t\"./General_Category/Format.js\": 32277,\n\t\"./General_Category/Initial_Punctuation.js\": 5900,\n\t\"./General_Category/Letter.js\": 63764,\n\t\"./General_Category/Letter_Number.js\": 43043,\n\t\"./General_Category/Line_Separator.js\": 19307,\n\t\"./General_Category/Lowercase_Letter.js\": 45025,\n\t\"./General_Category/Mark.js\": 76197,\n\t\"./General_Category/Math_Symbol.js\": 21803,\n\t\"./General_Category/Modifier_Letter.js\": 31022,\n\t\"./General_Category/Modifier_Symbol.js\": 46858,\n\t\"./General_Category/Nonspacing_Mark.js\": 85948,\n\t\"./General_Category/Number.js\": 78861,\n\t\"./General_Category/Open_Punctuation.js\": 38999,\n\t\"./General_Category/Other.js\": 30567,\n\t\"./General_Category/Other_Letter.js\": 52093,\n\t\"./General_Category/Other_Number.js\": 80180,\n\t\"./General_Category/Other_Punctuation.js\": 72919,\n\t\"./General_Category/Other_Symbol.js\": 57481,\n\t\"./General_Category/Paragraph_Separator.js\": 26400,\n\t\"./General_Category/Private_Use.js\": 55205,\n\t\"./General_Category/Punctuation.js\": 78350,\n\t\"./General_Category/Separator.js\": 66827,\n\t\"./General_Category/Space_Separator.js\": 29909,\n\t\"./General_Category/Spacing_Mark.js\": 67089,\n\t\"./General_Category/Surrogate.js\": 38703,\n\t\"./General_Category/Symbol.js\": 34345,\n\t\"./General_Category/Titlecase_Letter.js\": 87135,\n\t\"./General_Category/Unassigned.js\": 48068,\n\t\"./General_Category/Uppercase_Letter.js\": 54508,\n\t\"./Property_of_Strings/Basic_Emoji.js\": 7134,\n\t\"./Property_of_Strings/Emoji_Keycap_Sequence.js\": 1354,\n\t\"./Property_of_Strings/RGI_Emoji.js\": 64708,\n\t\"./Property_of_Strings/RGI_Emoji_Flag_Sequence.js\": 32530,\n\t\"./Property_of_Strings/RGI_Emoji_Modifier_Sequence.js\": 76685,\n\t\"./Property_of_Strings/RGI_Emoji_Tag_Sequence.js\": 80852,\n\t\"./Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js\": 70523,\n\t\"./Script/Adlam.js\": 67309,\n\t\"./Script/Ahom.js\": 21824,\n\t\"./Script/Anatolian_Hieroglyphs.js\": 44251,\n\t\"./Script/Arabic.js\": 93703,\n\t\"./Script/Armenian.js\": 52003,\n\t\"./Script/Avestan.js\": 91194,\n\t\"./Script/Balinese.js\": 97148,\n\t\"./Script/Bamum.js\": 92508,\n\t\"./Script/Bassa_Vah.js\": 87398,\n\t\"./Script/Batak.js\": 70403,\n\t\"./Script/Bengali.js\": 60285,\n\t\"./Script/Bhaiksuki.js\": 10143,\n\t\"./Script/Bopomofo.js\": 25500,\n\t\"./Script/Brahmi.js\": 69672,\n\t\"./Script/Braille.js\": 67008,\n\t\"./Script/Buginese.js\": 32055,\n\t\"./Script/Buhid.js\": 90141,\n\t\"./Script/Canadian_Aboriginal.js\": 40912,\n\t\"./Script/Carian.js\": 68653,\n\t\"./Script/Caucasian_Albanian.js\": 47231,\n\t\"./Script/Chakma.js\": 38234,\n\t\"./Script/Cham.js\": 29076,\n\t\"./Script/Cherokee.js\": 47242,\n\t\"./Script/Chorasmian.js\": 91466,\n\t\"./Script/Common.js\": 2325,\n\t\"./Script/Coptic.js\": 4957,\n\t\"./Script/Cuneiform.js\": 51215,\n\t\"./Script/Cypriot.js\": 94221,\n\t\"./Script/Cypro_Minoan.js\": 77004,\n\t\"./Script/Cyrillic.js\": 49326,\n\t\"./Script/Deseret.js\": 2436,\n\t\"./Script/Devanagari.js\": 76224,\n\t\"./Script/Dives_Akuru.js\": 28156,\n\t\"./Script/Dogra.js\": 19019,\n\t\"./Script/Duployan.js\": 11233,\n\t\"./Script/Egyptian_Hieroglyphs.js\": 82904,\n\t\"./Script/Elbasan.js\": 50651,\n\t\"./Script/Elymaic.js\": 63404,\n\t\"./Script/Ethiopic.js\": 42249,\n\t\"./Script/Georgian.js\": 77113,\n\t\"./Script/Glagolitic.js\": 84922,\n\t\"./Script/Gothic.js\": 8047,\n\t\"./Script/Grantha.js\": 31338,\n\t\"./Script/Greek.js\": 74214,\n\t\"./Script/Gujarati.js\": 51130,\n\t\"./Script/Gunjala_Gondi.js\": 60046,\n\t\"./Script/Gurmukhi.js\": 37307,\n\t\"./Script/Han.js\": 77439,\n\t\"./Script/Hangul.js\": 73296,\n\t\"./Script/Hanifi_Rohingya.js\": 67439,\n\t\"./Script/Hanunoo.js\": 71394,\n\t\"./Script/Hatran.js\": 68092,\n\t\"./Script/Hebrew.js\": 24189,\n\t\"./Script/Hiragana.js\": 84371,\n\t\"./Script/Imperial_Aramaic.js\": 10780,\n\t\"./Script/Inherited.js\": 71122,\n\t\"./Script/Inscriptional_Pahlavi.js\": 53431,\n\t\"./Script/Inscriptional_Parthian.js\": 580,\n\t\"./Script/Javanese.js\": 37174,\n\t\"./Script/Kaithi.js\": 77983,\n\t\"./Script/Kannada.js\": 29485,\n\t\"./Script/Katakana.js\": 3962,\n\t\"./Script/Kawi.js\": 99140,\n\t\"./Script/Kayah_Li.js\": 88425,\n\t\"./Script/Kharoshthi.js\": 11648,\n\t\"./Script/Khitan_Small_Script.js\": 67968,\n\t\"./Script/Khmer.js\": 21205,\n\t\"./Script/Khojki.js\": 5794,\n\t\"./Script/Khudawadi.js\": 95492,\n\t\"./Script/Lao.js\": 29088,\n\t\"./Script/Latin.js\": 59992,\n\t\"./Script/Lepcha.js\": 66891,\n\t\"./Script/Limbu.js\": 33324,\n\t\"./Script/Linear_A.js\": 74596,\n\t\"./Script/Linear_B.js\": 1620,\n\t\"./Script/Lisu.js\": 42747,\n\t\"./Script/Lycian.js\": 1657,\n\t\"./Script/Lydian.js\": 79038,\n\t\"./Script/Mahajani.js\": 58990,\n\t\"./Script/Makasar.js\": 31935,\n\t\"./Script/Malayalam.js\": 15666,\n\t\"./Script/Mandaic.js\": 81458,\n\t\"./Script/Manichaean.js\": 49002,\n\t\"./Script/Marchen.js\": 38394,\n\t\"./Script/Masaram_Gondi.js\": 13910,\n\t\"./Script/Medefaidrin.js\": 91850,\n\t\"./Script/Meetei_Mayek.js\": 43034,\n\t\"./Script/Mende_Kikakui.js\": 51271,\n\t\"./Script/Meroitic_Cursive.js\": 70039,\n\t\"./Script/Meroitic_Hieroglyphs.js\": 28978,\n\t\"./Script/Miao.js\": 41801,\n\t\"./Script/Modi.js\": 28146,\n\t\"./Script/Mongolian.js\": 34848,\n\t\"./Script/Mro.js\": 75485,\n\t\"./Script/Multani.js\": 45988,\n\t\"./Script/Myanmar.js\": 76042,\n\t\"./Script/Nabataean.js\": 81263,\n\t\"./Script/Nag_Mundari.js\": 17318,\n\t\"./Script/Nandinagari.js\": 16087,\n\t\"./Script/New_Tai_Lue.js\": 93938,\n\t\"./Script/Newa.js\": 12645,\n\t\"./Script/Nko.js\": 41687,\n\t\"./Script/Nushu.js\": 19566,\n\t\"./Script/Nyiakeng_Puachue_Hmong.js\": 57324,\n\t\"./Script/Ogham.js\": 28054,\n\t\"./Script/Ol_Chiki.js\": 50326,\n\t\"./Script/Old_Hungarian.js\": 89704,\n\t\"./Script/Old_Italic.js\": 81737,\n\t\"./Script/Old_North_Arabian.js\": 60623,\n\t\"./Script/Old_Permic.js\": 84547,\n\t\"./Script/Old_Persian.js\": 4062,\n\t\"./Script/Old_Sogdian.js\": 91435,\n\t\"./Script/Old_South_Arabian.js\": 17744,\n\t\"./Script/Old_Turkic.js\": 85004,\n\t\"./Script/Old_Uyghur.js\": 56299,\n\t\"./Script/Oriya.js\": 61702,\n\t\"./Script/Osage.js\": 66820,\n\t\"./Script/Osmanya.js\": 68741,\n\t\"./Script/Pahawh_Hmong.js\": 43421,\n\t\"./Script/Palmyrene.js\": 71540,\n\t\"./Script/Pau_Cin_Hau.js\": 1646,\n\t\"./Script/Phags_Pa.js\": 79532,\n\t\"./Script/Phoenician.js\": 17297,\n\t\"./Script/Psalter_Pahlavi.js\": 59563,\n\t\"./Script/Rejang.js\": 15670,\n\t\"./Script/Runic.js\": 15180,\n\t\"./Script/Samaritan.js\": 85123,\n\t\"./Script/Saurashtra.js\": 40061,\n\t\"./Script/Sharada.js\": 72487,\n\t\"./Script/Shavian.js\": 59504,\n\t\"./Script/Siddham.js\": 565,\n\t\"./Script/SignWriting.js\": 19877,\n\t\"./Script/Sinhala.js\": 66662,\n\t\"./Script/Sogdian.js\": 11761,\n\t\"./Script/Sora_Sompeng.js\": 35055,\n\t\"./Script/Soyombo.js\": 62187,\n\t\"./Script/Sundanese.js\": 78461,\n\t\"./Script/Syloti_Nagri.js\": 74405,\n\t\"./Script/Syriac.js\": 15815,\n\t\"./Script/Tagalog.js\": 2333,\n\t\"./Script/Tagbanwa.js\": 38249,\n\t\"./Script/Tai_Le.js\": 29852,\n\t\"./Script/Tai_Tham.js\": 59997,\n\t\"./Script/Tai_Viet.js\": 92465,\n\t\"./Script/Takri.js\": 95234,\n\t\"./Script/Tamil.js\": 59527,\n\t\"./Script/Tangsa.js\": 946,\n\t\"./Script/Tangut.js\": 86011,\n\t\"./Script/Telugu.js\": 4866,\n\t\"./Script/Thaana.js\": 36876,\n\t\"./Script/Thai.js\": 71517,\n\t\"./Script/Tibetan.js\": 49897,\n\t\"./Script/Tifinagh.js\": 71384,\n\t\"./Script/Tirhuta.js\": 51862,\n\t\"./Script/Toto.js\": 79830,\n\t\"./Script/Ugaritic.js\": 92019,\n\t\"./Script/Vai.js\": 57677,\n\t\"./Script/Vithkuqi.js\": 10301,\n\t\"./Script/Wancho.js\": 12679,\n\t\"./Script/Warang_Citi.js\": 79917,\n\t\"./Script/Yezidi.js\": 33172,\n\t\"./Script/Yi.js\": 94344,\n\t\"./Script/Zanabazar_Square.js\": 90753,\n\t\"./Script_Extensions/Adlam.js\": 38937,\n\t\"./Script_Extensions/Ahom.js\": 9811,\n\t\"./Script_Extensions/Anatolian_Hieroglyphs.js\": 11878,\n\t\"./Script_Extensions/Arabic.js\": 98988,\n\t\"./Script_Extensions/Armenian.js\": 50944,\n\t\"./Script_Extensions/Avestan.js\": 96478,\n\t\"./Script_Extensions/Balinese.js\": 28898,\n\t\"./Script_Extensions/Bamum.js\": 42809,\n\t\"./Script_Extensions/Bassa_Vah.js\": 36382,\n\t\"./Script_Extensions/Batak.js\": 18210,\n\t\"./Script_Extensions/Bengali.js\": 39762,\n\t\"./Script_Extensions/Bhaiksuki.js\": 69666,\n\t\"./Script_Extensions/Bopomofo.js\": 87754,\n\t\"./Script_Extensions/Brahmi.js\": 94830,\n\t\"./Script_Extensions/Braille.js\": 65528,\n\t\"./Script_Extensions/Buginese.js\": 3789,\n\t\"./Script_Extensions/Buhid.js\": 53126,\n\t\"./Script_Extensions/Canadian_Aboriginal.js\": 61228,\n\t\"./Script_Extensions/Carian.js\": 26604,\n\t\"./Script_Extensions/Caucasian_Albanian.js\": 68874,\n\t\"./Script_Extensions/Chakma.js\": 57717,\n\t\"./Script_Extensions/Cham.js\": 50272,\n\t\"./Script_Extensions/Cherokee.js\": 48334,\n\t\"./Script_Extensions/Chorasmian.js\": 61166,\n\t\"./Script_Extensions/Common.js\": 73219,\n\t\"./Script_Extensions/Coptic.js\": 33538,\n\t\"./Script_Extensions/Cuneiform.js\": 59678,\n\t\"./Script_Extensions/Cypriot.js\": 45995,\n\t\"./Script_Extensions/Cypro_Minoan.js\": 19536,\n\t\"./Script_Extensions/Cyrillic.js\": 18638,\n\t\"./Script_Extensions/Deseret.js\": 77756,\n\t\"./Script_Extensions/Devanagari.js\": 85640,\n\t\"./Script_Extensions/Dives_Akuru.js\": 97606,\n\t\"./Script_Extensions/Dogra.js\": 80650,\n\t\"./Script_Extensions/Duployan.js\": 4539,\n\t\"./Script_Extensions/Egyptian_Hieroglyphs.js\": 41585,\n\t\"./Script_Extensions/Elbasan.js\": 40751,\n\t\"./Script_Extensions/Elymaic.js\": 8933,\n\t\"./Script_Extensions/Ethiopic.js\": 56370,\n\t\"./Script_Extensions/Georgian.js\": 60656,\n\t\"./Script_Extensions/Glagolitic.js\": 22125,\n\t\"./Script_Extensions/Gothic.js\": 56298,\n\t\"./Script_Extensions/Grantha.js\": 86631,\n\t\"./Script_Extensions/Greek.js\": 80161,\n\t\"./Script_Extensions/Gujarati.js\": 41962,\n\t\"./Script_Extensions/Gunjala_Gondi.js\": 46189,\n\t\"./Script_Extensions/Gurmukhi.js\": 8194,\n\t\"./Script_Extensions/Han.js\": 5545,\n\t\"./Script_Extensions/Hangul.js\": 94337,\n\t\"./Script_Extensions/Hanifi_Rohingya.js\": 25890,\n\t\"./Script_Extensions/Hanunoo.js\": 54191,\n\t\"./Script_Extensions/Hatran.js\": 62640,\n\t\"./Script_Extensions/Hebrew.js\": 26210,\n\t\"./Script_Extensions/Hiragana.js\": 4645,\n\t\"./Script_Extensions/Imperial_Aramaic.js\": 47790,\n\t\"./Script_Extensions/Inherited.js\": 65719,\n\t\"./Script_Extensions/Inscriptional_Pahlavi.js\": 58626,\n\t\"./Script_Extensions/Inscriptional_Parthian.js\": 50167,\n\t\"./Script_Extensions/Javanese.js\": 29743,\n\t\"./Script_Extensions/Kaithi.js\": 11958,\n\t\"./Script_Extensions/Kannada.js\": 26161,\n\t\"./Script_Extensions/Katakana.js\": 58831,\n\t\"./Script_Extensions/Kawi.js\": 93386,\n\t\"./Script_Extensions/Kayah_Li.js\": 65916,\n\t\"./Script_Extensions/Kharoshthi.js\": 97319,\n\t\"./Script_Extensions/Khitan_Small_Script.js\": 82273,\n\t\"./Script_Extensions/Khmer.js\": 21654,\n\t\"./Script_Extensions/Khojki.js\": 60840,\n\t\"./Script_Extensions/Khudawadi.js\": 84937,\n\t\"./Script_Extensions/Lao.js\": 3895,\n\t\"./Script_Extensions/Latin.js\": 34462,\n\t\"./Script_Extensions/Lepcha.js\": 55753,\n\t\"./Script_Extensions/Limbu.js\": 82970,\n\t\"./Script_Extensions/Linear_A.js\": 61456,\n\t\"./Script_Extensions/Linear_B.js\": 7475,\n\t\"./Script_Extensions/Lisu.js\": 82841,\n\t\"./Script_Extensions/Lycian.js\": 25245,\n\t\"./Script_Extensions/Lydian.js\": 40610,\n\t\"./Script_Extensions/Mahajani.js\": 71461,\n\t\"./Script_Extensions/Makasar.js\": 90995,\n\t\"./Script_Extensions/Malayalam.js\": 4201,\n\t\"./Script_Extensions/Mandaic.js\": 85976,\n\t\"./Script_Extensions/Manichaean.js\": 61361,\n\t\"./Script_Extensions/Marchen.js\": 51089,\n\t\"./Script_Extensions/Masaram_Gondi.js\": 75850,\n\t\"./Script_Extensions/Medefaidrin.js\": 35394,\n\t\"./Script_Extensions/Meetei_Mayek.js\": 65222,\n\t\"./Script_Extensions/Mende_Kikakui.js\": 56734,\n\t\"./Script_Extensions/Meroitic_Cursive.js\": 48438,\n\t\"./Script_Extensions/Meroitic_Hieroglyphs.js\": 63315,\n\t\"./Script_Extensions/Miao.js\": 89426,\n\t\"./Script_Extensions/Modi.js\": 56126,\n\t\"./Script_Extensions/Mongolian.js\": 48441,\n\t\"./Script_Extensions/Mro.js\": 96237,\n\t\"./Script_Extensions/Multani.js\": 12152,\n\t\"./Script_Extensions/Myanmar.js\": 88384,\n\t\"./Script_Extensions/Nabataean.js\": 22445,\n\t\"./Script_Extensions/Nag_Mundari.js\": 48651,\n\t\"./Script_Extensions/Nandinagari.js\": 54947,\n\t\"./Script_Extensions/New_Tai_Lue.js\": 25650,\n\t\"./Script_Extensions/Newa.js\": 997,\n\t\"./Script_Extensions/Nko.js\": 35334,\n\t\"./Script_Extensions/Nushu.js\": 38408,\n\t\"./Script_Extensions/Nyiakeng_Puachue_Hmong.js\": 53615,\n\t\"./Script_Extensions/Ogham.js\": 72435,\n\t\"./Script_Extensions/Ol_Chiki.js\": 6286,\n\t\"./Script_Extensions/Old_Hungarian.js\": 10512,\n\t\"./Script_Extensions/Old_Italic.js\": 7259,\n\t\"./Script_Extensions/Old_North_Arabian.js\": 79715,\n\t\"./Script_Extensions/Old_Permic.js\": 84513,\n\t\"./Script_Extensions/Old_Persian.js\": 29058,\n\t\"./Script_Extensions/Old_Sogdian.js\": 22883,\n\t\"./Script_Extensions/Old_South_Arabian.js\": 25750,\n\t\"./Script_Extensions/Old_Turkic.js\": 38028,\n\t\"./Script_Extensions/Old_Uyghur.js\": 82038,\n\t\"./Script_Extensions/Oriya.js\": 93543,\n\t\"./Script_Extensions/Osage.js\": 55599,\n\t\"./Script_Extensions/Osmanya.js\": 6499,\n\t\"./Script_Extensions/Pahawh_Hmong.js\": 87093,\n\t\"./Script_Extensions/Palmyrene.js\": 33203,\n\t\"./Script_Extensions/Pau_Cin_Hau.js\": 32175,\n\t\"./Script_Extensions/Phags_Pa.js\": 80475,\n\t\"./Script_Extensions/Phoenician.js\": 88683,\n\t\"./Script_Extensions/Psalter_Pahlavi.js\": 13132,\n\t\"./Script_Extensions/Rejang.js\": 10643,\n\t\"./Script_Extensions/Runic.js\": 92370,\n\t\"./Script_Extensions/Samaritan.js\": 62803,\n\t\"./Script_Extensions/Saurashtra.js\": 69504,\n\t\"./Script_Extensions/Sharada.js\": 57957,\n\t\"./Script_Extensions/Shavian.js\": 15581,\n\t\"./Script_Extensions/Siddham.js\": 45898,\n\t\"./Script_Extensions/SignWriting.js\": 73338,\n\t\"./Script_Extensions/Sinhala.js\": 54400,\n\t\"./Script_Extensions/Sogdian.js\": 69554,\n\t\"./Script_Extensions/Sora_Sompeng.js\": 82168,\n\t\"./Script_Extensions/Soyombo.js\": 55339,\n\t\"./Script_Extensions/Sundanese.js\": 17361,\n\t\"./Script_Extensions/Syloti_Nagri.js\": 7453,\n\t\"./Script_Extensions/Syriac.js\": 49190,\n\t\"./Script_Extensions/Tagalog.js\": 78050,\n\t\"./Script_Extensions/Tagbanwa.js\": 6896,\n\t\"./Script_Extensions/Tai_Le.js\": 30486,\n\t\"./Script_Extensions/Tai_Tham.js\": 43272,\n\t\"./Script_Extensions/Tai_Viet.js\": 2338,\n\t\"./Script_Extensions/Takri.js\": 15222,\n\t\"./Script_Extensions/Tamil.js\": 25234,\n\t\"./Script_Extensions/Tangsa.js\": 14113,\n\t\"./Script_Extensions/Tangut.js\": 12606,\n\t\"./Script_Extensions/Telugu.js\": 60209,\n\t\"./Script_Extensions/Thaana.js\": 34190,\n\t\"./Script_Extensions/Thai.js\": 24815,\n\t\"./Script_Extensions/Tibetan.js\": 65333,\n\t\"./Script_Extensions/Tifinagh.js\": 98578,\n\t\"./Script_Extensions/Tirhuta.js\": 25740,\n\t\"./Script_Extensions/Toto.js\": 20190,\n\t\"./Script_Extensions/Ugaritic.js\": 41418,\n\t\"./Script_Extensions/Vai.js\": 95619,\n\t\"./Script_Extensions/Vithkuqi.js\": 4862,\n\t\"./Script_Extensions/Wancho.js\": 80134,\n\t\"./Script_Extensions/Warang_Citi.js\": 61158,\n\t\"./Script_Extensions/Yezidi.js\": 25,\n\t\"./Script_Extensions/Yi.js\": 47685,\n\t\"./Script_Extensions/Zanabazar_Square.js\": 92290,\n\t\"./index.js\": 31714,\n\t\"./unicode-version.js\": 35362\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 38531;","var parent = require('../../stable/object/assign');\n\nmodule.exports = parent;\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","module.exports = require('../../full/object/assign');\n","var parent = require('../../actual/object/assign');\n\nmodule.exports = parent;\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nvar toString = uncurryThisRaw({}.toString);\nvar stringSlice = uncurryThisRaw(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = function (fn) {\n return NATIVE_BIND ? uncurryThisWithBind(fn) : function () {\n return call.apply(fn, arguments);\n };\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThisRaw(fn);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","var parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","const listOfMetricsSend = new Set();\n\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(fn, timeout, ...args);\n };\n}\n\nfunction sendWebVitals() {\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n\n listOfMetricsSend.add(data.name);\n sendToGoogleAnalytics(data);\n }\n\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens\n\n const debouncedFID = sendData; // LCP can occur multiple times so we debounce it\n\n const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late.\n\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\n\nfunction sendToGoogleAnalytics({\n name,\n value,\n id\n}) {\n window.ga(`send`, `event`, {\n eventCategory: `Web Vitals`,\n eventAction: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n eventLabel: id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n eventValue: Math.round(name === `CLS` ? value * 1000 : value),\n // Use a non-interaction event to avoid affecting bounce rate.\n nonInteraction: true,\n // Use `sendBeacon()` if the browser supports it.\n transport: `beacon`\n });\n}\n\nexport const onRouteUpdate = ({\n location\n}, pluginOptions = {}) => {\n const ga = window.ga;\n\n if (process.env.NODE_ENV !== `production` || typeof ga !== `function`) {\n return null;\n }\n\n const pathIsExcluded = location && typeof window.excludeGAPaths !== `undefined` && window.excludeGAPaths.some(rx => rx.test(location.pathname));\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n\n const sendPageView = () => {\n const pagePath = location ? location.pathname + location.search + location.hash : undefined;\n ga(`set`, `page`, pagePath);\n ga(`send`, `pageview`);\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n const delay = Math.max(32, pluginOptions.pageTransitionDelay || 0);\n setTimeout(sendPageView, delay);\n return null;\n};\nexport function onInitialClientRender(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` && typeof ga === `function` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals();\n }\n}","import React, { useEffect } from 'react'\r\nimport { graphql, StaticQuery } from 'gatsby'\r\nimport styled, { createGlobalStyle } from '@xstyled/styled-components'\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n #carbonads {\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu,\r\n Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n }\r\n\r\n #carbonads {\r\n display: inline-flex;\r\n background-color: background-light;\r\n border: 1;\r\n border-color: layout-border;\r\n box-shadow: none;\r\n }\r\n\r\n #carbonads a {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n #carbonads a:hover {\r\n color: inherit;\r\n }\r\n\r\n #carbonads span {\r\n position: relative;\r\n display: block;\r\n overflow: hidden;\r\n }\r\n\r\n #carbonads .carbon-wrap {\r\n display: flex;\r\n }\r\n\r\n .carbon-img {\r\n display: block;\r\n margin: 0;\r\n line-height: 1;\r\n }\r\n\r\n .carbon-img img {\r\n display: block;\r\n }\r\n\r\n .carbon-text {\r\n font-size: 13px;\r\n padding: 10px;\r\n line-height: 1.5;\r\n text-align: left;\r\n }\r\n\r\n .carbon-poweredby {\r\n display: block;\r\n padding: 8px 10px;\r\n background: repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4);\r\n text-align: center;\r\n text-transform: uppercase;\r\n letter-spacing: .5px;\r\n font-weight: 600;\r\n font-size: 9px;\r\n line-height: 1;\r\n }\r\n`\r\n\r\nconst QUERY = graphql`\r\n query CodeFund {\r\n site {\r\n siteMetadata {\r\n carbonAdsURL\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst AdContainer = styled.aside`\r\n display: block;\r\n height: 125;\r\n min-width: 1;\r\n margin: 3 0;\r\n`\r\n\r\nfunction InnerCarbonAd({ url }) {\r\n const ref = React.useRef()\r\n useEffect(() => {\r\n const wrapper = ref.current\r\n const script = document.createElement('script')\r\n script.src = url\r\n script.async = true\r\n script.id = '_carbonads_js'\r\n wrapper.appendChild(script)\r\n return () => {\r\n wrapper.removeChild(script)\r\n }\r\n }, [url])\r\n return (\r\n <>\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport function CarbonAd() {\r\n return (\r\n \r\n data.site.siteMetadata.carbonAdsURL ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n />\r\n )\r\n}\r\n","import styled, { up, css } from '@xstyled/styled-components'\r\n\r\nexport const TableContainer = styled.div`\r\n overflow-y: auto;\r\n margin: 3 0 2;\r\n\r\n ${up(\r\n 'lg',\r\n css`\r\n max-height: 480;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Table = styled.table`\r\n width: 100%;\r\n text-align: left;\r\n border-collapse: collapse;\r\n font-size: 90%;\r\n\r\n tr {\r\n background-color: transparent;\r\n }\r\n\r\n td,\r\n th {\r\n padding: 2 3;\r\n }\r\n\r\n th {\r\n color: on-background-light;\r\n background-color: background-light;\r\n font-weight: 600;\r\n z-index: 20;\r\n position: sticky;\r\n top: 0;\r\n }\r\n\r\n td {\r\n font-size: 85%;\r\n border-top: 1;\r\n border-bottom: 1;\r\n border-color: layout-border;\r\n }\r\n`\r\n","import React from 'react'\r\nimport { MDXProvider as BaseMDXProvider } from '@mdx-js/react'\r\nimport { Code } from './Code'\r\nimport { CarbonAd } from './CarbonAd'\r\nimport { Table, TableContainer } from './Table'\r\n\r\nfunction transformCode({ children, className, ...props }) {\r\n const lang = className && className.split('-')[1]\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nfunction getCodeChild(children) {\r\n const childrenArray = React.Children.toArray(children)\r\n if (childrenArray.length !== 1) return null\r\n const [firstChild] = childrenArray\r\n if (firstChild.type !== 'code') return null\r\n return firstChild\r\n}\r\n\r\nexport const mdxComponents = {\r\n 'carbon-ad': () => ,\r\n pre: ({ children }) => {\r\n const codeChild = getCodeChild(children)\r\n return codeChild ? transformCode(codeChild.props) :
{children}
\r\n },\r\n table: ({ children }) => {\r\n return (\r\n \r\n {children}
\r\n
\r\n )\r\n },\r\n}\r\n\r\nexport function MDXProvider({ children, components }) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols; // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n} // @private\n\n\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n } // prettier-ignore\n\n\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n/**\n * Check if a string ends with something\n * @private\n */\n\n\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\nvar pixelsto = pxtoFactory;\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em = /*#__PURE__*/pixelsto('em');\nvar em$1 = em;\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\n\nvar rem = /*#__PURE__*/pixelsto('rem');\nvar rem$1 = rem;\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\n\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\n\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\n\n\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\n\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings; // Error Handling\n\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\n\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\n\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\n\n\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\n\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\n\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n/* eslint-disable key-spacing */\n\n\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\n\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n\n\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n} // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\n\n\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\nvar curriedDarken$1 = curriedDarken;\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\nvar curriedLighten$1 = curriedLighten;\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\nvar mix$1 = curriedMix;\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar curriedOpacify$1 = curriedOpacify;\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\n\n\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\nvar curriedShade$1 = curriedShade;\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\nvar curriedTint$1 = curriedTint;\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Allow single or multiple animations passed\n\n\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\n\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\n\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\n\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\n\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\n\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\n\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\n\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\n\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import { transparentize } from 'polished'\r\nimport { css, th, defaultTheme, aliasColor } from '@xstyled/styled-components'\r\n\r\nexport function primaryColor(color) {\r\n return aliasColor('primary', color)\r\n}\r\n\r\nexport const theme = {\r\n initialColorModeName: 'light',\r\n ...defaultTheme,\r\n global: css`\r\n html,\r\n body {\r\n transition: 300ms ease-in color, 300ms ease-in background-color;\r\n margin: 0;\r\n font-family: base;\r\n background-color: background;\r\n color: on-background;\r\n line-height: base;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n }\r\n \r\n img {\r\n display: inline-block;\r\n }\r\n\r\n :focus {\r\n outline-color: primary-500;\r\n }\r\n blockquote.quote {\r\n background-color: var(--xstyled-colors-editor-background,#18181b);\r\n margin: 3vw 3vw;\r\n box-sizing: border-box;\r\n position: relative;\r\n font-size: 24px;\r\n padding: 1vw 5vw;\r\n border-radius: 8px;\r\n \r\n font-style: italic;\r\n }\r\n @media (min-width: 768px) {\r\n blockquote.quote:before {\r\n width: 6vw;\r\n height: 7vw;\r\n top: 50%;\r\n left: 0;\r\n transform: translate(-50%, -50%);\r\n }\r\n .only-small {\r\n display: none;\r\n }\r\n }\r\n @media (max-width: 768px) {\r\n .only-wide {\r\n display: none;\r\n }\r\n }\r\n blockquote.quote:before {\r\n content: \"\";\r\n background-image: url(/resources/quote.svg);\r\n position: absolute;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n }\r\n .xstyled-color-mode-light blockquote.quote {\r\n color: black;\r\n background-color: #d4d4d8;\r\n border-color: #a8a8af;\r\n }\r\n \r\n .wide-feature-text h3 {\r\n font-size: 38px;\r\n text-align: center;\r\n }\r\n .wide-feature-text p {\r\n font-size: 24px;\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text ul {\r\n font-size: 24px;\r\n list-style-type: \"👉 \";\r\n margin-left: 3rem;\r\n }\r\n .wide-feature-text li {\r\n margin: 0.5em auto;\r\n }\r\n .wide-feature-text strong,\r\n strong.orange {\r\n color: #F2A41F;\r\n // font-weight: normal;\r\n }\r\n \r\n .home-screenshots {\r\n margin-bottom: 2rem;\r\n }\r\n .home-screenshots h2 {\r\n font-size: 34px;\r\n font-weight: 400;\r\n margin-top: 3rem;\r\n margin-bottom: 1rem;\r\n text-align: center;\r\n }\r\n .home-screenshots img {\r\n width: 80%;\r\n }\r\n \r\n \r\n .home-links {\r\n text-align: center;\r\n display: flex;\r\n }\r\n .home-links > * {\r\n width:30%;\r\n padding: 1rem;\r\n }\r\n\r\n .home-links a {\r\n color: var(--xstyled-colors-on-background, #ffffff)!important;\r\n }\r\n \r\n h3 {\r\n font-size: 1.17em;\r\n margin-bottom: 0.5em;\r\n }\r\n \r\n .carousel__back-button, .carousel__next-button {\r\n background: transparent;\r\n }\r\n\r\n `,\r\n 'prism-theme': () => ({\r\n styles: [\r\n {\r\n types: ['comment'],\r\n style: {\r\n color: 'rgb(106, 171, 115)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['line-comment'],\r\n style: {\r\n color: 'rgb(99,103,100)',\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['zdl-keyword', 'keyword'],\r\n style: {\r\n color: 'rgb(207, 142, 107)',\r\n },\r\n },\r\n {\r\n types: ['zdl-annotation', 'zdl-validation'],\r\n style: {\r\n color: 'rgb(179, 174, 96)',\r\n },\r\n },\r\n {\r\n types: ['zdl-class-name'],\r\n style: {\r\n color: 'rgb(102,127,209)',\r\n },\r\n },\r\n {\r\n types: ['zdl-field'],\r\n style: {\r\n color: 'rgb(198, 120, 221)',\r\n },\r\n },\r\n {\r\n types: ['punctuation'],\r\n style: {\r\n color: 'rgb(230,233,236)', // fixme\r\n },\r\n },\r\n {\r\n types: ['boolean', 'bool', 'char', 'number'],\r\n style: {\r\n color: 'rgb(33,51,157)',// fixme\r\n },\r\n },\r\n {\r\n types: ['tag'],\r\n style: {\r\n color: 'rgb(229, 192, 123)',\r\n },\r\n },\r\n {\r\n types: ['operator'],\r\n style: {\r\n color: 'rgb(171, 178, 191)',\r\n },\r\n },\r\n {\r\n types: ['string'],\r\n style: {\r\n color: 'rgb(152, 195, 121)',\r\n },\r\n },\r\n {\r\n types: ['attr-name', 'comment'],\r\n style: {\r\n fontStyle: 'italic',\r\n },\r\n },\r\n {\r\n types: ['function'],\r\n style: {\r\n color: 'rgb(97, 175, 239)',\r\n },\r\n },\r\n ],\r\n }),\r\n fonts: {\r\n base: '-apple-system,system-ui,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif',\r\n },\r\n lineHeights: {\r\n base: 1.4,\r\n control: th.lineHeight('base'),\r\n },\r\n transitions: {\r\n base: '300ms ease all',\r\n fast: '150ms cubic-bezier(0.215, 0.61, 0.355, 1) all',\r\n control: th.transition('base'),\r\n },\r\n radii: {\r\n base: 4,\r\n control: th.radius('base'),\r\n editor: th.radius('base'),\r\n blockquote: th.radius('base'),\r\n },\r\n borderWidths: {\r\n base: 1,\r\n control: th.borderWidth('base'),\r\n },\r\n shadows: {\r\n focus: (p) => `0 0 0 ${th.px(2)(p)} ${th.color('primary-a500')(p)}`,\r\n 'control-focus': th.shadow('focus'),\r\n },\r\n sizes: {\r\n screen: 1669, // 1440,\r\n },\r\n space: {\r\n 0: 0,\r\n 1: 4,\r\n 2: 8,\r\n 3: 16,\r\n 4: 24,\r\n 5: 48,\r\n 6: 96,\r\n 7: 144,\r\n 8: 192,\r\n 9: 240,\r\n 'preview-padding-y': 16,\r\n 'preview-padding-x': 24,\r\n },\r\n colors: {\r\n ...defaultTheme.colors,\r\n\r\n // Primary = indigo\r\n ...aliasColor('primary', 'indigo'),\r\n\r\n primary: th.color('primary-500'),\r\n 'primary-a500': (p) => transparentize(0.5, th.color('primary-500')(p)),\r\n\r\n background: th.color('white'),\r\n 'background-light': th.color('gray-100'),\r\n 'background-primary': th.color('primary-100'),\r\n 'background-mark': th.color('yellow-200'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('black'),\r\n 'on-background-light': th.color('gray-700'),\r\n 'on-background-primary': th.color('primary-700'),\r\n 'on-background-primary-dark': th.color('primary-800'),\r\n\r\n 'layout-border': th.color('gray-300'),\r\n\r\n 'control-background': th.color('gray-100'),\r\n 'control-placeholder': th.color('gray-600'),\r\n 'control-on': th.color('gray-900'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-400'),\r\n\r\n 'editor-background': th.color('gray-900'),\r\n 'editor-on': th.color('gray-100'),\r\n 'editor-border': th.color('layout-border'),\r\n\r\n 'blockquote-link': th.color('yellow-800'),\r\n 'blockquote-background': th.color('yellow-200'),\r\n 'blockquote-border': th.color('yellow'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-200'),\r\n 'doc-search-suggestion-highlight-on-background': th.color('primary-800'),\r\n 'doc-search-suggestion-content-background': th.color('primary-100'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-700'),\r\n\r\n modes: {\r\n dark: {\r\n background: th.color('gray-900'),\r\n 'editor-background': th.color('black'),\r\n 'background-light': th.color('gray-800'),\r\n 'background-primary': th.color('primary-900'),\r\n 'background-mark': th.color('yellow-500'),\r\n 'background-light-a50': (p) =>\r\n transparentize(0.05, th.color('background-light')(p)),\r\n 'on-background': th.color('white'),\r\n 'on-background-light': th.color('gray-300'),\r\n 'on-background-primary': th.color('primary-300'),\r\n 'on-background-primary-dark': th.color('primary-200'),\r\n\r\n 'layout-border': th.color('gray-700'),\r\n\r\n 'control-background': th.color('gray-800'),\r\n 'control-placeholder': th.color('gray-400'),\r\n 'control-on': th.color('gray-100'),\r\n 'control-border': th.color('layout-border'),\r\n 'control-border-hover': th.color('gray-500'),\r\n 'control-border-active': th.color('primary-600'),\r\n\r\n 'blockquote-link': th.color('yellow-200'),\r\n 'blockquote-background': th.color('yellow-900'),\r\n 'blockquote-border': th.color('yellow-300'),\r\n\r\n 'doc-search-suggestion-highlight-background': th.color('primary-800'),\r\n 'doc-search-suggestion-highlight-on-background':\r\n th.color('primary-200'),\r\n 'doc-search-suggestion-content-background': th.color('primary-900'),\r\n 'doc-search-suggestion-content-underline': th.color('primary-300'),\r\n },\r\n },\r\n },\r\n}\r\n","import React from 'react'\r\nimport {\r\n createGlobalStyle,\r\n ThemeProvider as SCThemeProvider,\r\n th,\r\n} from '@xstyled/styled-components'\r\nimport { theme } from '../theme'\r\n\r\nexport const GlobalStyle = createGlobalStyle`\r\n ${th('global')}\r\n`\r\n\r\nexport function ThemeProvider({ children }) {\r\n return {children}\r\n}\r\n","import React from 'react'\r\nimport { ColorModeProvider, Preflight } from '@xstyled/styled-components'\r\nimport { MDXProvider } from './MDX'\r\nimport { GlobalStyle, ThemeProvider } from './Theme'\r\n\r\nexport function RootWrapper({ children }) {\r\n return (\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n","import { useDisclosureState } from '../disclosure/disclosure-state.js';\n/**\n * Provides state for the `Dialog` components.\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * \n * Content\n * ```\n */\n\nfunction useDialogState(props) {\n if (props === void 0) {\n props = {};\n }\n\n const disclosure = useDisclosureState(props);\n return disclosure;\n}\n\nexport { useDialogState };","import { useRef, useState, useCallback, useMemo } from 'react';\nimport { useControlledState, usePreviousValue } from 'ariakit-utils/hooks';\n/**\n * Provides state for the `Disclosure` components.\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure\n * Content\n * ```\n */\n\nfunction useDisclosureState(_temp) {\n var _props$defaultOpen;\n\n let {\n animated = false,\n ...props\n } = _temp === void 0 ? {} : _temp;\n const disclosureRef = useRef(null);\n const [open, setOpen] = useControlledState((_props$defaultOpen = props.defaultOpen) != null ? _props$defaultOpen : false, props.open, props.setOpen);\n const [contentElement, setContentElement] = useState(null);\n const [animating, setAnimating] = useState(!!animated && open);\n const prevOpen = usePreviousValue(open);\n const mounted = open || animating;\n\n if (animated && !animating && prevOpen !== open) {\n setAnimating(true);\n }\n\n const show = useCallback(() => setOpen(true), [setOpen]);\n const hide = useCallback(() => setOpen(false), [setOpen]);\n const toggle = useCallback(() => setOpen(v => !v), [setOpen]);\n const stopAnimation = useCallback(() => setAnimating(false), []);\n const state = useMemo(() => ({\n disclosureRef,\n open,\n mounted,\n animated,\n animating,\n contentElement,\n setContentElement,\n setOpen,\n show,\n hide,\n toggle,\n stopAnimation\n }), [open, mounted, animated, animating, contentElement, setContentElement, setOpen, show, hide, toggle, stopAnimation]);\n return state;\n}\n\nexport { useDisclosureState };","import { useState } from 'react';\nimport { useId, useSafeLayoutEffect, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { flushSync } from 'react-dom';\n\nfunction afterTimeout(timeoutMs, cb) {\n const timeoutId = setTimeout(cb, timeoutMs);\n return () => clearTimeout(timeoutId);\n}\n\nfunction afterPaint(cb) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\n\nfunction parseCSSTime() {\n for (var _len = arguments.length, times = new Array(_len), _key = 0; _key < _len; _key++) {\n times[_key] = arguments[_key];\n }\n\n return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n const currentTime = parseFloat(currentTimeString || \"0s\") * 1000; // When multiple times are specified, we want to use the longest one so we\n // wait until the longest transition has finished.\n\n if (currentTime > longestTime) return currentTime;\n return longestTime;\n }, 0);\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosureContent({ state });\n * Disclosure\n * Content\n * ```\n */\n\n\nconst useDisclosureContent = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n const id = useId(props.id);\n const [transition, setTransition] = useState(null);\n useSafeLayoutEffect(() => {\n var _state$contentElement;\n\n if (!state.animated) return; // When the disclosure content element is rendered in a portal, we need to\n // wait for the portal to be mounted and connected to the DOM before we\n // can start the animation.\n\n if (!((_state$contentElement = state.contentElement) != null && _state$contentElement.isConnected)) {\n setTransition(null);\n return;\n } // Double requestAnimationFrame is necessary here to avoid potential bugs\n // when the data attribute is added before the element is fully rendered\n // in the DOM, which wouldn't trigger the animation.\n\n\n return afterPaint(() => {\n setTransition(state.open ? \"enter\" : \"leave\");\n });\n }, [state.animated, state.contentElement, state.open]);\n useSafeLayoutEffect(() => {\n if (!state.animated) return;\n if (!state.contentElement) return;\n if (!transition) return;\n if (transition === \"enter\" && !state.open) return;\n if (transition === \"leave\" && state.open) return; // When the animated state is a number, the user has manually set the\n // animation timeout, so we just respect it.\n\n if (typeof state.animated === \"number\") {\n const timeoutMs = state.animated;\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n } // Otherwise, we need to parse the CSS transition/animation duration and\n // delay to know when the animation ends. This is safer than relying on\n // the transitionend/animationend events because it's not guaranteed that\n // these events will fire. For example, if the element is removed from the\n // DOM before the animation ends or if the animation wasn't triggered in\n // the first place, the events won't fire.\n\n\n const {\n transitionDuration,\n animationDuration,\n transitionDelay,\n animationDelay\n } = getComputedStyle(state.contentElement);\n const delay = parseCSSTime(transitionDelay, animationDelay);\n const duration = parseCSSTime(transitionDuration, animationDuration);\n const timeoutMs = delay + duration; // If the animation/transition delay and duration are 0, this means the\n // element is not animated with CSS (they may be using framer-motion,\n // react-spring, or something else). In this case, the user is responsible\n // for calling `stopAnimation` when the animation ends.\n\n if (!timeoutMs) return; // TODO: We should probably warn if `stopAnimation` hasn't been called\n // after X seconds.\n\n return afterTimeout(timeoutMs, () => flushSync(state.stopAnimation));\n }, [state.animated, state.contentElement, transition, state.open, state.stopAnimation]);\n const style = state.mounted || props.hidden === false ? props.style : { ...props.style,\n display: \"none\"\n };\n props = {\n id,\n \"data-enter\": transition === \"enter\" ? \"\" : undefined,\n \"data-leave\": transition === \"leave\" ? \"\" : undefined,\n hidden: !state.mounted,\n ...props,\n ref: useForkRef(id ? state.setContentElement : null, props.ref),\n style\n };\n return props;\n});\n/**\n * A component that renders an element that can be shown or hidden.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure\n * Content\n * ```\n */\n\nconst DisclosureContent = createComponent(props => {\n const htmlProps = useDisclosureContent(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DisclosureContent.displayName = \"DisclosureContent\";\n}\n\nexport { DisclosureContent, useDisclosureContent };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component. When applying the props returned by this hook to a\n * component, the component will be visually hidden, but still accessible to\n * screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * const props = useVisuallyHidden();\n * \n * Learn more about the Solar System.\n * \n * ```\n */\n\nconst useVisuallyHidden = createHook(props => {\n props = { ...props,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n ...props.style\n }\n };\n return props;\n});\n/**\n * A component that renders an element that's visually hidden, but still\n * accessible to screen readers.\n * @see https://ariakit.org/components/visually-hidden\n * @example\n * ```jsx\n * \n * Learn more about the Solar System.\n * \n * ```\n */\n\nconst VisuallyHidden = createComponent(props => {\n const htmlProps = useVisuallyHidden(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n VisuallyHidden.displayName = \"VisuallyHidden\";\n}\n\nexport { VisuallyHidden, useVisuallyHidden };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useVisuallyHidden } from '../visually-hidden/visually-hidden.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * const props = useFocusTrap();\n * \n * ```\n */\n\nconst useFocusTrap = createHook(props => {\n props = {\n \"data-focus-trap\": \"\",\n tabIndex: 0,\n \"aria-hidden\": true,\n ...props,\n style: {\n // Prevents unintended scroll jumps.\n position: \"fixed\",\n top: 0,\n left: 0,\n ...props.style\n }\n };\n props = useVisuallyHidden(props);\n return props;\n});\n/**\n * A component that renders a focus trap element.\n * @see https://ariakit.org/components/focus-trap\n * @example\n * ```jsx\n * \n * ```\n */\n\nconst FocusTrap = createComponent(props => {\n const htmlProps = useFocusTrap(props);\n return createElement(\"span\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrap.displayName = \"FocusTrap\";\n}\n\nexport { FocusTrap, useFocusTrap };","import { useRef } from 'react';\nimport { getAllTabbableIn } from 'ariakit-utils/focus';\nimport { useWrapElement, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { FocusTrap } from './focus-trap.js';\nimport { jsxs, Fragment, jsx } from 'react/jsx-runtime';\nconst useFocusTrapRegion = createHook(_ref => {\n let {\n enabled = false,\n ...props\n } = _ref;\n const ref = useRef(null);\n props = useWrapElement(props, element => {\n const renderFocusTrap = () => {\n if (!enabled) return null;\n return /*#__PURE__*/jsx(FocusTrap, {\n onFocus: event => {\n const container = ref.current;\n if (!container) return;\n const tabbables = getAllTabbableIn(container, true);\n const first = tabbables[0];\n const last = tabbables[tabbables.length - 1]; // Fallbacks to the container element\n\n if (!tabbables.length) {\n container.focus();\n return;\n }\n\n if (event.relatedTarget === first) {\n last == null ? void 0 : last.focus();\n } else {\n first == null ? void 0 : first.focus();\n }\n }\n });\n };\n\n return /*#__PURE__*/jsxs(Fragment, {\n children: [renderFocusTrap(), element, renderFocusTrap()]\n });\n }, [enabled]);\n props = { ...props,\n ref: useForkRef(ref, props.ref)\n };\n return props;\n});\n/**\n * A component that renders a focus trap region element.\n * @see https://ariakit.org/components/focus-trap-region\n * @example\n * ```jsx\n * \n * \n * \n * \n * \n * ```\n */\n\nconst FocusTrapRegion = createComponent(props => {\n const htmlProps = useFocusTrapRegion(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n FocusTrapRegion.displayName = \"FocusTrapRegion\";\n}\n\nexport { FocusTrapRegion, useFocusTrapRegion };","import { createContext } from 'react';\nconst HeadingContext = /*#__PURE__*/createContext(0);\nexport { HeadingContext as H };","import { useContext } from 'react';\nimport { H as HeadingContext } from '../__utils-5a52896b.js';\nimport { jsx } from 'react/jsx-runtime';\n\nfunction HeadingLevel(_ref) {\n let {\n level,\n children\n } = _ref;\n const contextLevel = useContext(HeadingContext);\n const nextLevel = Math.max(Math.min(level || contextLevel + 1, 6), 1);\n return /*#__PURE__*/jsx(HeadingContext.Provider, {\n value: nextLevel,\n children: children\n });\n}\n\nexport { HeadingLevel };","import { createContext } from 'react';\n/**\n * Stores the element that will contain the portal. By default, it will be the\n * body of the document.\n * @example\n * ```jsx\n * const container = document.getElementById(\"container\");\n *\n * function App() {\n * return (\n * \n * \n * \n * );\n * }\n * ```\n */\n\nconst PortalContext = /*#__PURE__*/createContext(null);\nexport { PortalContext };","import { useRef, useContext, useState, useEffect } from 'react';\nimport { getDocument } from 'ariakit-utils/dom';\nimport { isFocusEventOutside } from 'ariakit-utils/events';\nimport { getNextTabbable, getPreviousTabbable, restoreFocusIn, disableFocusIn } from 'ariakit-utils/focus';\nimport { useForkRef, useSafeLayoutEffect, useWrapElement } from 'ariakit-utils/hooks';\nimport { setRef, queueMicrotask } from 'ariakit-utils/misc';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { createPortal } from 'react-dom';\nimport { PortalContext } from './portal-context.js';\nimport { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { FocusTrap } from '../focus-trap/focus-trap.js';\n\nfunction getRootElement(element) {\n return getDocument(element).body;\n}\n\nfunction getPortalElement(element, portalElement) {\n if (!portalElement) {\n return getDocument(element).createElement(\"div\");\n }\n\n if (typeof portalElement === \"function\") {\n return portalElement(element);\n }\n\n return portalElement;\n}\n\nfunction getRandomId(prefix) {\n if (prefix === void 0) {\n prefix = \"id\";\n }\n\n return \"\" + (prefix ? prefix + \"-\" : \"\") + Math.random().toString(36).substr(2, 6);\n}\n\nfunction queueFocus(element) {\n queueMicrotask(() => {\n element == null ? void 0 : element.focus();\n });\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * const props = usePortal();\n * Content\n * ```\n */\n\n\nconst usePortal = createHook(_ref => {\n let {\n preserveTabOrder,\n portalElement,\n portalRef,\n portal = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const refProp = useForkRef(ref, props.ref);\n const context = useContext(PortalContext);\n const [portalNode, setPortalNode] = useState(null);\n const beforeOutsideRef = useRef(null);\n const beforeInsideRef = useRef(null);\n const afterInsideRef = useRef(null);\n const afterOutsideRef = useRef(null); // Create the portal node and attach it to the DOM.\n\n useSafeLayoutEffect(() => {\n const element = ref.current;\n\n if (!element || !portal) {\n setPortalNode(null);\n return;\n }\n\n const portalEl = getPortalElement(element, portalElement); // TODO: Warn about portals as the document.body element.\n\n if (!portalEl) {\n setPortalNode(null);\n return;\n }\n\n const isPortalInDocument = portalEl.isConnected;\n\n if (!isPortalInDocument) {\n const rootElement = context || getRootElement(element);\n rootElement.appendChild(portalEl);\n } // If the portal element doesn't have an id already, set one.\n\n\n if (!portalEl.id) {\n // Use the element's id so rendering will\n // produce predictable results.\n portalEl.id = element.id ? element.id + \"-portal\" : getRandomId();\n } // Set the internal portal node state and the portalRef prop.\n\n\n setPortalNode(portalEl);\n setRef(portalRef, portalEl); // If the portal element was already in the document, we don't need to\n // remove it when the element is unmounted, so we just return.\n\n if (isPortalInDocument) return; // Otherwise, we need to remove the portal from the DOM.\n\n return () => {\n portalEl.remove();\n setRef(portalRef, null);\n };\n }, [portal, portalElement, context, portalRef]); // When preserveTabOrder is true, make sure elements inside the portal\n // element are tabbable only when the portal has already been focused,\n // either by tabbing into a focus trap element outside or using the mouse.\n\n useEffect(() => {\n if (!portalNode) return;\n if (!preserveTabOrder) return;\n let raf = 0;\n\n const onFocus = event => {\n if (isFocusEventOutside(event)) {\n const focusing = event.type === \"focusin\";\n if (focusing) return restoreFocusIn(portalNode); // Wait for the next frame to allow tabindex changes after the focus\n // event.\n\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n disableFocusIn(portalNode, true);\n });\n }\n }; // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n\n\n portalNode.addEventListener(\"focusin\", onFocus, true);\n portalNode.addEventListener(\"focusout\", onFocus, true);\n return () => {\n portalNode.removeEventListener(\"focusin\", onFocus, true);\n portalNode.removeEventListener(\"focusout\", onFocus, true);\n };\n }, [portalNode, preserveTabOrder]);\n props = useWrapElement(props, element => {\n element =\n /*#__PURE__*/\n // While the portal node is not in the DOM, we need to pass the\n // current context to the portal context, otherwise it's going to\n // reset to the body element on nested portals.\n jsx(PortalContext.Provider, {\n value: portalNode || context,\n children: element\n });\n if (!portal) return element;\n\n if (!portalNode) {\n // If the element should be rendered within a portal, but the portal\n // node is not yet in the DOM, we'll return an empty div element. We\n // assign the id to the element so we can use it to set the portal id\n // later on. We're using position: fixed here so that the browser\n // doesn't add margin to the element when setting gap on a parent\n // element.\n return /*#__PURE__*/jsx(\"span\", {\n ref: refProp,\n id: props.id,\n style: {\n position: \"fixed\"\n }\n });\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getNextTabbable());\n } else {\n queueFocus(beforeOutsideRef.current);\n }\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterInsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getPreviousTabbable());\n } else {\n queueFocus(afterOutsideRef.current);\n }\n }\n })]\n });\n\n if (portalNode) {\n element = /*#__PURE__*/createPortal(element, portalNode);\n }\n\n element = /*#__PURE__*/jsxs(Fragment, {\n children: [preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(beforeInsideRef.current);\n } else {\n queueFocus(getPreviousTabbable());\n }\n }\n }), preserveTabOrder &&\n /*#__PURE__*/\n // We're using position: fixed here so that the browser doesn't\n // add margin to the element when setting gap on a parent element.\n jsx(\"span\", {\n \"aria-owns\": portalNode == null ? void 0 : portalNode.id,\n style: {\n position: \"fixed\"\n }\n }), element, preserveTabOrder && portalNode && /*#__PURE__*/jsx(FocusTrap, {\n ref: afterOutsideRef,\n onFocus: event => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(afterInsideRef.current);\n } else {\n queueFocus(getNextTabbable());\n }\n }\n })]\n });\n return element;\n }, [portalNode, context, portal, props.id, preserveTabOrder]);\n props = { ...props,\n ref: refProp\n };\n return props;\n});\n/**\n * A component that renders an element using `ReactDOM.createPortal`.\n * @see https://ariakit.org/components/portal\n * @example\n * ```jsx\n * Content\n * ```\n */\n\nconst Portal = createComponent(props => {\n const htmlProps = usePortal(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n}\n\nexport { Portal, usePortal };","import { createContext } from 'react';\nconst DialogContext = /*#__PURE__*/createContext(undefined);\nconst DialogHeadingContext = /*#__PURE__*/createContext(undefined);\nconst DialogDescriptionContext = /*#__PURE__*/createContext(undefined);\nexport { DialogContext as D, DialogHeadingContext as a, DialogDescriptionContext as b };","import { useRef, useEffect, useMemo, useCallback, useContext, useState, createContext } from 'react';\nimport { getDocument, contains, getActiveElement, getWindow, isButton, closest } from 'ariakit-utils/dom';\nimport { addGlobalEventListener, isSelfTarget, queueBeforeEvent } from 'ariakit-utils/events';\nimport { getFirstTabbableIn, focusIfNeeded, isFocusable } from 'ariakit-utils/focus';\nimport { useSafeLayoutEffect, useBooleanEvent, useEvent, useForkRef, useForceUpdate, useLiveRef, usePortalRef, useId, useWrapElement } from 'ariakit-utils/hooks';\nimport { noop, chain } from 'ariakit-utils/misc';\nimport { isApple, isMac, isSafari } from 'ariakit-utils/platform';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosureContent } from '../disclosure/disclosure-content.js';\nimport { useFocusTrapRegion } from '../focus-trap/focus-trap-region.js';\nimport { useFocusable } from '../focusable/focusable.js';\nimport { HeadingLevel } from '../heading/heading-level.js';\nimport { usePortal } from '../portal/portal.js';\nimport { jsx } from 'react/jsx-runtime';\nimport { D as DialogContext, a as DialogHeadingContext, b as DialogDescriptionContext } from '../dialog-context-f963dd70.js';\nimport { flushSync } from 'react-dom';\n\nfunction usePreviousMouseDownRef(enabled) {\n const previousMouseDownRef = useRef();\n useEffect(() => {\n if (!enabled) {\n previousMouseDownRef.current = null;\n return;\n }\n\n const onMouseDown = event => {\n previousMouseDownRef.current = event.target;\n };\n\n return addGlobalEventListener(\"mousedown\", onMouseDown, true);\n }, [enabled]);\n return previousMouseDownRef;\n}\n\nfunction DialogBackdrop(_ref) {\n var _state$contentElement;\n\n let {\n state,\n backdrop,\n backdropProps,\n hideOnInteractOutside = true,\n hideOnEscape = true,\n hidden,\n children\n } = _ref;\n const ref = useRef(null);\n state = useMemo(() => ({ ...state,\n // Override the setContentElement method to prevent the backdrop from\n // overwriting the dialog's content element.\n setContentElement: noop\n }), [state]);\n useSafeLayoutEffect(() => {\n const backdrop = ref.current;\n const dialog = state.contentElement;\n if (!backdrop) return;\n if (!dialog) return;\n backdrop.style.zIndex = getComputedStyle(dialog).zIndex;\n }, [state.contentElement]);\n const onClickProp = backdropProps == null ? void 0 : backdropProps.onClick;\n const hideOnInteractOutsideProp = useBooleanEvent(hideOnInteractOutside);\n const previousMouseDownRef = usePreviousMouseDownRef(state.mounted);\n const onClick = useEvent(event => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (previousMouseDownRef.current !== event.currentTarget) return;\n if (!hideOnInteractOutsideProp(event)) return;\n event.stopPropagation();\n state.hide();\n });\n const onKeyDownProp = backdropProps == null ? void 0 : backdropProps.onKeyDown;\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // When hideOnInteractOutside is false and the backdrop is clicked, the\n // backdrop will receive focus (because we set the tabIndex on it). Therefore,\n // the Escape key will not be captured by the Dialog component. So we listen\n // to it here.\n\n const onKeyDown = useEvent(event => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Escape\") return;\n if (!isSelfTarget(event)) return;\n if (!hideOnEscapeProp(event)) return;\n state.hide();\n });\n const props = useDisclosureContent({\n state,\n id: undefined,\n role: \"presentation\",\n tabIndex: -1,\n hidden,\n ...backdropProps,\n ref: useForkRef(backdropProps == null ? void 0 : backdropProps.ref, ref),\n onClick,\n onKeyDown,\n style: {\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...(backdropProps == null ? void 0 : backdropProps.style)\n }\n });\n const Component = typeof backdrop !== \"boolean\" ? backdrop || \"div\" : \"div\";\n return /*#__PURE__*/jsx(Component, { ...props,\n \"data-backdrop\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n children: children\n });\n} // We don't need to walk through certain tags.\n\n\nconst ignoreTags = [\"SCRIPT\", \"STYLE\"];\n\nfunction isValidElement(element, ignoredElements) {\n if (ignoreTags.includes(element.tagName)) return false;\n return !ignoredElements.some(enabledElement => enabledElement && contains(element, enabledElement));\n}\n\nfunction walkTreeOutside(elements, callback) {\n for (let element of elements) {\n const document = getDocument(element); // Loops through the parent elements and then through each of their\n // children.\n\n while ((_element = element) != null && _element.parentElement && element !== document.body) {\n var _element;\n\n for (const child of element.parentElement.children) {\n if (isValidElement(child, elements)) {\n callback(child);\n }\n }\n\n element = element.parentElement;\n }\n }\n}\n\nfunction disableElement$1(element) {\n const previousAriaHidden = element.getAttribute(\"aria-hidden\") || \"\";\n element.setAttribute(\"aria-hidden\", \"true\");\n\n const enableElement = () => {\n if (previousAriaHidden) {\n element.setAttribute(\"aria-hidden\", previousAriaHidden);\n } else {\n element.removeAttribute(\"aria-hidden\");\n }\n };\n\n return enableElement;\n}\n\nfunction disableAccessibilityTreeOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement$1(element));\n });\n\n const restoreAccessibilityTree = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restoreAccessibilityTree;\n}\n\nfunction disableElement(element) {\n if (!(\"style\" in element)) return noop;\n const previousPointerEvents = element.style.pointerEvents;\n element.style.pointerEvents = \"none\";\n\n const enableElement = () => {\n element.style.pointerEvents = previousPointerEvents != null ? previousPointerEvents : \"\";\n };\n\n return enableElement;\n}\n\nfunction disablePointerEventsOutside() {\n const cleanups = [];\n\n for (var _len = arguments.length, elements = new Array(_len), _key = 0; _key < _len; _key++) {\n elements[_key] = arguments[_key];\n }\n\n walkTreeOutside(elements, element => {\n cleanups.unshift(disableElement(element));\n });\n\n const restorePointerEvents = () => {\n cleanups.forEach(fn => fn());\n };\n\n return restorePointerEvents;\n}\n\nfunction prependHiddenDismiss(container, onClick) {\n const document = getDocument(container);\n const button = document.createElement(\"button\");\n button.type = \"button\";\n button.tabIndex = -1;\n button.textContent = \"Dismiss popup\"; // Visually hidden styles\n\n button.style.border = \"0px\";\n button.style.clip = \"rect(0 0 0 0)\";\n button.style.height = \"1px\";\n button.style.margin = \"-1px\";\n button.style.overflow = \"hidden\";\n button.style.padding = \"0px\";\n button.style.position = \"absolute\";\n button.style.whiteSpace = \"nowrap\";\n button.style.width = \"1px\";\n button.addEventListener(\"click\", onClick);\n container.prepend(button);\n\n const removeHiddenDismiss = () => {\n button.removeEventListener(\"click\", onClick);\n button.remove();\n };\n\n return removeHiddenDismiss;\n}\n/**\n * Controls which dialog is the champion that will control global behavior such\n * as body scrolling and accessibility tree outside.\n */\n\n\nfunction useChampionDialog(dialogRef, attribute, enabled) {\n const [updated, retry] = useForceUpdate();\n const isChampionDialog = useCallback(() => {\n if (!enabled) return false;\n const dialog = dialogRef.current;\n if (!dialog) return false;\n const {\n body\n } = getDocument(dialog);\n const id = body.getAttribute(attribute);\n return !id || id === dialog.id;\n }, [updated, enabled, attribute]);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!enabled) return;\n const {\n body\n } = getDocument(dialog);\n\n if (!isChampionDialog()) {\n const observer = new MutationObserver(() => flushSync(retry));\n observer.observe(body, {\n attributeFilter: [attribute]\n });\n return () => observer.disconnect();\n }\n\n body.setAttribute(attribute, dialog.id);\n return () => {\n body.removeAttribute(attribute);\n };\n }, [updated, dialogRef, enabled, isChampionDialog, attribute]);\n return isChampionDialog;\n}\n/**\n * When the focused child gets removed from the DOM, we make sure to move focus\n * to the dialog.\n */\n\n\nfunction useFocusOnChildUnmount(dialogRef, state) {\n useEffect(() => {\n if (!state.open) return;\n const dialog = dialogRef.current;\n if (!dialog) return;\n const observer = new MutationObserver(_ref => {\n let [mutation] = _ref;\n if (!mutation) return; // If target is not dialog, then this observer was triggered by a nested\n // dialog, so we just ignore it here and let the nested dialog handle it.\n\n if (mutation.target !== dialog) return;\n const document = getDocument(dialog);\n const activeElement = getActiveElement(dialog); // We can check if the current focused element is the document body.\n\n if (activeElement === document.body) {\n dialog.focus();\n }\n });\n observer.observe(dialog, {\n childList: true,\n subtree: true\n });\n return () => observer.disconnect();\n }, [state.open, dialogRef]);\n}\n\nfunction isInDocument(target) {\n if (target.tagName === \"HTML\") return true;\n return contains(getDocument(target).body, target);\n}\n\nfunction isDisclosure(disclosure, target) {\n if (contains(disclosure, target)) return true;\n const activeId = target.getAttribute(\"aria-activedescendant\");\n\n if (activeId) {\n const activeElement = getDocument(disclosure).getElementById(activeId);\n\n if (activeElement) {\n return contains(disclosure, activeElement);\n }\n }\n\n return false;\n}\n\nfunction isBackdrop$1(dialog, target) {\n if (!dialog) return false;\n if (!target) return false;\n return target.hasAttribute(\"data-backdrop\") && target.getAttribute(\"data-backdrop\") === dialog.id;\n}\n\nfunction dialogContains(target) {\n return dialogRef => {\n const dialog = dialogRef.current;\n if (!dialog) return false;\n if (contains(dialog, target)) return true;\n if (isBackdrop$1(dialog, target)) return true;\n return false;\n };\n}\n\nfunction useEventOutside(_ref) {\n let {\n type,\n listener,\n dialogRef,\n nestedDialogs,\n disclosureRef,\n enabled,\n capture\n } = _ref;\n const callListener = useEvent(listener);\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n useEffect(() => {\n if (!enabled) return;\n\n const onEvent = event => {\n const container = dialogRef.current;\n const disclosure = disclosureRef == null ? void 0 : disclosureRef.current;\n const target = event.target;\n if (!container) return;\n if (!target) return; // When an element is unmounted right after it receives focus, the focus\n // event is triggered after that, when the element isn't part of the\n // current document anymore. We just ignore it.\n\n if (!isInDocument(target)) return; // Event inside dialog\n\n if (contains(container, target)) return; // Event on disclosure\n\n if (disclosure && isDisclosure(disclosure, target)) return; // Event on focus trap\n\n if (target.hasAttribute(\"data-focus-trap\")) return; // Event inside a nested dialog\n\n if (nestedDialogsRef.current.some(dialogContains(target))) return;\n callListener(event);\n };\n\n return addGlobalEventListener(type, onEvent, capture);\n }, [enabled, dialogRef, disclosureRef, callListener, capture]);\n}\n\nfunction shouldHideOnInteractOutside(hideOnInteractOutside, event) {\n if (typeof hideOnInteractOutside === \"function\") {\n return hideOnInteractOutside(event);\n }\n\n return !!hideOnInteractOutside;\n}\n\nfunction useHideOnInteractOutside(dialogRef, nestedDialogs, _ref2) {\n let {\n state,\n modal,\n hideOnInteractOutside,\n enabled = state.open\n } = _ref2;\n const previousMouseDownRef = usePreviousMouseDownRef(enabled);\n const props = {\n disclosureRef: state.disclosureRef,\n enabled,\n dialogRef,\n nestedDialogs,\n capture: true\n };\n useEventOutside({ ...props,\n type: \"mousedown\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (modal && !shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n // If the dialog is modal and the user clicked outside the dialog, but\n // shouldHideOnInteractOutside is false, we don't hide the dialog, but\n // ensure focus is placed on it. Otherwise the focus might end up on an\n // element outside of the dialog or the body element itself.\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n });\n useEventOutside({ ...props,\n type: \"click\",\n listener: event => {\n const previousMouseDown = previousMouseDownRef.current; // If there's no previously mousedown'd element, this probably means that\n // the dialog opened with a mousedown event, and a subsequent click event\n // was dispatched outside of the dialog. See form-select example. We just\n // ignore this.\n\n if (!previousMouseDown) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const dialog = dialogRef.current;\n const draggingFromDialog = dialog && contains(dialog, previousMouseDown); // This prevents the dialog from closing by dragging the cursor (for\n // example, selecting some text inside the dialog and releasing the mouse\n // outside of it). See https://github.com/ariakit/ariakit/issues/1336\n\n if (draggingFromDialog) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"focusin\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n } // Fix for https://github.com/ariakit/ariakit/issues/619\n\n\n if (event.target === getDocument(dialog)) return;\n state.hide();\n }\n });\n useEventOutside({ ...props,\n type: \"contextmenu\",\n listener: event => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) {\n if (!modal) return; // Same as the mousedown listener.\n\n dialog.focus();\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n state.hide();\n }\n });\n}\n\nconst NestedDialogsContext = /*#__PURE__*/createContext({});\n/**\n * Handles nested dialogs.\n */\n\nfunction useNestedDialogs(dialogRef, _ref) {\n let {\n state,\n modal\n } = _ref;\n const context = useContext(NestedDialogsContext);\n const [openModals, setOpenModals] = useState([]);\n const [nestedDialogs, setNestedDialogs] = useState([]);\n const addDialog = useCallback(ref => {\n const removeFromContext = context.addDialog == null ? void 0 : context.addDialog(ref);\n setNestedDialogs(dialogs => [...dialogs, ref]);\n return () => {\n removeFromContext == null ? void 0 : removeFromContext();\n setNestedDialogs(dialogs => dialogs.filter(dialog => dialog !== ref));\n };\n }, [context.addDialog]);\n const showModal = useCallback(ref => {\n const hideModal = context.showModal == null ? void 0 : context.showModal(ref);\n setOpenModals(modals => [...modals, ref]);\n return () => {\n hideModal == null ? void 0 : hideModal();\n setOpenModals(modals => modals.filter(modal => modal !== ref));\n };\n }, [context.showModal]); // If this is a nested dialog, add it to the context.\n\n useSafeLayoutEffect(() => {\n return context.addDialog == null ? void 0 : context.addDialog(dialogRef);\n }, [context.addDialog, dialogRef]);\n useSafeLayoutEffect(() => {\n if (!modal) return;\n if (!state.open) return;\n return context.showModal == null ? void 0 : context.showModal(dialogRef);\n }, [modal, state.open, context.showModal, dialogRef]); // Close all nested dialogs when parent dialog closes.\n\n useSafeLayoutEffect(() => {\n if (context.open === false && state.open) {\n state.hide();\n }\n }, [context.open, state.open, state.hide]); // Provider\n\n const providerValue = useMemo(() => ({\n open: state.open,\n addDialog,\n showModal\n }), [state.open, addDialog, showModal]);\n const wrapElement = useCallback(element => /*#__PURE__*/jsx(NestedDialogsContext.Provider, {\n value: providerValue,\n children: element\n }), [providerValue]);\n return {\n nestedDialogs,\n openModals,\n wrapElement\n };\n} // Based on https://github.com/floating-ui/floating-ui/blob/1201e72e67a80e479122293d46d96c9bbc8f156d/packages/react-dom-interactions/src/FloatingOverlay.tsx\n\n\nfunction assignStyle(element, style) {\n if (!element) return () => {};\n const previousStyle = element.style.cssText;\n Object.assign(element.style, style);\n return () => {\n element.style.cssText = previousStyle;\n };\n}\n\nfunction setCSSProperty(element, property, value) {\n if (!element) return () => {};\n const previousValue = element.style.getPropertyValue(property);\n element.style.setProperty(property, value);\n return () => {\n if (previousValue) {\n element.style.setProperty(property, previousValue);\n } else {\n element.style.removeProperty(property);\n }\n };\n}\n\nfunction getPaddingProperty(documentElement) {\n // RTL scrollbar\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\n\nfunction usePreventBodyScroll(dialogRef, enabled) {\n const isChampionDialog = useChampionDialog(dialogRef, \"data-dialog-body-scroll\", enabled);\n useSafeLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n if (!isChampionDialog()) return;\n const doc = getDocument(dialog);\n const win = getWindow(dialog);\n const {\n documentElement,\n body\n } = doc;\n const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n\n const setScrollbarWidthProperty = () => setCSSProperty(documentElement, \"--scrollbar-width\", scrollbarWidth + \"px\");\n\n const paddingProperty = getPaddingProperty(documentElement);\n\n const setStyle = () => assignStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: scrollbarWidth + \"px\"\n }); // Only iOS doesn't respect `overflow: hidden` on document.body\n\n\n const setIOSStyle = () => {\n var _visualViewport$offse, _visualViewport$offse2;\n\n const {\n scrollX,\n scrollY,\n visualViewport\n } = win; // iOS 12 does not support `visuaViewport`.\n\n const offsetLeft = (_visualViewport$offse = visualViewport == null ? void 0 : visualViewport.offsetLeft) != null ? _visualViewport$offse : 0;\n const offsetTop = (_visualViewport$offse2 = visualViewport == null ? void 0 : visualViewport.offsetTop) != null ? _visualViewport$offse2 : 0;\n const restoreStyle = assignStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: \"0\",\n [paddingProperty]: scrollbarWidth + \"px\"\n });\n return () => {\n restoreStyle(); // istanbul ignore next: JSDOM doesn't implement window.scrollTo\n\n if (process.env.NODE_ENV !== \"test\") {\n win.scrollTo(scrollX, scrollY);\n }\n };\n };\n\n const isIOS = isApple() && !isMac();\n return chain(setScrollbarWidthProperty(), isIOS ? setIOSStyle() : setStyle());\n }, [dialogRef, isChampionDialog]);\n}\n\nconst isSafariBrowser = isSafari();\n\nfunction isBackdrop(dialog, element) {\n const id = dialog.id;\n if (!id) return;\n return element.getAttribute(\"data-backdrop\") === id;\n}\n\nfunction isInDialog(element) {\n return dialogRef => dialogRef.current && contains(dialogRef.current, element);\n}\n\nfunction isAlreadyFocusingAnotherElement(dialog, nestedDialogs) {\n const activeElement = getActiveElement();\n if (!activeElement) return false;\n if (contains(dialog, activeElement)) return false;\n if (isBackdrop(dialog, activeElement)) return false;\n if (nestedDialogs != null && nestedDialogs.some(isInDialog(activeElement))) return false;\n if (isFocusable(activeElement)) return true;\n return false;\n}\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialog({ state });\n * Dialog\n * ```\n */\n\n\nconst useDialog = createHook(_ref => {\n let {\n state,\n focusable = true,\n modal = true,\n portal = !!modal,\n backdrop = !!modal,\n backdropProps,\n hideOnEscape = true,\n hideOnInteractOutside = true,\n preventBodyScroll = !!modal,\n autoFocusOnShow = true,\n autoFocusOnHide = true,\n initialFocusRef,\n finalFocusRef,\n ...props\n } = _ref;\n const ref = useRef(null);\n const openRef = useRef(state.open); // domReady can be also the portal node element so it's updated when the\n // portal node changes (like in between re-renders), triggering effects\n // again.\n\n const {\n portalRef,\n portalNode,\n domReady\n } = usePortalRef(portal, props.portalRef); // Sets preserveTabOrder to true only if the dialog is not a modal and is\n // open.\n\n const preserveTabOrder = props.preserveTabOrder && !modal && state.mounted;\n const openStable = state.open && !state.animating; // Usually, we only want to disable the accessibility tree outside if the\n // dialog is a modal. But the Portal component can't preserve the tab order\n // on Safari/VoiceOver. By allowing only the dialog/portal to be accessible,\n // we provide a similar tab order flow. We don't need to disable pointer\n // events because it's just for screen readers.\n\n const shouldDisableAccessibilityTree = modal || portal && preserveTabOrder && isSafari();\n const id = useId(props.id); // Sets disclosure ref. It needs to be a layout effect so we get the focused\n // element right before the dialog is mounted.\n\n useSafeLayoutEffect(() => {\n if (!openStable) return;\n const dialog = ref.current;\n const activeElement = getActiveElement(dialog, true);\n if (!activeElement) return;\n if (activeElement.tagName === \"BODY\") return; // The disclosure element can't be inside the dialog.\n\n if (dialog && contains(dialog, activeElement)) return;\n state.disclosureRef.current = activeElement;\n }, [openStable]);\n const nested = useNestedDialogs(ref, {\n state,\n modal\n });\n const {\n nestedDialogs,\n openModals,\n wrapElement\n } = nested;\n const nestedDialogsRef = useLiveRef(nestedDialogs);\n usePreventBodyScroll(ref, preventBodyScroll && state.mounted); // When a focused child element is removed, focus will be placed on the\n // document's body. This will focus on the dialog instead.\n\n useFocusOnChildUnmount(ref, state);\n useHideOnInteractOutside(ref, nestedDialogs, {\n state,\n modal,\n hideOnInteractOutside,\n enabled: state.open\n }); // Safari does not focus on native buttons on mousedown. The\n // DialogDisclosure component normalizes this behavior using the\n // useFocusable hook, but the disclosure button may use a custom component,\n // and not DialogDisclosure. In this case, we need to make sure the\n // disclosure button gets focused here.\n\n if (isSafariBrowser) {\n useEffect(() => {\n if (!state.mounted) return;\n const disclosure = state.disclosureRef.current;\n if (!disclosure) return;\n if (!isButton(disclosure)) return;\n\n const onMouseDown = () => {\n let receivedFocus = false;\n\n const onFocus = () => {\n receivedFocus = true;\n };\n\n const options = {\n capture: true,\n once: true\n };\n disclosure.addEventListener(\"focusin\", onFocus, options);\n queueBeforeEvent(disclosure, \"mouseup\", () => {\n disclosure.removeEventListener(\"focusin\", onFocus, true);\n if (receivedFocus) return;\n focusIfNeeded(disclosure);\n });\n };\n\n disclosure.addEventListener(\"mousedown\", onMouseDown);\n return () => {\n disclosure.removeEventListener(\"mousedown\", onMouseDown);\n };\n }, [state.mounted, state.disclosureRef]);\n } // Renders a hidden dismiss button at the top of the modal dialog element.\n // So that screen reader users aren't trapped in the dialog when there's no\n // visible dismiss button.\n\n\n useEffect(() => {\n if (!state.mounted) return;\n if (!domReady) return;\n const dialog = ref.current;\n if (!dialog) return; // Usually, we only want to force the presence of a dismiss button if the\n // dialog is a modal. But, on Safari, since we're disabling the\n // accessibility tree outside, we need to ensure the user will be able to\n // close the dialog.\n\n if (shouldDisableAccessibilityTree) {\n // If there's already a DialogDismiss component, it does nothing.\n const existingDismiss = dialog.querySelector(\"[data-dialog-dismiss]\");\n if (existingDismiss) return;\n return prependHiddenDismiss(dialog, state.hide);\n }\n\n return;\n }, [state.mounted, domReady, shouldDisableAccessibilityTree, state.hide]);\n const shouldDisableOutside = useChampionDialog(ref, \"data-dialog-disable-outside\", openStable && !openModals.length && shouldDisableAccessibilityTree); // Disables/enables the element tree around the modal dialog element.\n\n useSafeLayoutEffect(() => {\n // When the dialog is animating, we immediately restore the element tree\n // outside. This means the element tree will be enabled when the focus is\n // moved back to the disclosure element.\n if (!shouldDisableOutside()) return; // If portal is enabled, we get the portalNode instead of the dialog\n // element. This will consider nested dialogs as they will be children of\n // the portal node, but not the dialog. This also accounts for the tiny\n // delay before the dialog element is appended to the portal node, and the\n // portal node is added to the DOM.\n\n const element = portal ? portalNode : ref.current;\n\n if (modal) {\n return chain(disableAccessibilityTreeOutside(element), // When the backdrop is not visible, we also need to disable pointer\n // events outside of the modal dialog.\n !backdrop ? disablePointerEventsOutside(element) : null);\n }\n\n return disableAccessibilityTreeOutside(element);\n }, [shouldDisableOutside, portal, portalNode, modal, backdrop]);\n const prevInitialFocusRef = useRef();\n const mayAutoFocusOnShow = !!autoFocusOnShow;\n const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow); // Auto focus on show.\n\n useEffect(() => {\n var _nestedDialogsRef$cur;\n\n if (!openStable) return;\n if (!mayAutoFocusOnShow) return; // Makes sure to wait for the portalNode to be created before moving\n // focus. This is useful for when the Dialog component is unmounted\n // when hidden.\n\n if (!domReady) return; // If there are open nested dialogs, let them handle the focus.\n\n const hasNestedOpenDialog = (_nestedDialogsRef$cur = nestedDialogsRef.current) == null ? void 0 : _nestedDialogsRef$cur.some(child => child.current && !child.current.hidden);\n if (hasNestedOpenDialog) return; // The dialog element may change for different reasons. For example, when\n // the `modal`, `portal` or `backdrop` props change, the HTML structure\n // will also change, which will affect the dialog element reference.\n // That's why we're listening to `state.contentElement` here instead of\n // getting the `ref.current` value. This ensures this effect will re-run\n // when the dialog element reference changes.\n\n const dialog = state.contentElement;\n if (!(dialog != null && dialog.isConnected)) return;\n const initialFocus = initialFocusRef == null ? void 0 : initialFocusRef.current;\n const element = initialFocus || // We have to fallback to the first focusable element otherwise portaled\n // dialogs with preserveTabOrder set to true will not receive focus\n // properly because the elements aren't tabbable until the dialog\n // receives focus.\n getFirstTabbableIn(dialog, true, portal && preserveTabOrder) || dialog;\n const prevInitialFocus = prevInitialFocusRef.current;\n prevInitialFocusRef.current = initialFocus; // If the initial focus is the same as the previous initial focus and\n // there's already an element with focus inside the dialog, we don't\n // change focus here.\n\n if (initialFocus === prevInitialFocus) {\n const activeElement = getActiveElement(dialog, true);\n if (activeElement && contains(dialog, activeElement)) return;\n }\n\n if (!autoFocusOnShowProp(element)) return;\n element.focus();\n }, [openStable, mayAutoFocusOnShow, domReady, state.contentElement, initialFocusRef, portal, preserveTabOrder, autoFocusOnShowProp]);\n const mayAutoFocusOnHide = !!autoFocusOnHide;\n const autoFocusOnHideProp = useBooleanEvent(autoFocusOnHide); // Auto focus on hide.\n\n useEffect(() => {\n const dialog = ref.current;\n const prevOpen = openRef.current;\n openRef.current = state.open; // We only want to auto focus on hide if the dialog was open before.\n\n if (!prevOpen) return;\n if (!mayAutoFocusOnHide) return;\n if (!dialog) return; // A function so we can use it on the effect setup and cleanup phases.\n\n const focusOnHide = () => {\n const dialogs = nestedDialogsRef.current; // Hide was triggered by a click/focus on a tabbable element outside\n // the dialog or on another dialog. We won't change focus then.\n\n if (isAlreadyFocusingAnotherElement(dialog, dialogs)) return;\n let element = (finalFocusRef == null ? void 0 : finalFocusRef.current) || state.disclosureRef.current;\n\n if (element) {\n if (element.id) {\n const doc = getDocument(element);\n const selector = \"[aria-activedescendant=\\\"\" + element.id + \"\\\"]\";\n const composite = doc.querySelector(selector); // If the element is an item in a composite widget that handles\n // focus with the `aria-activedescendant` attribute, we want to\n // focus on the composite element itself.\n\n if (composite) {\n element = composite;\n }\n } // If the element is not focusable by the time the dialog is hidden,\n // it's probably because it's an element inside another popover or\n // menu that also got hidden when this dialog was shown. We'll try to\n // focus on their disclosure element instead.\n\n\n if (!isFocusable(element)) {\n const parentDialog = closest(element, \"[data-dialog]\");\n\n if (parentDialog && parentDialog.id) {\n const doc = getDocument(parentDialog);\n const selector = \"[aria-controls~=\\\"\" + parentDialog.id + \"\\\"]\";\n const control = doc.querySelector(selector);\n\n if (control) {\n element = control;\n }\n }\n }\n\n if (!autoFocusOnHideProp(element)) return;\n element.focus();\n }\n };\n\n if (!state.open) {\n // If this effect is running while state.open is false, this means\n // that the Dialog component doesn't get unmounted when it's not\n // open, so we can immediatelly move focus.\n return focusOnHide();\n } // Otherwise, we just return the focusOnHide function so it's going to\n // be executed when the Dialog component gets unmounted. This is useful\n // so we can support both mounting and unmounting Dialog components.\n\n\n return focusOnHide;\n }, [mayAutoFocusOnHide, state.open, finalFocusRef, state.disclosureRef, autoFocusOnHideProp]);\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape); // Hide on Escape.\n\n useEffect(() => {\n if (!domReady) return;\n if (!state.mounted) return;\n\n const onKeyDown = event => {\n const dialog = ref.current;\n if (!dialog) return;\n const target = event.target;\n const disclosure = state.disclosureRef.current;\n if (event.key !== \"Escape\") return;\n if (event.defaultPrevented) return;\n if (!target) return; // This considers valid targets only the disclosure element or\n // descendants of the dialog element that are not descendants of nested\n // dialogs.\n\n const isValidTarget = () => {\n if (contains(dialog, target)) {\n const dialogs = nestedDialogsRef.current; // Since this is a native DOM event, it won't be triggered by\n // keystrokes on nested dialogs inside portals. But we still need to\n // check if the target is inside a nested non-portal dialog.\n\n const inNestedDialog = dialogs.some(isInDialog(target));\n if (inNestedDialog) return false;\n return true;\n }\n\n if (disclosure && contains(disclosure, target)) return true;\n return false;\n };\n\n if (isValidTarget() && hideOnEscapeProp(event)) {\n state.hide();\n }\n }; // We're attatching the listener to the document instead of the dialog\n // element so we can also listen to keystrokes on the disclosure element.\n // We can't do this on a onKeyDown prop on the disclosure element because\n // we don't have access to the hideOnEscape prop there.\n\n\n return addGlobalEventListener(\"keydown\", onKeyDown);\n }, [domReady, state.mounted, state.disclosureRef, hideOnEscapeProp, state.hide]); // Wraps the element with the nested dialog context.\n\n props = useWrapElement(props, wrapElement, [wrapElement]); // Resets the heading levels inside the modal dialog so they start with h1.\n\n props = useWrapElement(props, element => /*#__PURE__*/jsx(HeadingLevel, {\n level: modal ? 1 : undefined,\n children: element\n }), [modal]); // Focus traps.\n\n props = useFocusTrapRegion({ ...props,\n enabled: state.open && modal && !openModals.length\n });\n const hiddenProp = props.hidden; // Wraps the dialog with a backdrop element if the backdrop prop is truthy.\n\n props = useWrapElement(props, element => {\n if (backdrop) {\n return /*#__PURE__*/jsx(DialogBackdrop, {\n state: state,\n backdrop: backdrop,\n backdropProps: backdropProps,\n hideOnInteractOutside: hideOnInteractOutside,\n hideOnEscape: hideOnEscape,\n hidden: hiddenProp,\n children: element\n });\n }\n\n return element;\n }, [state, backdrop, backdropProps, hideOnInteractOutside, hideOnEscape, hiddenProp]);\n const [headingId, setHeadingId] = useState();\n const [descriptionId, setDescriptionId] = useState();\n props = useWrapElement(props, element => /*#__PURE__*/jsx(DialogContext.Provider, {\n value: state,\n children: /*#__PURE__*/jsx(DialogHeadingContext.Provider, {\n value: setHeadingId,\n children: /*#__PURE__*/jsx(DialogDescriptionContext.Provider, {\n value: setDescriptionId,\n children: element\n })\n })\n }), [state]);\n props = {\n id,\n \"data-dialog\": \"\",\n role: \"dialog\",\n tabIndex: focusable ? -1 : undefined,\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n ...props,\n ref: useForkRef(ref, props.ref)\n };\n props = useDisclosureContent({\n state,\n ...props\n });\n props = useFocusable({ ...props,\n focusable\n });\n props = usePortal({\n portal,\n ...props,\n portalRef,\n preserveTabOrder\n });\n return props;\n});\n/**\n * A component that renders a dialog element.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * \n * Dialog\n * ```\n */\n\nconst Dialog = createComponent(props => {\n const htmlProps = useDialog(props);\n return createElement(\"div\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Dialog.displayName = \"Dialog\";\n}\n\nexport { Dialog, useDialog };","import { useRef, useState } from 'react';\nimport { useSafeLayoutEffect, useEvent, useBooleanEvent, useForkRef } from 'ariakit-utils/hooks';\nimport { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useButton } from '../button/button.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const state = useDisclosureState();\n * const props = useDisclosure({ state });\n * Disclosure\n * Content\n * ```\n */\n\nconst useDisclosure = createHook(_ref => {\n var _state$contentElement;\n\n let {\n state,\n toggleOnClick = true,\n ...props\n } = _ref;\n const ref = useRef(null);\n const [expanded, setExpanded] = useState(false); // Assigns the disclosureRef whenever it's undefined or disconnected from\n // the DOM. If this disclosure element is the disclosureRef, this element\n // will get the `aria-expanded` attribute set to `true` when the disclosure\n // content is open.\n\n useSafeLayoutEffect(() => {\n const currentDisclosure = state.disclosureRef.current;\n\n if (!currentDisclosure || !currentDisclosure.isConnected) {\n state.disclosureRef.current = ref.current;\n }\n\n const isCurrentDisclosure = state.disclosureRef.current === ref.current;\n setExpanded(state.open && isCurrentDisclosure);\n }, [state.disclosureRef, state.open]);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n });\n const onClickProp = props.onClick;\n const toggleOnClickProp = useBooleanEvent(toggleOnClick);\n const isDuplicate = (\"data-disclosure\" in props);\n const onClick = useEvent(event => {\n state.disclosureRef.current = event.currentTarget;\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (!toggleOnClickProp(event)) return;\n state.toggle();\n });\n props = {\n \"data-disclosure\": \"\",\n \"aria-expanded\": expanded,\n \"aria-controls\": (_state$contentElement = state.contentElement) == null ? void 0 : _state$contentElement.id,\n ...props,\n ref: useForkRef(ref, props.ref),\n onMouseDown,\n onClick\n };\n props = useButton(props);\n return props;\n});\n/**\n * A component that renders an element that controls the visibility of a\n * disclosure content element.\n * @see https://ariakit.org/components/disclosure\n * @example\n * ```jsx\n * const disclosure = useDisclosureState();\n * Disclosure\n * Content\n * ```\n */\n\nconst Disclosure = createComponent(props => {\n const htmlProps = useDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Disclosure.displayName = \"Disclosure\";\n}\n\nexport { Disclosure, useDisclosure };","import { createHook, createComponent, createElement } from 'ariakit-utils/system';\nimport { useDisclosure } from '../disclosure/disclosure.js';\n/**\n * A component hook that returns props that can be passed to `Role` or any other\n * Ariakit component to render a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const state = useDialogState();\n * const props = useDialogDisclosure({ state });\n * Disclosure\n * Content\n * ```\n */\n\nconst useDialogDisclosure = createHook(_ref => {\n let {\n state,\n ...props\n } = _ref;\n props = useDisclosure({\n state,\n ...props\n });\n return props;\n});\n/**\n * A component that renders a button that shows/hides a dialog.\n * @see https://ariakit.org/components/dialog\n * @example\n * ```jsx\n * const dialog = useDialogState();\n * Disclosure\n * Content\n * ```\n */\n\nconst DialogDisclosure = createComponent(props => {\n const htmlProps = useDialogDisclosure(props);\n return createElement(\"button\", htmlProps);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n DialogDisclosure.displayName = \"DialogDisclosure\";\n}\n\nexport { DialogDisclosure, useDialogDisclosure };","import React from 'react'\r\nimport { useStaticQuery, graphql, Link, withPrefix } from 'gatsby'\r\nimport styled from '@xstyled/styled-components'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\n\r\nconst SideNavQuery = graphql`\r\n query SideNavQuery {\r\n allMdx(filter: { fields: { pageType: { eq: \"doc\" }, title: { ne: \"\" } } }) {\r\n edges {\r\n node {\r\n id\r\n fields {\r\n title\r\n pageType\r\n section\r\n order\r\n slug\r\n }\r\n }\r\n }\r\n }\r\n\r\n site {\r\n siteMetadata {\r\n sections\r\n }\r\n }\r\n }\r\n`\r\n\r\nconst createOrFindGroup = (name, groups) => {\r\n const existingGroup = groups.find((group) => group.name === name)\r\n if (existingGroup) return existingGroup\r\n\r\n const group = { name, nodes: [] }\r\n groups.push(group)\r\n return group\r\n}\r\n\r\nconst DEFAULT_ORDER_VALUE = -9999\r\n\r\nconst sortNodes = (a, b) => {\r\n const diff =\r\n a.fields.order !== DEFAULT_ORDER_VALUE &&\r\n b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? a.fields.order - b.fields.order\r\n : a.fields.order !== DEFAULT_ORDER_VALUE\r\n ? -1\r\n : b.fields.order !== DEFAULT_ORDER_VALUE\r\n ? 1\r\n : a.fields.title.localeCompare(b.fields.title)\r\n return diff === 0 ? 0 : diff > 0 ? 1 : -1\r\n}\r\n\r\nconst groupNodes = (nodes) =>\r\n nodes.reduce((groups, node) => {\r\n if (!node.fields.title) return groups\r\n const group = createOrFindGroup(node.fields.section || '', groups)\r\n group.nodes.push(node)\r\n group.nodes.sort(sortNodes)\r\n return groups\r\n }, [])\r\n\r\nconst Nav = styled.nav`\r\n padding: 4 3 5;\r\n`\r\n\r\nconst NavGroup = styled.div`\r\n margin-bottom: 4;\r\n`\r\n\r\nconst NavGroupTitle = styled.h4`\r\n font-size: 14;\r\n font-weight: 500;\r\n color: on-background-light;\r\n text-transform: uppercase;\r\n margin: 0 0 3 0;\r\n`\r\n\r\nconst NavGroupMenu = styled.ul`\r\n margin: 0;\r\n padding: 0;\r\n border-left: 1;\r\n border-left-color: layout-border;\r\n`\r\n\r\nconst NavGroupMenuItem = styled.li`\r\n list-style-type: none;\r\n margin: 2 0 0 -2px;\r\n padding: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n\r\n a {\r\n color: on-background-light;\r\n display: block;\r\n transition: fast;\r\n transition-property: color, border-color;\r\n padding: 2px 0 2px 2;\r\n border-left: 3;\r\n border-color: transparent;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &:hover {\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n\r\n &[aria-current='page'] {\r\n font-weight: 600;\r\n border-color: primary;\r\n color: on-background;\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nconst sortGroupsWithConfig = (section) => (a, b) => {\r\n const indexA = section.indexOf(a.name)\r\n const indexB = section.indexOf(b.name)\r\n const diff = indexA - indexB\r\n return diff === 0 ? 0 : diff < 0 ? -1 : 1\r\n}\r\n\r\nexport function useSideNavState() {\r\n const data = useStaticQuery(SideNavQuery)\r\n return React.useMemo(() => {\r\n const navGroups = groupNodes(data.allMdx.edges.map((edge) => edge.node))\r\n navGroups.sort(sortGroupsWithConfig(data.site.siteMetadata.sections))\r\n return { navGroups }\r\n }, [data])\r\n}\r\n\r\nexport function useSideNavPrevNext({ navGroups }) {\r\n const { pathname } = useLocation()\r\n const nodes = navGroups.flatMap((group) => group.nodes)\r\n const nodeIndex = nodes.findIndex(\r\n (node) => withPrefix(node.fields.slug) === pathname,\r\n )\r\n return {\r\n prev: nodeIndex > -1 ? nodes[nodeIndex - 1] : null,\r\n next: nodeIndex > -1 ? nodes[nodeIndex + 1] : null,\r\n }\r\n}\r\n\r\nexport function SideNav({ navGroups }) {\r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\n// eslint-disable-next-line import/no-unresolved\r\nimport { useLocation } from '@reach/router'\r\nimport styled, { th } from '@xstyled/styled-components'\r\n\r\nconst TOP_OFFSET = 100\r\n\r\nfunction getHeaderAnchors() {\r\n return Array.prototype.filter.call(\r\n document.getElementsByClassName('anchor'),\r\n (testElement) =>\r\n testElement.parentNode.nodeName === 'H2' ||\r\n testElement.parentNode.nodeName === 'H3',\r\n )\r\n}\r\n\r\nfunction getHeaderDataFromAnchor(el) {\r\n return {\r\n url: el.getAttribute('href'),\r\n text: el.parentElement?.innerText,\r\n depth: Number(el.parentElement?.nodeName.replace('H', '')),\r\n }\r\n}\r\n\r\nfunction getAnchorHeaderIdentifier(el) {\r\n return el?.parentElement?.id\r\n}\r\n\r\nexport function useTocHighlight(ref) {\r\n const { pathname } = useLocation()\r\n const [lastActiveLink, setLastActiveLink] = React.useState(undefined)\r\n const [headings, setHeadings] = React.useState([])\r\n\r\n React.useEffect(() => {\r\n setHeadings(getHeaderAnchors().map(getHeaderDataFromAnchor))\r\n }, [pathname])\r\n\r\n React.useEffect(() => {\r\n let headersAnchors = []\r\n let links = []\r\n\r\n function setActiveLink() {\r\n function getActiveHeaderAnchor() {\r\n let index = 0\r\n let activeHeaderAnchor = null\r\n\r\n headersAnchors = getHeaderAnchors()\r\n while (index < headersAnchors.length && !activeHeaderAnchor) {\r\n const headerAnchor = headersAnchors[index]\r\n const { top } = headerAnchor.getBoundingClientRect()\r\n\r\n if (top >= 0 && top <= TOP_OFFSET) {\r\n activeHeaderAnchor = headerAnchor\r\n }\r\n\r\n index += 1\r\n }\r\n\r\n return activeHeaderAnchor\r\n }\r\n\r\n const activeHeaderAnchor = getActiveHeaderAnchor()\r\n\r\n if (activeHeaderAnchor) {\r\n let index = 0\r\n let itemHighlighted = false\r\n\r\n links = ref.current ? ref.current.querySelectorAll('a') : []\r\n\r\n while (index < links.length && !itemHighlighted) {\r\n const link = links[index]\r\n const { href } = link\r\n const anchorValue = decodeURIComponent(\r\n href.substring(href.indexOf('#') + 1),\r\n )\r\n\r\n if (getAnchorHeaderIdentifier(activeHeaderAnchor) === anchorValue) {\r\n if (lastActiveLink) {\r\n lastActiveLink.removeAttribute('aria-current')\r\n }\r\n\r\n link.setAttribute('aria-current', 'true')\r\n\r\n setLastActiveLink(link)\r\n itemHighlighted = true\r\n }\r\n\r\n index += 1\r\n }\r\n }\r\n }\r\n\r\n document.addEventListener('scroll', setActiveLink)\r\n document.addEventListener('resize', setActiveLink)\r\n\r\n setActiveLink()\r\n\r\n return () => {\r\n document.removeEventListener('scroll', setActiveLink)\r\n document.removeEventListener('resize', setActiveLink)\r\n }\r\n })\r\n\r\n return headings\r\n}\r\n\r\nconst TocContainer = styled.div`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 5 3 4; // 5 0 4;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n font-size: 15;\r\n\r\n h4 {\r\n margin: 0;\r\n font-size: 14;\r\n font-weight: 500;\r\n text-transform: uppercase;\r\n color: on-background-light;\r\n }\r\n\r\n ul {\r\n list-style-type: none;\r\n padding: 0;\r\n\r\n li {\r\n margin: 2 0;\r\n\r\n &[data-depth='3'] {\r\n padding-left: 2;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n display: inline-block;\r\n transition: fast;\r\n color: on-background-light;\r\n text-decoration: none;\r\n opacity: 0.85;\r\n\r\n &[aria-current] {\r\n font-weight: 500;\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n\r\n &:hover {\r\n color: on-background;\r\n transform: translateX(2px);\r\n opacity: 1;\r\n }\r\n }\r\n`\r\n\r\nexport function TableOfContents() {\r\n const ref = React.useRef()\r\n const headings = useTocHighlight(ref)\r\n if (!headings.length) return null\r\n return (\r\n \r\n

On this page

\r\n
    \r\n {headings.map((heading, i) =>\r\n heading.url ? (\r\n
  • \r\n {heading.text}\r\n
  • \r\n ) : null,\r\n )}\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th, useUp } from '@xstyled/styled-components'\r\nimport { useDialogState, Dialog, DialogDisclosure } from 'ariakit/dialog'\r\nimport { Portal } from 'ariakit/portal'\r\nimport { VscChevronUp } from 'react-icons/vsc'\r\nimport { RiPencilLine } from 'react-icons/ri'\r\nimport { ScreenContainer } from '../ScreenContainer'\r\nimport { SideNav, useSideNavState, useSideNavPrevNext } from '../SideNav'\r\nimport { SiblingNav, SiblingNavLink } from '../SiblingNav'\r\nimport { Article } from '../Article'\r\nimport { TableOfContents } from '../TableOfContents'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst SidebarDialog = styled.div`\r\n background-color: background-light-a50;\r\n backdrop-filter: blur(3px);\r\n position: fixed;\r\n top: 50;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 20;\r\n overflow: auto;\r\n transition: base;\r\n opacity: 0;\r\n transition: opacity 250ms ease-in-out, transform 250ms ease-in-out;\r\n transform: translate3d(0, 10vh, 0);\r\n\r\n &[data-enter] {\r\n opacity: 1;\r\n transform: translate3d(0, 0, 0);\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n`\r\n\r\nconst Container = styled.div`\r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: 288px minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: 288px minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n )}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst SidebarSticky = styled.aside`\r\n position: sticky;\r\n top: ${th.px(50)};\r\n padding: 4 0;\r\n overflow-y: auto;\r\n height: calc(100vh - 50px);\r\n width: 288px;\r\n\r\n ${down(\r\n 'md',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nconst MenuButton = styled.button`\r\n appearance: none;\r\n border: 0;\r\n border-radius: 50%;\r\n width: 60;\r\n height: 60;\r\n position: fixed;\r\n right: ${th.size(8)};\r\n bottom: ${th.size(8)};\r\n z-index: 25;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n color: background;\r\n background-color: on-background;\r\n transition: base;\r\n transition-property: color;\r\n\r\n &:focus {\r\n color: background;\r\n }\r\n\r\n > svg {\r\n width: 24;\r\n height: 24;\r\n transition: transform 200ms ease-in-out;\r\n\r\n &:first-child {\r\n transform: translateX(-1px);\r\n }\r\n\r\n &:last-child {\r\n transform: translate(-1px) rotate(180deg);\r\n }\r\n }\r\n\r\n &[aria-expanded='true'] {\r\n > svg:first-child {\r\n transform: translate(-1px, 16px);\r\n }\r\n\r\n > svg:last-child {\r\n transform: translate(-1px, -16px) rotate(180deg);\r\n }\r\n }\r\n`\r\n\r\nfunction MobileSidebar({ children }) {\r\n const dialog = useDialogState({ animated: true })\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction PrevNextLinks(props) {\r\n const { prev, next } = useSideNavPrevNext(props)\r\n if (!prev && !next) return null\r\n return (\r\n \r\n {prev && (\r\n \r\n {prev.fields.title}\r\n \r\n )}\r\n {next && (\r\n \r\n {next.fields.title}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport function DocLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = true;\r\n const upMd = useUp('md')\r\n const sideNav = useSideNavState()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {!upMd && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n {children}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\nimport PostHero from \"../blog/PostHero\";\r\nimport PostTitle from \"../blog/PostTitle\";\r\nimport PostDate from \"../blog/PostDate\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n )}\r\n`\r\n\r\nexport function PostLayout({ children, tableOfContents, ...props }) {\r\n const post = children?.props?.pageContext?.frontmatter || {}\r\n const canonical = post.canonical || ''\r\n // console.log(`PostLayout.js`, `post ${JSON.stringify(post)}`)\r\n return (\r\n \r\n \r\n \r\n
\r\n {/*
*/}\r\n {/*

{post.title}

*/}\r\n {/*

{post.date}

*/}\r\n {/*
*/}\r\n {children}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled, { x, css, up, down, th } from '@xstyled/styled-components'\r\nimport { Article } from '../Article'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\nimport { TableOfContents } from \"../TableOfContents\";\r\n\r\nconst Container = styled.div`\r\n background-color: background;\r\n flex: 1;\r\n\r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n \r\n z-index: 0;\r\n position: relative;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n display: grid;\r\n grid-template-columns: minmax(0, 1fr);\r\n // grid-gap: ${th.space(5)};\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n grid-template-columns: minmax(0, 1fr) 288px;\r\n\r\n .sidebar-container {\r\n display: none;\r\n }\r\n `,\r\n)}\r\n`\r\n\r\nconst TocContainer = styled.div`\r\n ${down(\r\n 'xl',\r\n css`\r\n display: none;\r\n `,\r\n)}\r\n`\r\n\r\nexport function PageLayout({ children, tableOfContents, editLink, ...props }) {\r\n console.log(`PageLayout.js`)\r\n return (\r\n \r\n \r\n \r\n
{children}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport styled from '@xstyled/styled-components'\r\nimport { WebSiteLayout } from \"./WebSiteLayout\";\r\n\r\nconst HomeMain = styled.main`\r\n background-color: background;\r\n flex: 1;\r\n \r\n width: 100%;\r\n max-width: 1440px;\r\n margin: 0 auto;\r\n padding-left: 16px;\r\n padding-right: 16px;\r\n`\r\n\r\nexport function HomeLayout({ children, tableOfContents, ...props }) {\r\n props.isDoc = false;\r\n props.isHome = children.key === '/';\r\n return \r\n {children}\r\n \r\n}\r\n","import React from 'react'\r\nimport { DocLayout } from './layouts/DocLayout'\r\nimport { PostLayout } from './layouts/PostLayout'\r\nimport {PageLayout} from \"./layouts/PageLayout\";\r\nimport {HomeLayout} from \"./layouts/HomeLayout\";\r\n\r\nexport function PageWrapper({\r\n children,\r\n props: {\r\n data: { mdx },\r\n },\r\n}) {\r\n console.log(`PageWrapper.js ${mdx?.fields?.pageType}`)\r\n if (!mdx?.fields?.pageType) return children\r\n switch (mdx.fields.pageType) {\r\n case 'doc':\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n case 'page':\r\n console.log(\"PageWrapper\", children);\r\n if(children.key === '/') {\r\n return {children}\r\n } else {\r\n return {children}\r\n }\r\n case 'post':\r\n return {children}\r\n default:\r\n return children\r\n }\r\n}\r\n","import React from 'react'\r\nimport { RootWrapper } from './src/components/RootWrapper'\r\nimport { PageWrapper } from './src/components/PageWrapper'\r\n\r\nexport const wrapRootElement = ({ element }) => {\r\n return {element}\r\n}\r\n\r\nexport const wrapPageElement = ({ element, props }) => {\r\n return {element}\r\n}\r\n","import styled, { css, up, down } from '@xstyled/styled-components'\r\n\r\nexport const Article = styled.article`\r\n .anchor {\r\n margin-left: calc(-1em - 4px);\r\n > svg {\r\n fill: on-background;\r\n width: 1em;\r\n height: 1em;\r\n display: inline;\r\n vertical-align: -15%;\r\n }\r\n }\r\n\r\n code {\r\n background-color: background-light;\r\n color: on-background-primary;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n mark {\r\n background-color: background-mark;\r\n }\r\n\r\n > p {\r\n margin: 3 0;\r\n font-size: 16;\r\n line-height: 1.6;\r\n // max-width: 52em;\r\n }\r\n\r\n /* Intro */\r\n > h1 + p {\r\n font-size: 18;\r\n font-weight: 300;\r\n color: on-background-light;\r\n margin: 2 0 !important;\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 22;\r\n line-height: 1.2;\r\n `,\r\n )};\r\n\r\n a,\r\n strong {\r\n font-weight: 400;\r\n }\r\n }\r\n\r\n > hr {\r\n margin: 0;\r\n height: 0;\r\n border: 0;\r\n border-top: 1;\r\n border-color: layout-border;\r\n margin: 4 0;\r\n\r\n &:first-child {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n > h1 {\r\n font-size: 32;\r\n line-height: 1.1;\r\n font-weight: 600;\r\n margin: 40 0 2;\r\n }\r\n\r\n > h2 {\r\n font-size: 24;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0;\r\n padding-top: 3;\r\n border-top: 1;\r\n border-color: layout-border;\r\n }\r\n\r\n > h1 + h2,\r\n > h2:first-child {\r\n border-top: 0;\r\n margin-top: 0;\r\n padding-top: 0;\r\n }\r\n\r\n > h3 {\r\n font-size: 18;\r\n line-height: 1.2;\r\n font-weight: 600;\r\n margin: 4 0 3;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n overflow-wrap: break-word;\r\n word-break: break-word;\r\n `,\r\n )}\r\n }\r\n\r\n > h4 {\r\n font-weight: 500;\r\n font-size: 16;\r\n line-height: 1.2;\r\n margin: 3 0;\r\n }\r\n\r\n > h4 + p {\r\n margin-top: 3;\r\n }\r\n\r\n > ul + p {\r\n margin-top: 2;\r\n }\r\n\r\n .editor {\r\n background-color: editor-background;\r\n color: editor-text;\r\n padding: 3 4;\r\n margin: 4 -3;\r\n overflow: auto;\r\n font-size: 14;\r\n line-height: 1.45;\r\n border-radius: base;\r\n\r\n ${down(\r\n 'sm',\r\n css`\r\n margin-left: -4;\r\n margin-right: -4;\r\n border-radius: 0;\r\n `,\r\n )}\r\n }\r\n\r\n > code {\r\n background-color: editor-background;\r\n border-radius: base;\r\n color: inherit;\r\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono,\r\n Courier New, monospace;\r\n font-size: 85%;\r\n padding: 1 2;\r\n }\r\n\r\n img {\r\n max-width: 100%;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-top: 4;\r\n font-size: 16;\r\n padding-left: 4;\r\n\r\n p,\r\n p:first-of-type {\r\n font-size: 16;\r\n margin-top: 0;\r\n line-height: 1.2;\r\n }\r\n\r\n li {\r\n margin-top: 2;\r\n }\r\n\r\n ol,\r\n ul {\r\n margin-left: 4;\r\n margin-top: 2;\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n }\r\n\r\n > blockquote {\r\n font-size: 16;\r\n background-color: blockquote-background;\r\n border-left: 8;\r\n border-color: blockquote-border;\r\n padding: 3;\r\n margin: 3 -2;\r\n border-radius: blockquote;\r\n\r\n code {\r\n background-color: rgba(255, 255, 255, 0.1);\r\n background-blend-mode: color;\r\n color: on-background;\r\n border-radius: base;\r\n padding: 0 1;\r\n }\r\n\r\n p {\r\n margin-top: 3;\r\n\r\n &:first-of-type {\r\n margin-top: 0;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n color: blockquote-link;\r\n text-decoration: underline;\r\n\r\n &:hover {\r\n color: on-background;\r\n }\r\n }\r\n }\r\n\r\n a {\r\n transition: fast;\r\n text-decoration: underline;\r\n color: on-background-primary;\r\n\r\n &:hover {\r\n color: on-background-primary-dark;\r\n }\r\n }\r\n`\r\n","/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\n\n/**\n * prism-react-renderer:\n * This file has been modified to remove:\n * - globals and window dependency\n * - worker support\n * - highlightAll and other element dependent methods\n * - _.hooks helpers\n * - UMD/node-specific hacks\n * It has also been run through prettier\n */\nvar Prism = function () {\n // Private helper vars\n var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n var uniqueId = 0; // The grammar object for plaintext\n\n var plainTextGrammar = {};\n var _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n encode: function encode(tokens) {\n if (tokens instanceof Token) {\n return new Token(tokens.type, encode(tokens.content), tokens.alias);\n } else if (Array.isArray(tokens)) {\n return tokens.map(encode);\n } else {\n return tokens.replace(/&/g, '&').replace(/} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {};\n var clone;\n var id;\n\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone =\n /** @type {Record} */\n {};\n visited[id] = clone;\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited);\n }\n }\n\n return (\n /** @type {any} */\n clone\n );\n\n case 'Array':\n id = _.util.objId(o);\n\n if (visited[id]) {\n return visited[id];\n }\n\n clone = [];\n visited[id] = clone;\n\n /** @type {Array} */\n\n /** @type {any} */\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited);\n });\n return (\n /** @type {any} */\n clone\n );\n\n default:\n return o;\n }\n },\n\n /**\n * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n *\n * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n *\n * @param {Element} element\n * @returns {string}\n */\n getLanguage: function (element) {\n while (element) {\n var m = lang.exec(element.className);\n\n if (m) {\n return m[1].toLowerCase();\n }\n\n element = element.parentElement;\n }\n\n return 'none';\n },\n\n /**\n * Sets the Prism `language-xxxx` class of the given element.\n *\n * @param {Element} element\n * @param {string} language\n * @returns {void}\n */\n setLanguage: function (element, language) {\n // remove all `language-xxxx` classes\n // (this might leave behind a leading space)\n element.className = element.className.replace(RegExp(lang, 'gi'), ''); // add the new `language-xxxx` class\n // (using `classList` will automatically clean up spaces for us)\n\n element.classList.add('language-' + language);\n },\n\n /**\n * Returns whether a given class is active for `element`.\n *\n * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n * given class is just the given class with a `no-` prefix.\n *\n * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n * ancestors have the given class or the negated version of it, then the default activation will be returned.\n *\n * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n * version of it, the class is considered active.\n *\n * @param {Element} element\n * @param {string} className\n * @param {boolean} [defaultActivation=false]\n * @returns {boolean}\n */\n isActive: function (element, className, defaultActivation) {\n var no = 'no-' + className;\n\n while (element) {\n var classList = element.classList;\n\n if (classList.contains(className)) {\n return true;\n }\n\n if (classList.contains(no)) {\n return false;\n }\n\n element = element.parentElement;\n }\n\n return !!defaultActivation;\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function (id, redef) {\n var lang = _.util.clone(_.languages[id]);\n\n for (var key in redef) {\n lang[key] = redef[key];\n }\n\n return lang;\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `\r\n ${basePackage}.core.domain.events\r\n ${basePackage}.core.outbound.events\r\n ${basePackage}.adapters.commands\r\n \r\n \r\n \r\n \r\n\r\n \x3c!-- add any sdk plugin (custom or standard) as dependency here --\x3e\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-spring-cloud-streams3\r\n ${zenwave.version}\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-jsonschema2pojo\r\n ${zenwave.version}\r\n \r\n \r\n\n")),"\n",r.createElement(n.h2,{id:"producing-domain-events-with-generated-code",style:{position:"relative"}},r.createElement(n.a,{href:"#producing-domain-events-with-generated-code","aria-label":"producing domain events with generated code permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Producing Domain Events with Generated Code"),"\n",r.createElement(n.p,null,"By default, ZenWave generates Spring Cloud Streams implementation that counts with different binders for virtually any message broker:"),"\n",r.createElement(o.Ee,{src:"https://zenwave360.github.io/zenwave-sdk/docs/ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg",alt:"ZenWave360 AsyncAPI Spring Cloud Streams"}),"\n",r.createElement(n.pre,null,r.createElement(n.code,null,"📦 target/generated-sources/zenwave\r\n 📦 src/main/java\r\n └─ models (DTOs)\r\n └─ AddressDTO.java\r\n └─ CustomerDTO.java\r\n └─ \r\n └─ ICustomerEventsProducer (interface and header objects)\r\n └─ CustomerEventsProducer (spring-cloud-streams producer)\r\n 📦 src/test/java\r\n └─ \r\n └─ CustomerEventsProducerCaptor (in-memory producer/captor)\r\n └─ EventsProducerInMemoryContext (spring-boot/manual context)\n")),"\n",r.createElement(n.p,null,"With this schema you just need to:"),"\n",r.createElement(n.ul,null,"\n",r.createElement(n.li,null,"Autowire ",r.createElement(n.code,null,"ICustomerEventsProducer")," wherever you would like to produce events."),"\n",r.createElement(n.li,null,"Add ",r.createElement(n.code,null,"CustomerEventsProducer")," to your Spring Boot context and set any required configuration for ",r.createElement(n.code,null,"spring.streams.bindings")," in ",r.createElement(n.code,null,"application.yml"),"."),"\n"),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},"public CustomerServiceImpl {\r\n @Autowired\r\n ICustomerEventsProducer eventsProducer;\r\n // ...\r\n public Customer createCustomer(Customer input) {\r\n // ...\r\n eventsProducer.onCustomerEvent(customerEvent);\r\n // ...\r\n }\r\n}\n")),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-yaml"},"spring:\r\n stream:\r\n bindings:\r\n on-order-event-out-0: ## you can get this name from 'CustomerEventsProducer' class\r\n destination: orders.orders\n")),"\n",r.createElement(n.h2,{id:"inmemory-event-producer-captor-for-your-tests",style:{position:"relative"}},r.createElement(n.a,{href:"#inmemory-event-producer-captor-for-your-tests","aria-label":"inmemory event producer captor for your tests permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"InMemory Event Producer (Captor) for your Tests"),"\n",r.createElement(n.p,null,"ZenWave SDK Maven Plugin will generate an in-memory implementation of your Events Producer that you can use in your tests to capture events and perform assertions on them. All this without a message broker, TestContainers or Mockito."),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},'@Configuration\r\n@Profile("in-memory")\r\npublic class ServicesInMemoryConfig extends RepositoriesInMemoryConfig {\r\n\r\n\tprotected final EventsProducerInMemoryContext eventsProducerInMemoryContext = new EventsProducerInMemoryContext();\r\n\r\n\tprotected final CustomerServiceImpl customerService = new CustomerServiceImpl(\r\n customerRepository(),\r\n\t\t\teventsProducerInMemoryContext.customerEventsProducer());\r\n\r\n\t@Bean\r\n\tpublic CustomerServiceImpl customerService() {\r\n\t\treturn customerService;\r\n\t}\r\n}\n')),"\n",r.createElement(n.p,null,"Now you can perform assertions on captured events in your tests:"),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},"public class CustomerServiceTest {\r\n CustomerEventsProducerCaptor eventsProducerCaptor = serviceInMemoryContext.customerEventsProducerCaptor();\r\n\r\n\t@Test\r\n\tvoid createCustomerTest() {\r\n\t\tvar input = new Customer();\r\n\t\t// TODO fill input data\r\n\r\n\t\tvar customer = customerService.createCustomer(input);\r\n\t\tassertNotNull(customer.getId());\r\n\r\n // Assertions on captured events\r\n var customerEvents = eventsProducerCaptor.getCapturedMessages(eventsProducerCaptor.onCustomerEventBindingName);\r\n Assertions.assertEquals(1, customerEvents.size());\r\n\t}\r\n}\n")),"\n",r.createElement(n.h2,{id:"letting-zenwave-sdk-include-event-producers-in-your-services",style:{position:"relative"}},r.createElement(n.a,{href:"#letting-zenwave-sdk-include-event-producers-in-your-services","aria-label":"letting zenwave sdk include event producers in your services permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Letting ZenWave SDK Include Event Producers in Your Services"),"\n",r.createElement(n.p,null,"Because this depends on ZenWave AsyncAPI Plugins naming conventions, you need to explicitly set ",r.createElement(n.code,null,"includeEmitEventsImplementation")," to ",r.createElement(n.code,null,"true")," in ",r.createElement(n.code,null,"ZenWave SDK Backend Plugin")," option to include event publishing code in your core services."),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},'// This will only be generated if includeEmitEventsImplementation is set to true\r\nprivate final EventsMapper eventsMapper = EventsMapper.INSTANCE;\r\nprivate final ICustomerEventsProducer eventsProducer;\r\n\r\n@Transactional\r\npublic Customer createCustomer(Customer input) {\r\n log.debug("Request to save Customer: {}", input);\r\n var customer = customerServiceMapper.update(new Customer(), input);\r\n customer = customerRepository.save(customer);\r\n\r\n // This will only be generated if includeEmitEventsImplementation is set to true\r\n var customerEvent = eventsMapper.asCustomerEvent(customer);\r\n eventsProducer.onCustomerEvent(customerEvent);\r\n\r\n return customer;\r\n}\n')))}var c=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?r.createElement(n,e,r.createElement(i,e)):i(e)};function s(e){let{children:n}=e;return n}function l(e){return r.createElement(s,e,r.createElement(c,e))}},16376:function(e,n,t){t.d(n,{d2:function(){return r.d},zx:function(){return l},L0:function(){return p},$s:function(){return h},VS:function(){return E},gT:function(){return y},P7:function(){return v},Gz:function(){return g},S:function(){return L},VM:function(){return I},sd:function(){return S},kW:function(){return x},$D:function(){return k},DH:function(){return P},vC:function(){return w},LR:function(){return b},Ee:function(){return N},Bk:function(){return T},Nm:function(){return H},X_:function(){return u.X},YZ:function(){return Z},vk:function(){return W},BW:function(){return M},Mo:function(){return R}});var r=t(63585),a=t(27378),o=t(87573),i=t(30294);const c=e=>{let{background:n,backgroundHover:t,on:r}=e;return()=>(0,i.ivY)(["background-color:",";color:",";&:hover:not(:disabled){background-color:",";color:",";}&:active:not(:disabled){background-color:",";color:",";}"],n,r,t,r,t,r)},s=i.ZPm.buttonBox.withConfig({displayName:"Button__InnerButton",componentId:"sc-1qxez5q-0"})(["appearance:none;border-radius:base;transition:base;font-weight:500;border:0;display:inline-flex;align-items:center;cursor:pointer;font-size:16;padding:2 3;text-decoration:none !important;&:disabled{opacity:0.5;cursor:default;}&[data-variant='primary']{","}&[data-variant='success']{","}&[data-variant='danger']{","}&[data-variant='neutral']{","}"],c({background:"primary-600",backgroundHover:"primary-700",on:"white"}),c({background:"green-600",backgroundHover:"green-700",on:"white"}),c({background:"red-600",backgroundHover:"red-700",on:"white"}),c({background:"gray-300",backgroundHover:"gray-400",on:"black"})),l=a.forwardRef(((e,n)=>{let{variant:t="primary",children:r,...i}=e;return a.createElement(o.z,{ref:n,"data-variant":t},(e=>a.createElement(s,Object.assign({},e,i),r)))}));t(23824),t(31729);var d=t(63681),u=t(84234);const m=i.ZPm.box.withConfig({displayName:"Feature__InnerFeature",componentId:"sc-17n9iec-0"})(["border-left:1;border-left-style:dashed;border-left-color:layout-border;padding-left:4 !important;padding-right:5 !important;"]),p=a.forwardRef(((e,n)=>a.createElement(m,Object.assign({ref:n,col:{xs:1,md:1/3},px:2,pt:4,pb:{xs:2,md:5}},e)))),g=i.ZPm.h2.withConfig({displayName:"Feature__FeatureTitle",componentId:"sc-17n9iec-1"})(["margin:3 0;font-size:16;font-weight:500;border-left:1;border-color:primary-400;margin-left:",";padding-left:",";"],d.th.px(-9),d.th.px(9)),v=i.ZPm.p.withConfig({displayName:"Feature__FeatureText",componentId:"sc-17n9iec-2"})(["color:on-background-light;font-size:15;text-align:justify;margin:4 0;"]),f=i.ZPm.img.withConfig({displayName:"Feature__InnerFeatureImage",componentId:"sc-17n9iec-3"})(["margin-top:3;"]),h=a.forwardRef(((e,n)=>a.createElement(f,Object.assign({ref:n,width:48,height:48},e)))),E=a.forwardRef(((e,n)=>a.createElement(u.X,Object.assign({ref:n,row:!0,my:-4,px:3},e)))),y=a.forwardRef(((e,n)=>a.createElement(i.x.section,Object.assign({ref:n,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),b=i.ZPm.h1Box.withConfig({displayName:"Hero__HeroTitle",componentId:"sc-18tbum5-0"})(["font-size:38;font-weight:600;line-height:1.2;letter-spacing:-1.12px;margin:0 0 2;"," ",""],(0,d.up)("md",(0,i.ivY)(["padding-top:4;font-size:48;"])),(0,d.up)("xl",(0,i.ivY)(["font-size:60;"]))),w=i.ZPm.pBox.withConfig({displayName:"Hero__HeroTeaser",componentId:"sc-18tbum5-1"})(["font-size:18;margin:3 0;"," ",""],(0,d.up)("md",(0,i.ivY)(["font-size:20;"])),(0,d.up)("xl",(0,i.ivY)(["font-size:24;"]))),C=(0,i.ZPm)(u.X).withConfig({displayName:"Hero__InnerHero",componentId:"sc-18tbum5-2"})(["background-repeat:no-repeat;background-position:top -5% center;background-size:100% auto;padding-top:65%;text-align:center;"," ",""],(0,d.up)("md",(0,i.ivY)(["padding-top:0;margin-top:5;background-position:center right;background-size:58% auto;min-height:400;text-align:left;"])),(0,d.up)("xl",(0,i.ivY)(["margin-top:6;"]))),I=a.forwardRef(((e,n)=>{let{backgroundImageURL:t,...r}=e;return a.createElement(C,Object.assign({ref:n,backgroundImage:"url("+t+")"},r))})),k=a.forwardRef(((e,n)=>a.createElement(i.x.div,Object.assign({ref:n,w:{md:.5}},e)))),P=i.ZPm.sectionBox.withConfig({displayName:"Hero__HeroSection",componentId:"sc-18tbum5-3"})(["overflow:hidden;padding-top:2;padding-bottom:5;"]),x=a.forwardRef(((e,n)=>a.createElement(i.x.div,Object.assign({ref:n,row:!0,m:-2,justifyContent:{xs:"center",md:"initial"}},e)))),S=a.forwardRef(((e,n)=>a.createElement(i.x.div,Object.assign({ref:n,col:"auto",p:2},e))));var z=t(24956);const A=i.ZPm.div.withConfig({displayName:"Image__ImageContainer",componentId:"sc-1b0134e-0"})(["text-align:",";"],(e=>e.align)),j=i.ZPm.img.withConfig({displayName:"Image__InnerImage",componentId:"sc-1b0134e-1"})(["display:inline-block;"]),O=(e,n)=>"dark"===n?e.dark||e.src:e.light||e.src,N=a.forwardRef(((e,n)=>a.createElement(A,{align:e.align||"center",className:e.visible},a.createElement(j,Object.assign({ref:n,src:O(e,(0,z.If)()[0])},e)))));t(15239),t(83160);const _=(0,i.ZPm)(i.x.cite).withConfig({displayName:"Quote__Cite",componentId:"sc-12i53kz-0"})(["display:block;text-align:right;margin-top:1rem;"]),T=a.forwardRef(((e,n)=>a.createElement(i.x.blockquote,Object.assign({ref:n,className:"quote"},e)))),H=a.forwardRef(((e,n)=>a.createElement(_,Object.assign({ref:n},e)))),M=a.forwardRef(((e,n)=>a.createElement(i.x.section,Object.assign({ref:n,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),Z=i.ZPm.divBox.withConfig({displayName:"WideFeature",componentId:"sc-1ak5yjf-0"})(["display:block;",")"],(0,d.up)("md",(0,i.ivY)(["margin:0 20px;border-top:1px dashed;border-bottom:1px dotted;border-color:var(--xstyled-colors-layout-border,#d4d4d8);display:grid;grid-template-columns:1fr 1fr 1fr;"]))),R=i.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureText",componentId:"sc-1ak5yjf-1"})(["padding:1rem;grid-column-start:span 2;font-size:18;"," ",""],(0,d.up)("md",(0,i.ivY)(["font-size:20;padding:3rem;padding-top:2rem;"])),(0,d.up)("xl",(0,i.ivY)(["font-size:24;"]))),B=i.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureImageContainer",componentId:"sc-1ak5yjf-2"})(["padding:1rem;text-align:center;"]),D=i.ZPm.imgBox.withConfig({displayName:"WideFeature__InnerImage",componentId:"sc-1ak5yjf-3"})(["display:inline-block;"]),F=(e,n)=>"dark"===n?e.dark||e.src:e.light||e.src,W=a.forwardRef(((e,n)=>a.createElement(B,{className:e.className},a.createElement(D,Object.assign({ref:n,src:F(e,(0,z.If)()[0])},e))))),L=e=>{let{gist:n,file:t}=e;const r=(0,a.useRef)(null);(0,a.useEffect)((()=>{(async()=>{const e=t?"https://gist.githubusercontent.com/"+n+"/raw/"+t:"https://gist.githubusercontent.com/"+n+"/raw";try{const n=await fetch(e);if(n.ok){const e=22*(await n.text()).split("\n").length+40;r.current&&(r.current.style.height=e+"px")}else console.error("Failed to fetch Gist content")}catch(a){console.error("Error fetching Gist content:",a)}})()}),[n,t]);const o=t?"https://gist.github.com/"+n+".pibb?file="+t:"https://gist.github.com/"+n+".pibb",i=t?"https://gist.github.com/"+n+"#file-"+t.replace(/\./g,"-").toLowerCase():"https://gist.github.com/"+n;return a.createElement("div",{style:{border:"1px solid #ccc",padding:"10px 0 0 0",borderRadius:"5px"}},t&&a.createElement("header",{style:{marginLeft:"10px",fontStyle:"oblique"}},a.createElement("span",{role:"img","aria-label":"source code"},"🗒️"),a.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer"},t)),a.createElement("iframe",{title:t,ref:r,src:o,width:"100%",frameBorder:"0",style:{margin:"0",padding:"0"}}))}}}]); -//# sourceMappingURL=component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-2e68d021786d1d178e52.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-2e68d021786d1d178e52.js.map b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-2e68d021786d1d178e52.js.map deleted file mode 100644 index 15ba5f2..0000000 --- a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-2e68d021786d1d178e52.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-2e68d021786d1d178e52.js","mappings":"0LAIA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,GAAI,KACJC,GAAI,KACJC,WAAY,eACXC,EAAAA,EAAAA,MAAsBd,EAAMe,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBf,EAAYG,GAAI,CACnFa,GAAI,0BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,2BACN,aAAc,oCACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,2BAA4B,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,kEAAmE,KAAMS,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,wHAAyH,KAAMS,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,qMAAsM,KAAMS,EAAAA,cAAoBf,EAAYO,GAAI,CACxlBS,GAAI,wDACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,yDACN,aAAc,kEACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,yDAA0D,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,8EAA+ES,EAAAA,cAAoBf,EAAYI,EAAG,CAC9Ne,KAAM,qEACL,uBAAwB,qHAAsH,KAAMJ,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CACtOW,UAAW,kBACV,6OAA8O,KAAML,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,yCAA0C,KAAMS,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC/ZW,UAAW,gBACV,mcAAwc,KAAML,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,mEAAoE,KAAMS,EAAAA,cAAoBf,EAAYU,GAAI,KAAM,KAAMK,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,MAAOI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,UAAW,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,WAAYM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,mBAAoBM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,MAAO,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,YAAa,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,UAAW,QAASM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,kBAAmB,YAAa,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,KAAMI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,6BAA8B,gBAAiBM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,YAAa,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,QAASI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,uBAAwB,kCAAmCM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,6BAA8B,aAAc,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,4BAA6BI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,aAAc,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,wBAAyB,oBAAqBM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,uBAAwB,aAAc,MAAO,KAAMM,EAAAA,cAAoBf,EAAYY,WAAY,KAAM,KAAMG,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,wIAAyI,MAAO,KAAMS,EAAAA,cAAoBf,EAAYO,GAAI,CACz4ES,GAAI,yCACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,0CACN,aAAc,mDACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,0CAA2C,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,eAAgBS,EAAAA,cAAoBf,EAAYI,EAAG,CAChJe,KAAM,yHACL,mCAAoC,6DAA8D,KAAMJ,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,aAAcS,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,4BAA6B,gBAAiB,KAAMM,EAAAA,cAAoBf,EAAYU,GAAI,KAAM,KAAMK,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,OAAQI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,aAAc,yDAA0DM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,aAAc,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,SAAU,kBAAmB,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,OAAQI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,kCAAmC,QAASM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,4BAA6B,qBAAsB,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,2FAA4F,KAAMI,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,aAAcI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,gBAAiB,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,QAASM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,qCAAsC,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,aAAcI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,YAAa,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,UAAW,qFAAsFM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,OAAQ,oEAAqEM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,YAAa,0BAA2B,MAAO,KAAMM,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC//DW,UAAW,gBACV,uuFAAosF,KAAML,EAAAA,cAAoBf,EAAYO,GAAI,CAC/uFS,GAAI,8CACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,+CACN,aAAc,wDACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,+CAAgD,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,0IAA2I,KAAMS,EAAAA,cAAoBQ,EAAAA,GAAO,CAC9QC,IAAK,sGACLC,IAAK,6CACH,KAAMV,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,0jBAA2jB,KAAMM,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,sCAAuC,KAAMS,EAAAA,cAAoBf,EAAYU,GAAI,KAAM,KAAMK,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,YAAaI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,2BAA4B,+CAAgD,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,OAAQI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,0BAA2B,uEAAwEM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,2BAA4B,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,mBAAoB,KAAM,MAAO,KAAMM,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CACh5CW,UAAW,iBACV,sRAAuR,KAAML,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC/WW,UAAW,iBACV,sLAAuL,KAAML,EAAAA,cAAoBf,EAAYO,GAAI,CAClOS,GAAI,gDACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,iDACN,aAAc,0DACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,mDAAoD,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,6OAA8O,KAAMS,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC3aW,UAAW,iBACV,miBAAsiB,KAAML,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,oEAAqE,KAAMS,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAClvBW,UAAW,iBACV,2mBAA4mB,KAAML,EAAAA,cAAoBf,EAAYO,GAAI,CACvpBS,GAAI,+DACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,gEACN,aAAc,yEACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,gEAAiE,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,mGAAoGS,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,mCAAoC,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,8BAA+B,mEAAoE,KAAMM,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CACllBW,UAAW,iBACV,6sBACJ,CAKD,MAJA,SAAoBrB,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAO2B,QAASC,GAAa1B,OAAOC,OAAO,CAAC,GAAGW,EAAAA,EAAAA,MAAsBd,EAAMe,YAC3E,OAAOa,EAAYZ,EAAAA,cAAoBY,EAAW5B,EAAOgB,EAAAA,cAAoBjB,EAAmBC,IAAUD,EAAkBC,EAC7H,EC7GD,SAAS6B,EAAT,GAAiC,IAAZ,SAACC,GAAWC,EAC/B,OAAOD,CACR,CAEc,SAASE,EAAiBhC,GACvC,OAAOgB,EAAAA,cAAoBa,EAAa7B,EAAOgB,EAAAA,cAAoBiB,EAAqBjC,GACzF,C,opBChBD,MAAMkC,EACJH,IAAAA,IAAC,WAAEI,EAAF,gBAAcC,EAAd,GAA+BC,GAAhCN,EAAAA,MACA,KACSO,EAAAA,EAAAA,KAAP,mJACsBH,EACXE,EAGaD,EACXC,EAIWD,EACXC,EAbf,EAkBIE,EAAcC,EAAAA,IAAAA,UAAAA,WAAH,+DAAGA,CAAH,8VAmBXN,EAAQ,CACRC,WAAY,cACZC,gBAAiB,cACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,YACZC,gBAAiB,YACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,UACZC,gBAAiB,UACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,WACZC,gBAAiB,WACjBC,GAAI,WAKGI,EAASzB,EAAAA,YACpB,CAAC,EAA6C0B,KAAS,IAAtD,QAAER,EAAU,UAAZ,SAAuBJ,KAAa9B,GAAiB2C,EACpD,OACE3B,EAAAA,cAAC4B,EAAAA,EAAD,CAAeF,IAAKA,EAAK,eAAcR,IACnCW,GACA7B,EAAAA,cAACuB,EAAD,iBAAiBM,EAAiB7C,GAC/B8B,IAJT,I,4CCtEJ,MAAMgB,EAAeN,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,kIAQLO,EAAU/B,EAAAA,YAAiB,CAAChB,EAAO0C,IAC9C1B,EAAAA,cAAC8B,EAAD,eACEJ,IAAKA,EACLM,IAAK,CAAEC,GAAI,EAAGC,GAAI,EAAI,GACtBC,GAAI,EACJC,GAAI,EACJC,GAAI,CAAEJ,GAAI,EAAGC,GAAI,IACblD,MAIKsD,EAAed,EAAAA,IAAAA,GAAAA,WAAH,iEAAGA,CAAH,qHAMRe,EAAAA,GAAAA,IAAO,GACNA,EAAAA,GAAAA,GAAM,IAGXC,EAAchB,EAAAA,IAAAA,EAAAA,WAAH,gEAAGA,CAAH,2EAOlBiB,EAAoBjB,EAAAA,IAAAA,IAAAA,WAAH,sEAAGA,CAAH,mBAIVkB,EAAe1C,EAAAA,YAAiB,CAAChB,EAAO0C,IACnD1B,EAAAA,cAACyC,EAAD,eAAmBf,IAAKA,EAAKiB,MAAO,GAAIC,OAAQ,IAAQ5D,MAG7C6D,EAAc7C,EAAAA,YAAiB,CAAChB,EAAO0C,IAClD1B,EAAAA,cAAC8C,EAAAA,EAAD,eAAiBpB,IAAKA,EAAKqB,KAAG,EAACC,IAAK,EAAGb,GAAI,GAAOnD,MAGvCiE,EAAiBjD,EAAAA,YAAiB,CAAChB,EAAO0C,IACrD1B,EAAAA,cAACkD,EAAAA,EAAAA,QAAD,eACExB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRtE,MCzDKuE,EAAY/B,EAAAA,IAAAA,MAAAA,WAAH,2DAAGA,CAAH,8FAOlBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,kCAQFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOmC,EAAajC,EAAAA,IAAAA,KAAAA,WAAH,4DAAGA,CAAH,qCAInBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAOFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQAoC,GAAYlC,EAAAA,EAAAA,KAAOsB,EAAAA,GAAVa,WAAA,2DAAGnC,CAAH,wIAOXgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,2HAYFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOsC,EAAO5D,EAAAA,YAClB,CAAC,EAAkC0B,KAAS,IAA3C,mBAAEmC,KAAuB7E,GAAiB+B,EACzC,OACEf,EAAAA,cAAC0D,EAAD,eACEhC,IAAKA,EACLoC,gBAAe,OAASD,EAAT,KACX7E,GAJR,IAUS+E,EAAW/D,EAAAA,YAAiB,CAAChB,EAAO0C,IACxC1B,EAAAA,cAACkD,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKsC,EAAG,CAAE9B,GAAI,KAAWlD,MAGjCiF,EAAczC,EAAAA,IAAAA,WAAAA,WAAH,6DAAGA,CAAH,qDAMX0C,EAAiBlE,EAAAA,YAAiB,CAAChB,EAAO0C,IAEnD1B,EAAAA,cAACkD,EAAAA,EAAAA,IAAD,eACExB,IAAKA,EACLqB,KAAG,EACHoB,GAAI,EACJC,eAAgB,CAAEnC,GAAI,SAAUC,GAAI,YAChClD,MAKGqF,EAAarE,EAAAA,YAAiB,CAAChB,EAAO0C,IAC1C1B,EAAAA,cAACkD,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKM,IAAI,OAAOzC,EAAG,GAAOP,M,eCvG/C,MAAMsF,EAAiB9C,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,qBACHxC,GAASA,EAAMuF,QAE1BC,EAAahD,EAAAA,IAAAA,IAAAA,WAAH,6DAAGA,CAAH,2BAGVf,EAAM,CAACzB,EAAOyF,IACK,SAAdA,EAAsBzF,EAAM0F,MAAQ1F,EAAMyB,IAAMzB,EAAM2F,OAAS3F,EAAMyB,IAEnED,EAAQR,EAAAA,YAAiB,CAAChB,EAAO0C,IAC1C1B,EAAAA,cAACsE,EAAD,CAAgBC,MAAOvF,EAAMuF,OAAS,SAAUlE,UAAWrB,EAAM4F,SAC7D5E,EAAAA,cAACwE,EAAD,eAAY9C,IAAKA,EAAKjB,IAAKA,EAAIzB,GAAO6F,EAAAA,EAAAA,MAAe,KAAS7F,O,kBCZtE,MAAM8F,GAAOtD,EAAAA,EAAAA,KAAO0B,EAAAA,EAAAA,MAAVS,WAAA,uDAAGnC,CAAH,qDAMGuD,EAAQ/E,EAAAA,YAAiB,CAAChB,EAAO0C,IACnC1B,EAAAA,cAACkD,EAAAA,EAAAA,WAAD,eAAcxB,IAAKA,EAAKrB,UAAU,SAAYrB,MAG5CgG,EAAchF,EAAAA,YAAiB,CAAChB,EAAO0C,IACzC1B,EAAAA,cAAC8E,EAAD,eAAMpD,IAAKA,GAAS1C,MCZlBiG,EAAqBjF,EAAAA,YAAiB,CAAChB,EAAO0C,IACvD1B,EAAAA,cAACkD,EAAAA,EAAAA,QAAD,eACIxB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRtE,MAICkG,EAAc1D,EAAAA,IAAAA,OAAAA,WAAH,uDAAGA,CAAH,wBAEpBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,4KAaO6D,EAAkB3D,EAAAA,IAAAA,OAAAA,WAAH,wEAAGA,CAAH,gEAKxBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,kDASFkC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,oBAOA8D,EAA4B5D,EAAAA,IAAAA,OAAAA,WAAH,kFAAGA,CAAH,qCAKzBgD,EAAahD,EAAAA,IAAAA,OAAAA,WAAH,mEAAGA,CAAH,2BAKVf,EAAM,CAACzB,EAAOyF,IACG,SAAdA,EAAsBzF,EAAM0F,MAAQ1F,EAAMyB,IAAMzB,EAAM2F,OAAS3F,EAAMyB,IAEjE4E,EAAmBrF,EAAAA,YAAiB,CAAChB,EAAO0C,IACrD1B,EAAAA,cAACoF,EAAD,CAA2B/E,UAAWrB,EAAMqB,WAC1CL,EAAAA,cAACwE,EAAD,eAAY9C,IAAKA,EAAKjB,IAAKA,EAAIzB,GAAO6F,EAAAA,EAAAA,MAAe,KAAS7F,OC9D9DsG,EAAOvE,IAAqB,IAApB,KAAEwE,EAAF,KAAQC,GAAWzE,EAC/B,MAAM0E,GAAYC,EAAAA,EAAAA,QAAO,OAwBzBC,EAAAA,EAAAA,YAAU,KAtBeC,WACvB,MAAMC,EAAML,EAAI,sCAC0BD,EAD1B,QACsCC,EADtC,sCAE0BD,EAF1B,OAGhB,IACE,MAAMO,QAAiBC,MAAMF,GAC7B,GAAIC,EAASE,GAAI,CACf,MAGMpD,EADa,UAFAkD,EAASG,QACLC,MAAM,MAAMC,OAEK,GACpCV,EAAUW,UACZX,EAAUW,QAAQlG,MAAM0C,OAAYA,EAApC,KANJ,MASEyD,QAAQC,MAAM,+BAIjB,CAFC,MAAOA,GACPD,QAAQC,MAAM,+BAAgCA,EAC/C,GAIDC,EAAkB,GACjB,CAAChB,EAAMC,IAEV,MAAM/E,EAAM+E,EAAI,2BACeD,EADf,cACiCC,EADjC,2BAEeD,EAFf,QAIViB,EAAUhB,EAAI,2BACWD,EADX,SACwBC,EAAKiB,QAAQ,MAAO,KAAKC,cADjD,2BAEWnB,EAE/B,OACEvF,EAAAA,cAAAA,MAAAA,CAAKE,MAAO,CAAEyG,OAAQ,iBAAkBC,QAAS,aAAcC,aAAc,QAC1ErB,GACCxF,EAAAA,cAAAA,SAAAA,CAAQE,MAAO,CAAE4G,WAAY,OAAQC,UAAW,YAC9C/G,EAAAA,cAAAA,OAAAA,CAAMgH,KAAK,MAAM,aAAW,eAA5B,OACAhH,EAAAA,cAAAA,IAAAA,CAAGI,KAAMoG,EAASS,OAAO,SAASC,IAAI,uBACnC1B,IAIPxF,EAAAA,cAAAA,SAAAA,CACEmH,MAAO3B,EACP9D,IAAK+D,EACLhF,IAAKA,EACLkC,MAAM,OACNyE,YAAY,IACZlH,MAAO,CAAEmH,OAAQ,IAAKT,QAAS,OAhBrC,C","sources":["webpack://website/./pages/docs/SDK/ProducingEvents.mdx","webpack://website/../smooth-doc/src/templates/doc.js","webpack://website/../smooth-doc/src/components/Button.js","webpack://website/../smooth-doc/src/components/Feature.js","webpack://website/../smooth-doc/src/components/Hero.js","webpack://website/../smooth-doc/src/components/Image.js","webpack://website/../smooth-doc/src/components/Quote.js","webpack://website/../smooth-doc/src/components/WideFeature.js","webpack://website/../smooth-doc/src/components/Gist.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nimport {Image, Quote, QuoteAuthor} from \"smooth-doc/components\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n h2: \"h2\",\n pre: \"pre\",\n code: \"code\",\n ul: \"ul\",\n li: \"li\",\n blockquote: \"blockquote\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"producing-domain-events\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#producing-domain-events\",\n \"aria-label\": \"producing domain events permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Producing Domain Events\"), \"\\n\", React.createElement(_components.p, null, \"Producing Domain Events with AsyncAPI and ZenWave Maven Plugin\"), \"\\n\", React.createElement(_components.p, null, \"In this section you will learn how to produce domain events from your services and publish them to a message broker.\"), \"\\n\", React.createElement(_components.p, null, \"We will be using AsyncAPI specification to define our message structure, and use ZenWave SDK Maven Plugin to generate models (DTOs) and a producer implementation from your API-First definition.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"using-zenwave-zdl-as-definition-language-for-asyncapi\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#using-zenwave-zdl-as-definition-language-for-asyncapi\",\n \"aria-label\": \"using zenwave zdl as definition language for asyncapi permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Using ZenWave ZDL as Definition Language for AsyncAPI\"), \"\\n\", React.createElement(_components.p, null, \"While AsyncAPI is the source of truth for Event-Driven communication, with \", React.createElement(_components.a, {\n href: \"https://zenwave360.github.io/zenwave-sdk/plugins/zdl-to-asyncapi/\"\n }, \"ZDLToAsyncAPIPlugin\"), \" plugins you can create complete draft version of AsyncAPI specification from your annotated Services and Events.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang zw -p io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin \\\\\\r\\n zdlFile=src/main/resources/model/orders-model.zdl \\\\\\r\\n idType=integer \\\\\\r\\n idTypeFormat=int64 \\\\\\r\\n targetFile=src/main/resources/model/asyncapi.yml\\n\")), \"\\n\", React.createElement(_components.p, null, \"For instance the following ZDL model:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-zdl\"\n }, \"service OrdersService for (CustomerOrder) {\\r\\n // only emited events will be included in the asyncapi definition\\r\\n updateOrder(id, CustomerOrderInput) CustomerOrder withEvents OrderStatusUpdated\\r\\n}\\r\\n\\r\\n@asyncapi({channel: \\\"OrderUpdatesChannel\\\", topic: \\\"orders.order_updates\\\"})\\r\\nevent OrderStatusUpdated {\\r\\n id String\\r\\n dateTime Instant required\\r\\n status OrderStatus required\\r\\n previousStatus OrderStatus\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"Will generate the following sections in an AsyncAPI definition:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"An \", React.createElement(_components.code, null, \"schema\"), \" named \", React.createElement(_components.code, null, \"OrderStatusUpdated\"), \" with a \", React.createElement(_components.code, null, \"payload\"), \" containing the \", React.createElement(_components.code, null, \"id\"), \", \", React.createElement(_components.code, null, \"dateTime\"), \", \", React.createElement(_components.code, null, \"status\"), \" and \", React.createElement(_components.code, null, \"previousStatus\"), \" fields.\"), \"\\n\", React.createElement(_components.li, null, \"A \", React.createElement(_components.code, null, \"message\"), \" named \", React.createElement(_components.code, null, \"OrderStatusUpdatedMessage\"), \" pointing to \", React.createElement(_components.code, null, \"OrderStatusUpdated\"), \" schema.\"), \"\\n\", React.createElement(_components.li, null, \"An a \", React.createElement(_components.code, null, \"Channel\"), \" named \", React.createElement(_components.code, null, \"OrderUpdatesChannel\"), \" containing a reference to the \", React.createElement(_components.code, null, \"OrderStatusUpdatedMessage\"), \" message.\"), \"\\n\", React.createElement(_components.li, null, \"It also will generate an \", React.createElement(_components.code, null, \"Operation\"), \" named \", React.createElement(_components.code, null, \"onOrderStatusUpdated\"), \" with and action \", React.createElement(_components.code, null, \"send\"), \"to the \", React.createElement(_components.code, null, \"OrderUpdatesChannel\"), \" channel.\"), \"\\n\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"💡 This is as a compact format as it can get!! Saving you a lot of typing and giving you very concise representation of your events.\"), \"\\n\"), \"\\n\", React.createElement(_components.h2, {\n id: \"api-first-code-generator-from-asyncapi\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#api-first-code-generator-from-asyncapi\",\n \"aria-label\": \"api first code generator from asyncapi permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"API-First Code Generator from AsyncAPI\"), \"\\n\", React.createElement(_components.p, null, \"You can use \", React.createElement(_components.a, {\n href: \"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/#maven-plugin-configuration-api-first\"\n }, \"API-First AsyncAPI Maven Plugin\"), \" to generate models (DTOs) and a producer implementation.\"), \"\\n\", React.createElement(_components.p, null, \"Configure \", React.createElement(_components.code, null, \"zenwave-sdk-maven-plugin\"), \" as follows:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Set \", React.createElement(_components.code, null, \"inputSpec\"), \" to point to your AsyncAPI specification. You can use \", React.createElement(_components.code, null, \"classpath\"), \", \", React.createElement(_components.code, null, \"file\"), \", \", React.createElement(_components.code, null, \"http(s)\"), \" or \", React.createElement(_components.code, null, \"https\"), \" as inputSpec.\"), \"\\n\", React.createElement(_components.li, null, \"Add \", React.createElement(_components.code, null, \"asyncapi-spring-cloud-streams3\"), \" and \", React.createElement(_components.code, null, \"asyncapi-jsonschema2pojo\"), \" as dependencies.\"), \"\\n\", React.createElement(_components.li, null, \"Add two executions to generate the models (DTOs) and an Events Producer implementation.\"), \"\\n\", React.createElement(_components.li, null, \"Configure \", React.createElement(_components.code, null, \"modelPackage\"), \", \", React.createElement(_components.code, null, \"producerApiPackage\"), \" and \", React.createElement(_components.code, null, \"consumerApiPackage\"), \" to match your project structure.\"), \"\\n\", React.createElement(_components.li, null, \"Configure \", React.createElement(_components.code, null, \"role\"), \" to \", React.createElement(_components.code, null, \"provider\"), \" or \", React.createElement(_components.code, null, \"client\"), \" if you are generating code from a third-party specification. If you are defining \", React.createElement(_components.code, null, \"all\"), \" the operations (client and provider) then you are acting as the \", React.createElement(_components.code, null, \"provider\"), \" which is the default.\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n io.github.zenwave360.zenwave-sdk\\r\\n zenwave-sdk-maven-plugin\\r\\n ${zenwave.version}\\r\\n \\r\\n classpath:/apis/asyncapi.yml\\r\\n true\\r\\n true\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi-provider-dtos\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n jsonschema2pojo\\r\\n \\r\\n ${basePackage}.core.domain.events\\r\\n true\\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi-provider-implementation\\r\\n generate-sources\\r\\n generate\\r\\n \\r\\n spring-cloud-streams3\\r\\n \\r\\n provider\\r\\n \\r\\n ${basePackage}.core.domain.events\\r\\n ${basePackage}.core.outbound.events\\r\\n ${basePackage}.adapters.commands\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-spring-cloud-streams3\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-jsonschema2pojo\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"producing-domain-events-with-generated-code\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#producing-domain-events-with-generated-code\",\n \"aria-label\": \"producing domain events with generated code permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Producing Domain Events with Generated Code\"), \"\\n\", React.createElement(_components.p, null, \"By default, ZenWave generates Spring Cloud Streams implementation that counts with different binders for virtually any message broker:\"), \"\\n\", React.createElement(Image, {\n src: \"https://zenwave360.github.io/zenwave-sdk/docs/ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg\",\n alt: \"ZenWave360 AsyncAPI Spring Cloud Streams\"\n }), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, null, \"📦 target/generated-sources/zenwave\\r\\n 📦 src/main/java\\r\\n └─ models (DTOs)\\r\\n └─ AddressDTO.java\\r\\n └─ CustomerDTO.java\\r\\n └─ \\r\\n └─ ICustomerEventsProducer (interface and header objects)\\r\\n └─ CustomerEventsProducer (spring-cloud-streams producer)\\r\\n 📦 src/test/java\\r\\n └─ \\r\\n └─ CustomerEventsProducerCaptor (in-memory producer/captor)\\r\\n └─ EventsProducerInMemoryContext (spring-boot/manual context)\\n\")), \"\\n\", React.createElement(_components.p, null, \"With this schema you just need to:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Autowire \", React.createElement(_components.code, null, \"ICustomerEventsProducer\"), \" wherever you would like to produce events.\"), \"\\n\", React.createElement(_components.li, null, \"Add \", React.createElement(_components.code, null, \"CustomerEventsProducer\"), \" to your Spring Boot context and set any required configuration for \", React.createElement(_components.code, null, \"spring.streams.bindings\"), \" in \", React.createElement(_components.code, null, \"application.yml\"), \".\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"public CustomerServiceImpl {\\r\\n @Autowired\\r\\n ICustomerEventsProducer eventsProducer;\\r\\n // ...\\r\\n public Customer createCustomer(Customer input) {\\r\\n // ...\\r\\n eventsProducer.onCustomerEvent(customerEvent);\\r\\n // ...\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-yaml\"\n }, \"spring:\\r\\n stream:\\r\\n bindings:\\r\\n on-order-event-out-0: ## you can get this name from 'CustomerEventsProducer' class\\r\\n destination: orders.orders\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"inmemory-event-producer-captor-for-your-tests\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#inmemory-event-producer-captor-for-your-tests\",\n \"aria-label\": \"inmemory event producer captor for your tests permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"InMemory Event Producer (Captor) for your Tests\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK Maven Plugin will generate an in-memory implementation of your Events Producer that you can use in your tests to capture events and perform assertions on them. All this without a message broker, TestContainers or Mockito.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"@Configuration\\r\\n@Profile(\\\"in-memory\\\")\\r\\npublic class ServicesInMemoryConfig extends RepositoriesInMemoryConfig {\\r\\n\\r\\n\\tprotected final EventsProducerInMemoryContext eventsProducerInMemoryContext = new EventsProducerInMemoryContext();\\r\\n\\r\\n\\tprotected final CustomerServiceImpl customerService = new CustomerServiceImpl(\\r\\n customerRepository(),\\r\\n\\t\\t\\teventsProducerInMemoryContext.customerEventsProducer());\\r\\n\\r\\n\\t@Bean\\r\\n\\tpublic CustomerServiceImpl customerService() {\\r\\n\\t\\treturn customerService;\\r\\n\\t}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"Now you can perform assertions on captured events in your tests:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"public class CustomerServiceTest {\\r\\n CustomerEventsProducerCaptor eventsProducerCaptor = serviceInMemoryContext.customerEventsProducerCaptor();\\r\\n\\r\\n\\t@Test\\r\\n\\tvoid createCustomerTest() {\\r\\n\\t\\tvar input = new Customer();\\r\\n\\t\\t// TODO fill input data\\r\\n\\r\\n\\t\\tvar customer = customerService.createCustomer(input);\\r\\n\\t\\tassertNotNull(customer.getId());\\r\\n\\r\\n // Assertions on captured events\\r\\n var customerEvents = eventsProducerCaptor.getCapturedMessages(eventsProducerCaptor.onCustomerEventBindingName);\\r\\n Assertions.assertEquals(1, customerEvents.size());\\r\\n\\t}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"letting-zenwave-sdk-include-event-producers-in-your-services\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#letting-zenwave-sdk-include-event-producers-in-your-services\",\n \"aria-label\": \"letting zenwave sdk include event producers in your services permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Letting ZenWave SDK Include Event Producers in Your Services\"), \"\\n\", React.createElement(_components.p, null, \"Because this depends on ZenWave AsyncAPI Plugins naming conventions, you need to explicitly set \", React.createElement(_components.code, null, \"includeEmitEventsImplementation\"), \" to \", React.createElement(_components.code, null, \"true\"), \" in \", React.createElement(_components.code, null, \"ZenWave SDK Backend Plugin\"), \" option to include event publishing code in your core services.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// This will only be generated if includeEmitEventsImplementation is set to true\\r\\nprivate final EventsMapper eventsMapper = EventsMapper.INSTANCE;\\r\\nprivate final ICustomerEventsProducer eventsProducer;\\r\\n\\r\\n@Transactional\\r\\npublic Customer createCustomer(Customer input) {\\r\\n log.debug(\\\"Request to save Customer: {}\\\", input);\\r\\n var customer = customerServiceMapper.update(new Customer(), input);\\r\\n customer = customerRepository.save(customer);\\r\\n\\r\\n // This will only be generated if includeEmitEventsImplementation is set to true\\r\\n var customerEvent = eventsMapper.asCustomerEvent(customer);\\r\\n eventsProducer.onCustomerEvent(customerEvent);\\r\\n\\r\\n return customer;\\r\\n}\\n\")));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ProducingEvents.mdx\";\nimport {graphql} from 'gatsby';\nexport const pageQuery = graphql`\n query DocPageQuery($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n tableOfContents\n }\n }\n`;\nfunction DocTemplate({children}) {\n return children;\n}\nDocTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(DocTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n","import * as React from 'react'\r\nimport { Button as AriakitButton } from 'ariakit/button'\r\nimport styled, { css } from '@xstyled/styled-components'\r\n\r\nconst variant =\r\n ({ background, backgroundHover, on }) =>\r\n () => {\r\n return css`\r\n background-color: ${background};\r\n color: ${on};\r\n\r\n &:hover:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n\r\n &:active:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n `\r\n }\r\n\r\nconst InnerButton = styled.buttonBox`\r\n appearance: none;\r\n border-radius: base;\r\n transition: base;\r\n font-weight: 500;\r\n border: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font-size: 16;\r\n padding: 2 3;\r\n text-decoration: none !important;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: default;\r\n }\r\n\r\n &[data-variant='primary'] {\r\n ${variant({\r\n background: 'primary-600',\r\n backgroundHover: 'primary-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='success'] {\r\n ${variant({\r\n background: 'green-600',\r\n backgroundHover: 'green-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='danger'] {\r\n ${variant({\r\n background: 'red-600',\r\n backgroundHover: 'red-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='neutral'] {\r\n ${variant({\r\n background: 'gray-300',\r\n backgroundHover: 'gray-400',\r\n on: 'black',\r\n })}\r\n }\r\n`\r\n\r\nexport const Button = React.forwardRef(\r\n ({ variant = 'primary', children, ...props }, ref) => {\r\n return (\r\n \r\n {(buttonProps) => (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n )\r\n },\r\n)\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { th, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst InnerFeature = styled.box`\r\n border-left: 1;\r\n border-left-style: dashed;\r\n border-left-color: layout-border;\r\n padding-left: 4 !important;\r\n padding-right: 5 !important;\r\n`\r\n\r\nexport const Feature = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureTitle = styled.h2`\r\n margin: 3 0;\r\n font-size: 16;\r\n font-weight: 500;\r\n border-left: 1;\r\n border-color: primary-400;\r\n margin-left: ${th.px(-9)};\r\n padding-left: ${th.px(9)};\r\n`\r\n\r\nexport const FeatureText = styled.p`\r\n color: on-background-light;\r\n font-size: 15;\r\n text-align: justify;\r\n margin: 4 0;\r\n`\r\n\r\nconst InnerFeatureImage = styled.img`\r\n margin-top: 3;\r\n`\r\n\r\nexport const FeatureImage = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureList = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nexport const HeroTitle = styled.h1Box`\r\n font-size: 38;\r\n font-weight: 600;\r\n line-height: 1.2;\r\n letter-spacing: -1.12px;\r\n margin: 0 0 2;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 4;\r\n font-size: 48;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 60;\r\n `,\r\n )}\r\n`\r\n\r\nexport const HeroTeaser = styled.pBox`\r\n font-size: 18;\r\n margin: 3 0;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\n\r\nconst InnerHero = styled(ScreenContainer)`\r\n background-repeat: no-repeat;\r\n background-position: top -5% center;\r\n background-size: 100% auto;\r\n padding-top: 65%;\r\n text-align: center;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 0;\r\n margin-top: 5;\r\n background-position: center right;\r\n background-size: 58% auto;\r\n min-height: 400;\r\n text-align: left;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n margin-top: 6;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Hero = React.forwardRef(\r\n ({ backgroundImageURL, ...props }, ref) => {\r\n return (\r\n \r\n )\r\n },\r\n)\r\n\r\nexport const HeroBody = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const HeroSection = styled.sectionBox`\r\n overflow: hidden;\r\n padding-top: 2;\r\n padding-bottom: 5;\r\n`\r\n\r\nexport const HeroActionList = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport const HeroAction = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { useColorMode, th, x } from '@xstyled/styled-components'\r\n\r\nconst ImageContainer = styled.div`\r\n text-align: ${props => props.align};\r\n`\r\nconst InnerImage = styled.img`\r\n display: inline-block;\r\n`\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const Image = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst Cite = styled(x.cite)`\r\n display: block;\r\n text-align: right;\r\n margin-top: 1rem;\r\n`\r\n\r\nexport const Quote = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const QuoteAuthor = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","import styled, {up, css, x, useColorMode} from '@xstyled/styled-components'\r\nimport React from \"react\";\r\n\r\nexport const WideFeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const WideFeature = styled.divBox`\r\n display: block;\r\n ${up(\r\n 'md',\r\n css`\r\n margin: 0 20px;\r\n border-top: 1px dashed;\r\n border-bottom: 1px dotted;\r\n border-color: var(--xstyled-colors-layout-border,#d4d4d8);\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n `,\r\n )})\r\n`\r\n\r\nexport const WideFeatureText = styled.divBox`\r\n padding: 1rem;\r\n grid-column-start: span 2;\r\n\r\n font-size: 18;\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n padding: 3rem;\r\n padding-top: 2rem;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\nconst WideFeatureImageContainer = styled.divBox`\r\n padding: 1rem;\r\n text-align: center;\r\n`\r\n\r\nconst InnerImage = styled.imgBox`\r\n display: inline-block;\r\n //max-width: 300px;\r\n`\r\n\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const WideFeatureImage = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React, { useRef, useEffect } from 'react';\r\nimport { marginLeft } from '@xstyled/styled-components'\r\n\r\nconst Gist = ({ gist, file }) => {\r\n const iframeRef = useRef(null);\r\n\r\n const fetchGistContent = async () => {\r\n const url = file\r\n ? `https://gist.githubusercontent.com/${gist}/raw/${file}`\r\n : `https://gist.githubusercontent.com/${gist}/raw`;\r\n try {\r\n const response = await fetch(url);\r\n if (response.ok) {\r\n const text = await response.text();\r\n const lineCount = text.split('\\n').length;\r\n const lineHeight = 22; // Approximate line height in pixels\r\n const height = lineCount * lineHeight + 40;\r\n if (iframeRef.current) {\r\n iframeRef.current.style.height = `${height}px`;\r\n }\r\n } else {\r\n console.error('Failed to fetch Gist content');\r\n }\r\n } catch (error) {\r\n console.error('Error fetching Gist content:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchGistContent();\r\n }, [gist, file]);\r\n\r\n const src = file\r\n ? `https://gist.github.com/${gist}.pibb?file=${file}`\r\n : `https://gist.github.com/${gist}.pibb`;\r\n\r\n const gistUrl = file\r\n ? `https://gist.github.com/${gist}#file-${file.replace(/\\./g, '-').toLowerCase()}`\r\n : `https://gist.github.com/${gist}`;\r\n\r\n return (\r\n
\r\n {file && (\r\n
\r\n 🗒️\r\n \r\n {file}\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport { Gist };\r\n"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","h2","pre","code","ul","li","blockquote","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","Image","src","alt","wrapper","MDXLayout","DocTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX","variant","background","backgroundHover","on","css","InnerButton","styled","Button","ref","_ref2","AriakitButton","buttonProps","InnerFeature","Feature","col","xs","md","px","pt","pb","FeatureTitle","th","FeatureText","InnerFeatureImage","FeatureImage","width","height","FeatureList","ScreenContainer","row","my","FeatureSection","x","py","borderTop","borderBottom","borderColor","HeroTitle","up","HeroTeaser","InnerHero","withConfig","Hero","backgroundImageURL","backgroundImage","HeroBody","w","HeroSection","HeroActionList","m","justifyContent","HeroAction","ImageContainer","align","InnerImage","colorMode","dark","light","visible","useColorMode","Cite","Quote","QuoteAuthor","WideFeatureSection","WideFeature","WideFeatureText","WideFeatureImageContainer","WideFeatureImage","Gist","gist","file","iframeRef","useRef","useEffect","async","url","response","fetch","ok","text","split","length","current","console","error","fetchGistContent","gistUrl","replace","toLowerCase","border","padding","borderRadius","marginLeft","fontStyle","role","target","rel","title","frameBorder","margin"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js new file mode 100644 index 0000000..f3f234f --- /dev/null +++ b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[265],{55183:function(e,n,t){t.r(n),t.d(n,{default:function(){return l}});var r=t(27378),a=t(20951),o=t(16376);function i(e){const n=Object.assign({h1:"h1",a:"a",div:"div",p:"p",h2:"h2",pre:"pre",code:"code",ul:"ul",li:"li",blockquote:"blockquote"},(0,a.ah)(),e.components);return r.createElement(r.Fragment,null,r.createElement(n.h1,{id:"producing-domain-events",style:{position:"relative"}},r.createElement(n.a,{href:"#producing-domain-events","aria-label":"producing domain events permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Producing Domain Events"),"\n",r.createElement(n.p,null,"Producing Domain Events with AsyncAPI and ZenWave Maven Plugin"),"\n",r.createElement(n.p,null,"In this section you will learn how to produce domain events from your services and publish them to a message broker."),"\n",r.createElement(n.p,null,"We will be using AsyncAPI specification to define our message structure, and use ZenWave SDK Maven Plugin to generate models (DTOs) and a producer implementation from your API-First definition."),"\n",r.createElement(n.h2,{id:"using-zenwave-zdl-as-definition-language-for-asyncapi",style:{position:"relative"}},r.createElement(n.a,{href:"#using-zenwave-zdl-as-definition-language-for-asyncapi","aria-label":"using zenwave zdl as definition language for asyncapi permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Using ZenWave ZDL as Definition Language for AsyncAPI"),"\n",r.createElement(n.p,null,"While AsyncAPI is the source of truth for Event-Driven communication, with ",r.createElement(n.a,{href:"https://www.zenwave360.io/zenwave-sdk/plugins/zdl-to-asyncapi/"},"ZDLToAsyncAPIPlugin")," plugins you can create complete draft version of AsyncAPI specification from your annotated Services and Events."),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-shell"},"jbang zw -p io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin \\\r\n zdlFile=src/main/resources/model/orders-model.zdl \\\r\n idType=integer \\\r\n idTypeFormat=int64 \\\r\n targetFile=src/main/resources/model/asyncapi.yml\n")),"\n",r.createElement(n.p,null,"For instance the following ZDL model:"),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-zdl"},'service OrdersService for (CustomerOrder) {\r\n // only emited events will be included in the asyncapi definition\r\n updateOrder(id, CustomerOrderInput) CustomerOrder withEvents OrderStatusUpdated\r\n}\r\n\r\n@asyncapi({channel: "OrderUpdatesChannel", topic: "orders.order_updates"})\r\nevent OrderStatusUpdated {\r\n id String\r\n dateTime Instant required\r\n status OrderStatus required\r\n previousStatus OrderStatus\r\n}\n')),"\n",r.createElement(n.p,null,"Will generate the following sections in an AsyncAPI definition:"),"\n",r.createElement(n.ul,null,"\n",r.createElement(n.li,null,"An ",r.createElement(n.code,null,"schema")," named ",r.createElement(n.code,null,"OrderStatusUpdated")," with a ",r.createElement(n.code,null,"payload")," containing the ",r.createElement(n.code,null,"id"),", ",r.createElement(n.code,null,"dateTime"),", ",r.createElement(n.code,null,"status")," and ",r.createElement(n.code,null,"previousStatus")," fields."),"\n",r.createElement(n.li,null,"A ",r.createElement(n.code,null,"message")," named ",r.createElement(n.code,null,"OrderStatusUpdatedMessage")," pointing to ",r.createElement(n.code,null,"OrderStatusUpdated")," schema."),"\n",r.createElement(n.li,null,"An a ",r.createElement(n.code,null,"Channel")," named ",r.createElement(n.code,null,"OrderUpdatesChannel")," containing a reference to the ",r.createElement(n.code,null,"OrderStatusUpdatedMessage")," message."),"\n",r.createElement(n.li,null,"It also will generate an ",r.createElement(n.code,null,"Operation")," named ",r.createElement(n.code,null,"onOrderStatusUpdated")," with and action ",r.createElement(n.code,null,"send"),"to the ",r.createElement(n.code,null,"OrderUpdatesChannel")," channel."),"\n"),"\n",r.createElement(n.blockquote,null,"\n",r.createElement(n.p,null,"💡 This is as a compact format as it can get!! Saving you a lot of typing and giving you very concise representation of your events."),"\n"),"\n",r.createElement(n.h2,{id:"api-first-code-generator-from-asyncapi",style:{position:"relative"}},r.createElement(n.a,{href:"#api-first-code-generator-from-asyncapi","aria-label":"api first code generator from asyncapi permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"API-First Code Generator from AsyncAPI"),"\n",r.createElement(n.p,null,"You can use ",r.createElement(n.a,{href:"https://www.zenwave360.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/#maven-plugin-configuration-api-first"},"API-First AsyncAPI Maven Plugin")," to generate models (DTOs) and a producer implementation."),"\n",r.createElement(n.p,null,"Configure ",r.createElement(n.code,null,"zenwave-sdk-maven-plugin")," as follows:"),"\n",r.createElement(n.ul,null,"\n",r.createElement(n.li,null,"Set ",r.createElement(n.code,null,"inputSpec")," to point to your AsyncAPI specification. You can use ",r.createElement(n.code,null,"classpath"),", ",r.createElement(n.code,null,"file"),", ",r.createElement(n.code,null,"http(s)")," or ",r.createElement(n.code,null,"https")," as inputSpec."),"\n",r.createElement(n.li,null,"Add ",r.createElement(n.code,null,"asyncapi-spring-cloud-streams3")," and ",r.createElement(n.code,null,"asyncapi-jsonschema2pojo")," as dependencies."),"\n",r.createElement(n.li,null,"Add two executions to generate the models (DTOs) and an Events Producer implementation."),"\n",r.createElement(n.li,null,"Configure ",r.createElement(n.code,null,"modelPackage"),", ",r.createElement(n.code,null,"producerApiPackage")," and ",r.createElement(n.code,null,"consumerApiPackage")," to match your project structure."),"\n",r.createElement(n.li,null,"Configure ",r.createElement(n.code,null,"role")," to ",r.createElement(n.code,null,"provider")," or ",r.createElement(n.code,null,"client")," if you are generating code from a third-party specification. If you are defining ",r.createElement(n.code,null,"all")," the operations (client and provider) then you are acting as the ",r.createElement(n.code,null,"provider")," which is the default."),"\n"),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-xml"},"\r\n io.github.zenwave360.zenwave-sdk\r\n zenwave-sdk-maven-plugin\r\n ${zenwave.version}\r\n \r\n classpath:/apis/asyncapi.yml\x3c!-- classpath, file, http(s) --\x3e\r\n true\x3c!-- default is true --\x3e\r\n true\x3c!-- default is true --\x3e\r\n \r\n\r\n \r\n \x3c!-- DTOs --\x3e\r\n \r\n generate-asyncapi-provider-dtos\r\n generate-sources\r\n \r\n generate\r\n \r\n \r\n jsonschema2pojo\r\n \r\n ${basePackage}.core.domain.events\r\n true\r\n true\r\n \r\n \r\n \r\n \x3c!-- Generate PROVIDER --\x3e\r\n \r\n generate-asyncapi-provider-implementation\r\n generate-sources\r\n generate\r\n \r\n spring-cloud-streams3\r\n \r\n provider\r\n \r\n ${basePackage}.core.domain.events\r\n ${basePackage}.core.outbound.events\r\n ${basePackage}.adapters.commands\r\n \r\n \r\n \r\n \r\n\r\n \x3c!-- add any sdk plugin (custom or standard) as dependency here --\x3e\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-spring-cloud-streams3\r\n ${zenwave.version}\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-jsonschema2pojo\r\n ${zenwave.version}\r\n \r\n \r\n\n")),"\n",r.createElement(n.h2,{id:"producing-domain-events-with-generated-code",style:{position:"relative"}},r.createElement(n.a,{href:"#producing-domain-events-with-generated-code","aria-label":"producing domain events with generated code permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Producing Domain Events with Generated Code"),"\n",r.createElement(n.p,null,"By default, ZenWave generates Spring Cloud Streams implementation that counts with different binders for virtually any message broker:"),"\n",r.createElement(o.Ee,{src:"https://www.zenwave360.io/zenwave-sdk/docs/ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg",alt:"ZenWave360 AsyncAPI Spring Cloud Streams"}),"\n",r.createElement(n.pre,null,r.createElement(n.code,null,"📦 target/generated-sources/zenwave\r\n 📦 src/main/java\r\n └─ models (DTOs)\r\n └─ AddressDTO.java\r\n └─ CustomerDTO.java\r\n └─ \r\n └─ ICustomerEventsProducer (interface and header objects)\r\n └─ CustomerEventsProducer (spring-cloud-streams producer)\r\n 📦 src/test/java\r\n └─ \r\n └─ CustomerEventsProducerCaptor (in-memory producer/captor)\r\n └─ EventsProducerInMemoryContext (spring-boot/manual context)\n")),"\n",r.createElement(n.p,null,"With this schema you just need to:"),"\n",r.createElement(n.ul,null,"\n",r.createElement(n.li,null,"Autowire ",r.createElement(n.code,null,"ICustomerEventsProducer")," wherever you would like to produce events."),"\n",r.createElement(n.li,null,"Add ",r.createElement(n.code,null,"CustomerEventsProducer")," to your Spring Boot context and set any required configuration for ",r.createElement(n.code,null,"spring.streams.bindings")," in ",r.createElement(n.code,null,"application.yml"),"."),"\n"),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},"public CustomerServiceImpl {\r\n @Autowired\r\n ICustomerEventsProducer eventsProducer;\r\n // ...\r\n public Customer createCustomer(Customer input) {\r\n // ...\r\n eventsProducer.onCustomerEvent(customerEvent);\r\n // ...\r\n }\r\n}\n")),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-yaml"},"spring:\r\n stream:\r\n bindings:\r\n on-order-event-out-0: ## you can get this name from 'CustomerEventsProducer' class\r\n destination: orders.orders\n")),"\n",r.createElement(n.h2,{id:"inmemory-event-producer-captor-for-your-tests",style:{position:"relative"}},r.createElement(n.a,{href:"#inmemory-event-producer-captor-for-your-tests","aria-label":"inmemory event producer captor for your tests permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"InMemory Event Producer (Captor) for your Tests"),"\n",r.createElement(n.p,null,"ZenWave SDK Maven Plugin will generate an in-memory implementation of your Events Producer that you can use in your tests to capture events and perform assertions on them. All this without a message broker, TestContainers or Mockito."),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},'@Configuration\r\n@Profile("in-memory")\r\npublic class ServicesInMemoryConfig extends RepositoriesInMemoryConfig {\r\n\r\n\tprotected final EventsProducerInMemoryContext eventsProducerInMemoryContext = new EventsProducerInMemoryContext();\r\n\r\n\tprotected final CustomerServiceImpl customerService = new CustomerServiceImpl(\r\n customerRepository(),\r\n\t\t\teventsProducerInMemoryContext.customerEventsProducer());\r\n\r\n\t@Bean\r\n\tpublic CustomerServiceImpl customerService() {\r\n\t\treturn customerService;\r\n\t}\r\n}\n')),"\n",r.createElement(n.p,null,"Now you can perform assertions on captured events in your tests:"),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},"public class CustomerServiceTest {\r\n CustomerEventsProducerCaptor eventsProducerCaptor = serviceInMemoryContext.customerEventsProducerCaptor();\r\n\r\n\t@Test\r\n\tvoid createCustomerTest() {\r\n\t\tvar input = new Customer();\r\n\t\t// TODO fill input data\r\n\r\n\t\tvar customer = customerService.createCustomer(input);\r\n\t\tassertNotNull(customer.getId());\r\n\r\n // Assertions on captured events\r\n var customerEvents = eventsProducerCaptor.getCapturedMessages(eventsProducerCaptor.onCustomerEventBindingName);\r\n Assertions.assertEquals(1, customerEvents.size());\r\n\t}\r\n}\n")),"\n",r.createElement(n.h2,{id:"letting-zenwave-sdk-include-event-producers-in-your-services",style:{position:"relative"}},r.createElement(n.a,{href:"#letting-zenwave-sdk-include-event-producers-in-your-services","aria-label":"letting zenwave sdk include event producers in your services permalink",className:"anchor before"},r.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Letting ZenWave SDK Include Event Producers in Your Services"),"\n",r.createElement(n.p,null,"Because this depends on ZenWave AsyncAPI Plugins naming conventions, you need to explicitly set ",r.createElement(n.code,null,"includeEmitEventsImplementation")," to ",r.createElement(n.code,null,"true")," in ",r.createElement(n.code,null,"ZenWave SDK Backend Plugin")," option to include event publishing code in your core services."),"\n",r.createElement(n.pre,null,r.createElement(n.code,{className:"language-java"},'// This will only be generated if includeEmitEventsImplementation is set to true\r\nprivate final EventsMapper eventsMapper = EventsMapper.INSTANCE;\r\nprivate final ICustomerEventsProducer eventsProducer;\r\n\r\n@Transactional\r\npublic Customer createCustomer(Customer input) {\r\n log.debug("Request to save Customer: {}", input);\r\n var customer = customerServiceMapper.update(new Customer(), input);\r\n customer = customerRepository.save(customer);\r\n\r\n // This will only be generated if includeEmitEventsImplementation is set to true\r\n var customerEvent = eventsMapper.asCustomerEvent(customer);\r\n eventsProducer.onCustomerEvent(customerEvent);\r\n\r\n return customer;\r\n}\n')))}var c=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?r.createElement(n,e,r.createElement(i,e)):i(e)};function s(e){let{children:n}=e;return n}function l(e){return r.createElement(s,e,r.createElement(c,e))}},16376:function(e,n,t){t.d(n,{d2:function(){return r.d},zx:function(){return l},L0:function(){return p},$s:function(){return h},VS:function(){return E},gT:function(){return y},P7:function(){return v},Gz:function(){return g},S:function(){return L},VM:function(){return I},sd:function(){return S},kW:function(){return x},$D:function(){return k},DH:function(){return P},vC:function(){return w},LR:function(){return b},Ee:function(){return N},Bk:function(){return T},Nm:function(){return H},X_:function(){return u.X},YZ:function(){return Z},vk:function(){return W},BW:function(){return M},Mo:function(){return R}});var r=t(63585),a=t(27378),o=t(87573),i=t(30294);const c=e=>{let{background:n,backgroundHover:t,on:r}=e;return()=>(0,i.ivY)(["background-color:",";color:",";&:hover:not(:disabled){background-color:",";color:",";}&:active:not(:disabled){background-color:",";color:",";}"],n,r,t,r,t,r)},s=i.ZPm.buttonBox.withConfig({displayName:"Button__InnerButton",componentId:"sc-1qxez5q-0"})(["appearance:none;border-radius:base;transition:base;font-weight:500;border:0;display:inline-flex;align-items:center;cursor:pointer;font-size:16;padding:2 3;text-decoration:none !important;&:disabled{opacity:0.5;cursor:default;}&[data-variant='primary']{","}&[data-variant='success']{","}&[data-variant='danger']{","}&[data-variant='neutral']{","}"],c({background:"primary-600",backgroundHover:"primary-700",on:"white"}),c({background:"green-600",backgroundHover:"green-700",on:"white"}),c({background:"red-600",backgroundHover:"red-700",on:"white"}),c({background:"gray-300",backgroundHover:"gray-400",on:"black"})),l=a.forwardRef(((e,n)=>{let{variant:t="primary",children:r,...i}=e;return a.createElement(o.z,{ref:n,"data-variant":t},(e=>a.createElement(s,Object.assign({},e,i),r)))}));t(23824),t(31729);var d=t(63681),u=t(84234);const m=i.ZPm.box.withConfig({displayName:"Feature__InnerFeature",componentId:"sc-17n9iec-0"})(["border-left:1;border-left-style:dashed;border-left-color:layout-border;padding-left:4 !important;padding-right:5 !important;"]),p=a.forwardRef(((e,n)=>a.createElement(m,Object.assign({ref:n,col:{xs:1,md:1/3},px:2,pt:4,pb:{xs:2,md:5}},e)))),g=i.ZPm.h2.withConfig({displayName:"Feature__FeatureTitle",componentId:"sc-17n9iec-1"})(["margin:3 0;font-size:16;font-weight:500;border-left:1;border-color:primary-400;margin-left:",";padding-left:",";"],d.th.px(-9),d.th.px(9)),v=i.ZPm.p.withConfig({displayName:"Feature__FeatureText",componentId:"sc-17n9iec-2"})(["color:on-background-light;font-size:15;text-align:justify;margin:4 0;"]),f=i.ZPm.img.withConfig({displayName:"Feature__InnerFeatureImage",componentId:"sc-17n9iec-3"})(["margin-top:3;"]),h=a.forwardRef(((e,n)=>a.createElement(f,Object.assign({ref:n,width:48,height:48},e)))),E=a.forwardRef(((e,n)=>a.createElement(u.X,Object.assign({ref:n,row:!0,my:-4,px:3},e)))),y=a.forwardRef(((e,n)=>a.createElement(i.x.section,Object.assign({ref:n,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),b=i.ZPm.h1Box.withConfig({displayName:"Hero__HeroTitle",componentId:"sc-18tbum5-0"})(["font-size:38;font-weight:600;line-height:1.2;letter-spacing:-1.12px;margin:0 0 2;"," ",""],(0,d.up)("md",(0,i.ivY)(["padding-top:4;font-size:48;"])),(0,d.up)("xl",(0,i.ivY)(["font-size:60;"]))),w=i.ZPm.pBox.withConfig({displayName:"Hero__HeroTeaser",componentId:"sc-18tbum5-1"})(["font-size:18;margin:3 0;"," ",""],(0,d.up)("md",(0,i.ivY)(["font-size:20;"])),(0,d.up)("xl",(0,i.ivY)(["font-size:24;"]))),C=(0,i.ZPm)(u.X).withConfig({displayName:"Hero__InnerHero",componentId:"sc-18tbum5-2"})(["background-repeat:no-repeat;background-position:top -5% center;background-size:100% auto;padding-top:65%;text-align:center;"," ",""],(0,d.up)("md",(0,i.ivY)(["padding-top:0;margin-top:5;background-position:center right;background-size:58% auto;min-height:400;text-align:left;"])),(0,d.up)("xl",(0,i.ivY)(["margin-top:6;"]))),I=a.forwardRef(((e,n)=>{let{backgroundImageURL:t,...r}=e;return a.createElement(C,Object.assign({ref:n,backgroundImage:"url("+t+")"},r))})),k=a.forwardRef(((e,n)=>a.createElement(i.x.div,Object.assign({ref:n,w:{md:.5}},e)))),P=i.ZPm.sectionBox.withConfig({displayName:"Hero__HeroSection",componentId:"sc-18tbum5-3"})(["overflow:hidden;padding-top:2;padding-bottom:5;"]),x=a.forwardRef(((e,n)=>a.createElement(i.x.div,Object.assign({ref:n,row:!0,m:-2,justifyContent:{xs:"center",md:"initial"}},e)))),S=a.forwardRef(((e,n)=>a.createElement(i.x.div,Object.assign({ref:n,col:"auto",p:2},e))));var z=t(24956);const A=i.ZPm.div.withConfig({displayName:"Image__ImageContainer",componentId:"sc-1b0134e-0"})(["text-align:",";"],(e=>e.align)),j=i.ZPm.img.withConfig({displayName:"Image__InnerImage",componentId:"sc-1b0134e-1"})(["display:inline-block;"]),O=(e,n)=>"dark"===n?e.dark||e.src:e.light||e.src,N=a.forwardRef(((e,n)=>a.createElement(A,{align:e.align||"center",className:e.visible},a.createElement(j,Object.assign({ref:n,src:O(e,(0,z.If)()[0])},e)))));t(15239),t(83160);const _=(0,i.ZPm)(i.x.cite).withConfig({displayName:"Quote__Cite",componentId:"sc-12i53kz-0"})(["display:block;text-align:right;margin-top:1rem;"]),T=a.forwardRef(((e,n)=>a.createElement(i.x.blockquote,Object.assign({ref:n,className:"quote"},e)))),H=a.forwardRef(((e,n)=>a.createElement(_,Object.assign({ref:n},e)))),M=a.forwardRef(((e,n)=>a.createElement(i.x.section,Object.assign({ref:n,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),Z=i.ZPm.divBox.withConfig({displayName:"WideFeature",componentId:"sc-1ak5yjf-0"})(["display:block;",")"],(0,d.up)("md",(0,i.ivY)(["margin:0 20px;border-top:1px dashed;border-bottom:1px dotted;border-color:var(--xstyled-colors-layout-border,#d4d4d8);display:grid;grid-template-columns:1fr 1fr 1fr;"]))),R=i.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureText",componentId:"sc-1ak5yjf-1"})(["padding:1rem;grid-column-start:span 2;font-size:18;"," ",""],(0,d.up)("md",(0,i.ivY)(["font-size:20;padding:3rem;padding-top:2rem;"])),(0,d.up)("xl",(0,i.ivY)(["font-size:24;"]))),B=i.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureImageContainer",componentId:"sc-1ak5yjf-2"})(["padding:1rem;text-align:center;"]),D=i.ZPm.imgBox.withConfig({displayName:"WideFeature__InnerImage",componentId:"sc-1ak5yjf-3"})(["display:inline-block;"]),F=(e,n)=>"dark"===n?e.dark||e.src:e.light||e.src,W=a.forwardRef(((e,n)=>a.createElement(B,{className:e.className},a.createElement(D,Object.assign({ref:n,src:F(e,(0,z.If)()[0])},e))))),L=e=>{let{gist:n,file:t}=e;const r=(0,a.useRef)(null);(0,a.useEffect)((()=>{(async()=>{const e=t?"https://gist.githubusercontent.com/"+n+"/raw/"+t:"https://gist.githubusercontent.com/"+n+"/raw";try{const n=await fetch(e);if(n.ok){const e=22*(await n.text()).split("\n").length+40;r.current&&(r.current.style.height=e+"px")}else console.error("Failed to fetch Gist content")}catch(a){console.error("Error fetching Gist content:",a)}})()}),[n,t]);const o=t?"https://gist.github.com/"+n+".pibb?file="+t:"https://gist.github.com/"+n+".pibb",i=t?"https://gist.github.com/"+n+"#file-"+t.replace(/\./g,"-").toLowerCase():"https://gist.github.com/"+n;return a.createElement("div",{style:{border:"1px solid #ccc",padding:"10px 0 0 0",borderRadius:"5px"}},t&&a.createElement("header",{style:{marginLeft:"10px",fontStyle:"oblique"}},a.createElement("span",{role:"img","aria-label":"source code"},"🗒️"),a.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer"},t)),a.createElement("iframe",{title:t,ref:r,src:o,width:"100%",frameBorder:"0",style:{margin:"0",padding:"0"}}))}}}]); +//# sourceMappingURL=component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js.map b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js.map new file mode 100644 index 0000000..581c043 --- /dev/null +++ b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx-39432a3cc0b98c4ce88e.js","mappings":"0LAIA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,GAAI,KACJC,GAAI,KACJC,WAAY,eACXC,EAAAA,EAAAA,MAAsBd,EAAMe,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBf,EAAYG,GAAI,CACnFa,GAAI,0BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,2BACN,aAAc,oCACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,2BAA4B,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,kEAAmE,KAAMS,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,wHAAyH,KAAMS,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,qMAAsM,KAAMS,EAAAA,cAAoBf,EAAYO,GAAI,CACxlBS,GAAI,wDACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,yDACN,aAAc,kEACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,yDAA0D,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,8EAA+ES,EAAAA,cAAoBf,EAAYI,EAAG,CAC9Ne,KAAM,kEACL,uBAAwB,qHAAsH,KAAMJ,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CACtOW,UAAW,kBACV,6OAA8O,KAAML,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,yCAA0C,KAAMS,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC/ZW,UAAW,gBACV,mcAAwc,KAAML,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,mEAAoE,KAAMS,EAAAA,cAAoBf,EAAYU,GAAI,KAAM,KAAMK,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,MAAOI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,UAAW,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,WAAYM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,mBAAoBM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,MAAO,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,YAAa,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,UAAW,QAASM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,kBAAmB,YAAa,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,KAAMI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,6BAA8B,gBAAiBM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,YAAa,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,QAASI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,uBAAwB,kCAAmCM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,6BAA8B,aAAc,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,4BAA6BI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,aAAc,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,wBAAyB,oBAAqBM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,UAAWM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,uBAAwB,aAAc,MAAO,KAAMM,EAAAA,cAAoBf,EAAYY,WAAY,KAAM,KAAMG,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,wIAAyI,MAAO,KAAMS,EAAAA,cAAoBf,EAAYO,GAAI,CACz4ES,GAAI,yCACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,0CACN,aAAc,mDACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,0CAA2C,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,eAAgBS,EAAAA,cAAoBf,EAAYI,EAAG,CAChJe,KAAM,sHACL,mCAAoC,6DAA8D,KAAMJ,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,aAAcS,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,4BAA6B,gBAAiB,KAAMM,EAAAA,cAAoBf,EAAYU,GAAI,KAAM,KAAMK,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,OAAQI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,aAAc,yDAA0DM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,aAAc,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,WAAY,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,SAAU,kBAAmB,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,OAAQI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,kCAAmC,QAASM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,4BAA6B,qBAAsB,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,2FAA4F,KAAMI,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,aAAcI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,gBAAiB,KAAMM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,QAASM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,sBAAuB,qCAAsC,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,aAAcI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,YAAa,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,UAAW,qFAAsFM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,OAAQ,oEAAqEM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,YAAa,0BAA2B,MAAO,KAAMM,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC//DW,UAAW,gBACV,uuFAAosF,KAAML,EAAAA,cAAoBf,EAAYO,GAAI,CAC/uFS,GAAI,8CACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,+CACN,aAAc,wDACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,+CAAgD,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,0IAA2I,KAAMS,EAAAA,cAAoBQ,EAAAA,GAAO,CAC9QC,IAAK,mGACLC,IAAK,6CACH,KAAMV,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,0jBAA2jB,KAAMM,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,sCAAuC,KAAMS,EAAAA,cAAoBf,EAAYU,GAAI,KAAM,KAAMK,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,YAAaI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,2BAA4B,+CAAgD,KAAMM,EAAAA,cAAoBf,EAAYW,GAAI,KAAM,OAAQI,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,0BAA2B,uEAAwEM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,2BAA4B,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,mBAAoB,KAAM,MAAO,KAAMM,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CACh5CW,UAAW,iBACV,sRAAuR,KAAML,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC/WW,UAAW,iBACV,sLAAuL,KAAML,EAAAA,cAAoBf,EAAYO,GAAI,CAClOS,GAAI,gDACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,iDACN,aAAc,0DACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,mDAAoD,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,6OAA8O,KAAMS,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAC3aW,UAAW,iBACV,miBAAsiB,KAAML,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,oEAAqE,KAAMS,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CAClvBW,UAAW,iBACV,2mBAA4mB,KAAML,EAAAA,cAAoBf,EAAYO,GAAI,CACvpBS,GAAI,+DACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBf,EAAYI,EAAG,CACpCe,KAAM,gEACN,aAAc,yEACdC,UAAW,iBACVL,EAAAA,cAAoBf,EAAYK,IAAK,CACtCgB,wBAAyB,CACvBC,OAAQ,meAEP,gEAAiE,KAAMP,EAAAA,cAAoBf,EAAYM,EAAG,KAAM,mGAAoGS,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,mCAAoC,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,QAAS,OAAQM,EAAAA,cAAoBf,EAAYS,KAAM,KAAM,8BAA+B,mEAAoE,KAAMM,EAAAA,cAAoBf,EAAYQ,IAAK,KAAMO,EAAAA,cAAoBf,EAAYS,KAAM,CACllBW,UAAW,iBACV,6sBACJ,CAKD,MAJA,SAAoBrB,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAO2B,QAASC,GAAa1B,OAAOC,OAAO,CAAC,GAAGW,EAAAA,EAAAA,MAAsBd,EAAMe,YAC3E,OAAOa,EAAYZ,EAAAA,cAAoBY,EAAW5B,EAAOgB,EAAAA,cAAoBjB,EAAmBC,IAAUD,EAAkBC,EAC7H,EC7GD,SAAS6B,EAAT,GAAiC,IAAZ,SAACC,GAAWC,EAC/B,OAAOD,CACR,CAEc,SAASE,EAAiBhC,GACvC,OAAOgB,EAAAA,cAAoBa,EAAa7B,EAAOgB,EAAAA,cAAoBiB,EAAqBjC,GACzF,C,opBChBD,MAAMkC,EACJH,IAAAA,IAAC,WAAEI,EAAF,gBAAcC,EAAd,GAA+BC,GAAhCN,EAAAA,MACA,KACSO,EAAAA,EAAAA,KAAP,mJACsBH,EACXE,EAGaD,EACXC,EAIWD,EACXC,EAbf,EAkBIE,EAAcC,EAAAA,IAAAA,UAAAA,WAAH,+DAAGA,CAAH,8VAmBXN,EAAQ,CACRC,WAAY,cACZC,gBAAiB,cACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,YACZC,gBAAiB,YACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,UACZC,gBAAiB,UACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,WACZC,gBAAiB,WACjBC,GAAI,WAKGI,EAASzB,EAAAA,YACpB,CAAC,EAA6C0B,KAAS,IAAtD,QAAER,EAAU,UAAZ,SAAuBJ,KAAa9B,GAAiB2C,EACpD,OACE3B,EAAAA,cAAC4B,EAAAA,EAAD,CAAeF,IAAKA,EAAK,eAAcR,IACnCW,GACA7B,EAAAA,cAACuB,EAAD,iBAAiBM,EAAiB7C,GAC/B8B,IAJT,I,4CCtEJ,MAAMgB,EAAeN,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,kIAQLO,EAAU/B,EAAAA,YAAiB,CAAChB,EAAO0C,IAC9C1B,EAAAA,cAAC8B,EAAD,eACEJ,IAAKA,EACLM,IAAK,CAAEC,GAAI,EAAGC,GAAI,EAAI,GACtBC,GAAI,EACJC,GAAI,EACJC,GAAI,CAAEJ,GAAI,EAAGC,GAAI,IACblD,MAIKsD,EAAed,EAAAA,IAAAA,GAAAA,WAAH,iEAAGA,CAAH,qHAMRe,EAAAA,GAAAA,IAAO,GACNA,EAAAA,GAAAA,GAAM,IAGXC,EAAchB,EAAAA,IAAAA,EAAAA,WAAH,gEAAGA,CAAH,2EAOlBiB,EAAoBjB,EAAAA,IAAAA,IAAAA,WAAH,sEAAGA,CAAH,mBAIVkB,EAAe1C,EAAAA,YAAiB,CAAChB,EAAO0C,IACnD1B,EAAAA,cAACyC,EAAD,eAAmBf,IAAKA,EAAKiB,MAAO,GAAIC,OAAQ,IAAQ5D,MAG7C6D,EAAc7C,EAAAA,YAAiB,CAAChB,EAAO0C,IAClD1B,EAAAA,cAAC8C,EAAAA,EAAD,eAAiBpB,IAAKA,EAAKqB,KAAG,EAACC,IAAK,EAAGb,GAAI,GAAOnD,MAGvCiE,EAAiBjD,EAAAA,YAAiB,CAAChB,EAAO0C,IACrD1B,EAAAA,cAACkD,EAAAA,EAAAA,QAAD,eACExB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRtE,MCzDKuE,EAAY/B,EAAAA,IAAAA,MAAAA,WAAH,2DAAGA,CAAH,8FAOlBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,kCAQFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOmC,EAAajC,EAAAA,IAAAA,KAAAA,WAAH,4DAAGA,CAAH,qCAInBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAOFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQAoC,GAAYlC,EAAAA,EAAAA,KAAOsB,EAAAA,GAAVa,WAAA,2DAAGnC,CAAH,wIAOXgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,2HAYFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOsC,EAAO5D,EAAAA,YAClB,CAAC,EAAkC0B,KAAS,IAA3C,mBAAEmC,KAAuB7E,GAAiB+B,EACzC,OACEf,EAAAA,cAAC0D,EAAD,eACEhC,IAAKA,EACLoC,gBAAe,OAASD,EAAT,KACX7E,GAJR,IAUS+E,EAAW/D,EAAAA,YAAiB,CAAChB,EAAO0C,IACxC1B,EAAAA,cAACkD,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKsC,EAAG,CAAE9B,GAAI,KAAWlD,MAGjCiF,EAAczC,EAAAA,IAAAA,WAAAA,WAAH,6DAAGA,CAAH,qDAMX0C,EAAiBlE,EAAAA,YAAiB,CAAChB,EAAO0C,IAEnD1B,EAAAA,cAACkD,EAAAA,EAAAA,IAAD,eACExB,IAAKA,EACLqB,KAAG,EACHoB,GAAI,EACJC,eAAgB,CAAEnC,GAAI,SAAUC,GAAI,YAChClD,MAKGqF,EAAarE,EAAAA,YAAiB,CAAChB,EAAO0C,IAC1C1B,EAAAA,cAACkD,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKM,IAAI,OAAOzC,EAAG,GAAOP,M,eCvG/C,MAAMsF,EAAiB9C,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,qBACHxC,GAASA,EAAMuF,QAE1BC,EAAahD,EAAAA,IAAAA,IAAAA,WAAH,6DAAGA,CAAH,2BAGVf,EAAM,CAACzB,EAAOyF,IACK,SAAdA,EAAsBzF,EAAM0F,MAAQ1F,EAAMyB,IAAMzB,EAAM2F,OAAS3F,EAAMyB,IAEnED,EAAQR,EAAAA,YAAiB,CAAChB,EAAO0C,IAC1C1B,EAAAA,cAACsE,EAAD,CAAgBC,MAAOvF,EAAMuF,OAAS,SAAUlE,UAAWrB,EAAM4F,SAC7D5E,EAAAA,cAACwE,EAAD,eAAY9C,IAAKA,EAAKjB,IAAKA,EAAIzB,GAAO6F,EAAAA,EAAAA,MAAe,KAAS7F,O,kBCZtE,MAAM8F,GAAOtD,EAAAA,EAAAA,KAAO0B,EAAAA,EAAAA,MAAVS,WAAA,uDAAGnC,CAAH,qDAMGuD,EAAQ/E,EAAAA,YAAiB,CAAChB,EAAO0C,IACnC1B,EAAAA,cAACkD,EAAAA,EAAAA,WAAD,eAAcxB,IAAKA,EAAKrB,UAAU,SAAYrB,MAG5CgG,EAAchF,EAAAA,YAAiB,CAAChB,EAAO0C,IACzC1B,EAAAA,cAAC8E,EAAD,eAAMpD,IAAKA,GAAS1C,MCZlBiG,EAAqBjF,EAAAA,YAAiB,CAAChB,EAAO0C,IACvD1B,EAAAA,cAACkD,EAAAA,EAAAA,QAAD,eACIxB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRtE,MAICkG,EAAc1D,EAAAA,IAAAA,OAAAA,WAAH,uDAAGA,CAAH,wBAEpBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,4KAaO6D,EAAkB3D,EAAAA,IAAAA,OAAAA,WAAH,wEAAGA,CAAH,gEAKxBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,kDASFkC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,oBAOA8D,EAA4B5D,EAAAA,IAAAA,OAAAA,WAAH,kFAAGA,CAAH,qCAKzBgD,EAAahD,EAAAA,IAAAA,OAAAA,WAAH,mEAAGA,CAAH,2BAKVf,EAAM,CAACzB,EAAOyF,IACG,SAAdA,EAAsBzF,EAAM0F,MAAQ1F,EAAMyB,IAAMzB,EAAM2F,OAAS3F,EAAMyB,IAEjE4E,EAAmBrF,EAAAA,YAAiB,CAAChB,EAAO0C,IACrD1B,EAAAA,cAACoF,EAAD,CAA2B/E,UAAWrB,EAAMqB,WAC1CL,EAAAA,cAACwE,EAAD,eAAY9C,IAAKA,EAAKjB,IAAKA,EAAIzB,GAAO6F,EAAAA,EAAAA,MAAe,KAAS7F,OC9D9DsG,EAAOvE,IAAqB,IAApB,KAAEwE,EAAF,KAAQC,GAAWzE,EAC/B,MAAM0E,GAAYC,EAAAA,EAAAA,QAAO,OAwBzBC,EAAAA,EAAAA,YAAU,KAtBeC,WACvB,MAAMC,EAAML,EAAI,sCAC0BD,EAD1B,QACsCC,EADtC,sCAE0BD,EAF1B,OAGhB,IACE,MAAMO,QAAiBC,MAAMF,GAC7B,GAAIC,EAASE,GAAI,CACf,MAGMpD,EADa,UAFAkD,EAASG,QACLC,MAAM,MAAMC,OAEK,GACpCV,EAAUW,UACZX,EAAUW,QAAQlG,MAAM0C,OAAYA,EAApC,KANJ,MASEyD,QAAQC,MAAM,+BAIjB,CAFC,MAAOA,GACPD,QAAQC,MAAM,+BAAgCA,EAC/C,GAIDC,EAAkB,GACjB,CAAChB,EAAMC,IAEV,MAAM/E,EAAM+E,EAAI,2BACeD,EADf,cACiCC,EADjC,2BAEeD,EAFf,QAIViB,EAAUhB,EAAI,2BACWD,EADX,SACwBC,EAAKiB,QAAQ,MAAO,KAAKC,cADjD,2BAEWnB,EAE/B,OACEvF,EAAAA,cAAAA,MAAAA,CAAKE,MAAO,CAAEyG,OAAQ,iBAAkBC,QAAS,aAAcC,aAAc,QAC1ErB,GACCxF,EAAAA,cAAAA,SAAAA,CAAQE,MAAO,CAAE4G,WAAY,OAAQC,UAAW,YAC9C/G,EAAAA,cAAAA,OAAAA,CAAMgH,KAAK,MAAM,aAAW,eAA5B,OACAhH,EAAAA,cAAAA,IAAAA,CAAGI,KAAMoG,EAASS,OAAO,SAASC,IAAI,uBACnC1B,IAIPxF,EAAAA,cAAAA,SAAAA,CACEmH,MAAO3B,EACP9D,IAAK+D,EACLhF,IAAKA,EACLkC,MAAM,OACNyE,YAAY,IACZlH,MAAO,CAAEmH,OAAQ,IAAKT,QAAS,OAhBrC,C","sources":["webpack://website/./pages/docs/SDK/ProducingEvents.mdx","webpack://website/../smooth-doc/src/templates/doc.js","webpack://website/../smooth-doc/src/components/Button.js","webpack://website/../smooth-doc/src/components/Feature.js","webpack://website/../smooth-doc/src/components/Hero.js","webpack://website/../smooth-doc/src/components/Image.js","webpack://website/../smooth-doc/src/components/Quote.js","webpack://website/../smooth-doc/src/components/WideFeature.js","webpack://website/../smooth-doc/src/components/Gist.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nimport {Image, Quote, QuoteAuthor} from \"smooth-doc/components\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n h2: \"h2\",\n pre: \"pre\",\n code: \"code\",\n ul: \"ul\",\n li: \"li\",\n blockquote: \"blockquote\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"producing-domain-events\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#producing-domain-events\",\n \"aria-label\": \"producing domain events permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Producing Domain Events\"), \"\\n\", React.createElement(_components.p, null, \"Producing Domain Events with AsyncAPI and ZenWave Maven Plugin\"), \"\\n\", React.createElement(_components.p, null, \"In this section you will learn how to produce domain events from your services and publish them to a message broker.\"), \"\\n\", React.createElement(_components.p, null, \"We will be using AsyncAPI specification to define our message structure, and use ZenWave SDK Maven Plugin to generate models (DTOs) and a producer implementation from your API-First definition.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"using-zenwave-zdl-as-definition-language-for-asyncapi\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#using-zenwave-zdl-as-definition-language-for-asyncapi\",\n \"aria-label\": \"using zenwave zdl as definition language for asyncapi permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Using ZenWave ZDL as Definition Language for AsyncAPI\"), \"\\n\", React.createElement(_components.p, null, \"While AsyncAPI is the source of truth for Event-Driven communication, with \", React.createElement(_components.a, {\n href: \"https://www.zenwave360.io/zenwave-sdk/plugins/zdl-to-asyncapi/\"\n }, \"ZDLToAsyncAPIPlugin\"), \" plugins you can create complete draft version of AsyncAPI specification from your annotated Services and Events.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang zw -p io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin \\\\\\r\\n zdlFile=src/main/resources/model/orders-model.zdl \\\\\\r\\n idType=integer \\\\\\r\\n idTypeFormat=int64 \\\\\\r\\n targetFile=src/main/resources/model/asyncapi.yml\\n\")), \"\\n\", React.createElement(_components.p, null, \"For instance the following ZDL model:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-zdl\"\n }, \"service OrdersService for (CustomerOrder) {\\r\\n // only emited events will be included in the asyncapi definition\\r\\n updateOrder(id, CustomerOrderInput) CustomerOrder withEvents OrderStatusUpdated\\r\\n}\\r\\n\\r\\n@asyncapi({channel: \\\"OrderUpdatesChannel\\\", topic: \\\"orders.order_updates\\\"})\\r\\nevent OrderStatusUpdated {\\r\\n id String\\r\\n dateTime Instant required\\r\\n status OrderStatus required\\r\\n previousStatus OrderStatus\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"Will generate the following sections in an AsyncAPI definition:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"An \", React.createElement(_components.code, null, \"schema\"), \" named \", React.createElement(_components.code, null, \"OrderStatusUpdated\"), \" with a \", React.createElement(_components.code, null, \"payload\"), \" containing the \", React.createElement(_components.code, null, \"id\"), \", \", React.createElement(_components.code, null, \"dateTime\"), \", \", React.createElement(_components.code, null, \"status\"), \" and \", React.createElement(_components.code, null, \"previousStatus\"), \" fields.\"), \"\\n\", React.createElement(_components.li, null, \"A \", React.createElement(_components.code, null, \"message\"), \" named \", React.createElement(_components.code, null, \"OrderStatusUpdatedMessage\"), \" pointing to \", React.createElement(_components.code, null, \"OrderStatusUpdated\"), \" schema.\"), \"\\n\", React.createElement(_components.li, null, \"An a \", React.createElement(_components.code, null, \"Channel\"), \" named \", React.createElement(_components.code, null, \"OrderUpdatesChannel\"), \" containing a reference to the \", React.createElement(_components.code, null, \"OrderStatusUpdatedMessage\"), \" message.\"), \"\\n\", React.createElement(_components.li, null, \"It also will generate an \", React.createElement(_components.code, null, \"Operation\"), \" named \", React.createElement(_components.code, null, \"onOrderStatusUpdated\"), \" with and action \", React.createElement(_components.code, null, \"send\"), \"to the \", React.createElement(_components.code, null, \"OrderUpdatesChannel\"), \" channel.\"), \"\\n\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"💡 This is as a compact format as it can get!! Saving you a lot of typing and giving you very concise representation of your events.\"), \"\\n\"), \"\\n\", React.createElement(_components.h2, {\n id: \"api-first-code-generator-from-asyncapi\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#api-first-code-generator-from-asyncapi\",\n \"aria-label\": \"api first code generator from asyncapi permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"API-First Code Generator from AsyncAPI\"), \"\\n\", React.createElement(_components.p, null, \"You can use \", React.createElement(_components.a, {\n href: \"https://www.zenwave360.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/#maven-plugin-configuration-api-first\"\n }, \"API-First AsyncAPI Maven Plugin\"), \" to generate models (DTOs) and a producer implementation.\"), \"\\n\", React.createElement(_components.p, null, \"Configure \", React.createElement(_components.code, null, \"zenwave-sdk-maven-plugin\"), \" as follows:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Set \", React.createElement(_components.code, null, \"inputSpec\"), \" to point to your AsyncAPI specification. You can use \", React.createElement(_components.code, null, \"classpath\"), \", \", React.createElement(_components.code, null, \"file\"), \", \", React.createElement(_components.code, null, \"http(s)\"), \" or \", React.createElement(_components.code, null, \"https\"), \" as inputSpec.\"), \"\\n\", React.createElement(_components.li, null, \"Add \", React.createElement(_components.code, null, \"asyncapi-spring-cloud-streams3\"), \" and \", React.createElement(_components.code, null, \"asyncapi-jsonschema2pojo\"), \" as dependencies.\"), \"\\n\", React.createElement(_components.li, null, \"Add two executions to generate the models (DTOs) and an Events Producer implementation.\"), \"\\n\", React.createElement(_components.li, null, \"Configure \", React.createElement(_components.code, null, \"modelPackage\"), \", \", React.createElement(_components.code, null, \"producerApiPackage\"), \" and \", React.createElement(_components.code, null, \"consumerApiPackage\"), \" to match your project structure.\"), \"\\n\", React.createElement(_components.li, null, \"Configure \", React.createElement(_components.code, null, \"role\"), \" to \", React.createElement(_components.code, null, \"provider\"), \" or \", React.createElement(_components.code, null, \"client\"), \" if you are generating code from a third-party specification. If you are defining \", React.createElement(_components.code, null, \"all\"), \" the operations (client and provider) then you are acting as the \", React.createElement(_components.code, null, \"provider\"), \" which is the default.\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n io.github.zenwave360.zenwave-sdk\\r\\n zenwave-sdk-maven-plugin\\r\\n ${zenwave.version}\\r\\n \\r\\n classpath:/apis/asyncapi.yml\\r\\n true\\r\\n true\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi-provider-dtos\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n jsonschema2pojo\\r\\n \\r\\n ${basePackage}.core.domain.events\\r\\n true\\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi-provider-implementation\\r\\n generate-sources\\r\\n generate\\r\\n \\r\\n spring-cloud-streams3\\r\\n \\r\\n provider\\r\\n \\r\\n ${basePackage}.core.domain.events\\r\\n ${basePackage}.core.outbound.events\\r\\n ${basePackage}.adapters.commands\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-spring-cloud-streams3\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-jsonschema2pojo\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"producing-domain-events-with-generated-code\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#producing-domain-events-with-generated-code\",\n \"aria-label\": \"producing domain events with generated code permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Producing Domain Events with Generated Code\"), \"\\n\", React.createElement(_components.p, null, \"By default, ZenWave generates Spring Cloud Streams implementation that counts with different binders for virtually any message broker:\"), \"\\n\", React.createElement(Image, {\n src: \"https://www.zenwave360.io/zenwave-sdk/docs/ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg\",\n alt: \"ZenWave360 AsyncAPI Spring Cloud Streams\"\n }), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, null, \"📦 target/generated-sources/zenwave\\r\\n 📦 src/main/java\\r\\n └─ models (DTOs)\\r\\n └─ AddressDTO.java\\r\\n └─ CustomerDTO.java\\r\\n └─ \\r\\n └─ ICustomerEventsProducer (interface and header objects)\\r\\n └─ CustomerEventsProducer (spring-cloud-streams producer)\\r\\n 📦 src/test/java\\r\\n └─ \\r\\n └─ CustomerEventsProducerCaptor (in-memory producer/captor)\\r\\n └─ EventsProducerInMemoryContext (spring-boot/manual context)\\n\")), \"\\n\", React.createElement(_components.p, null, \"With this schema you just need to:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Autowire \", React.createElement(_components.code, null, \"ICustomerEventsProducer\"), \" wherever you would like to produce events.\"), \"\\n\", React.createElement(_components.li, null, \"Add \", React.createElement(_components.code, null, \"CustomerEventsProducer\"), \" to your Spring Boot context and set any required configuration for \", React.createElement(_components.code, null, \"spring.streams.bindings\"), \" in \", React.createElement(_components.code, null, \"application.yml\"), \".\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"public CustomerServiceImpl {\\r\\n @Autowired\\r\\n ICustomerEventsProducer eventsProducer;\\r\\n // ...\\r\\n public Customer createCustomer(Customer input) {\\r\\n // ...\\r\\n eventsProducer.onCustomerEvent(customerEvent);\\r\\n // ...\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-yaml\"\n }, \"spring:\\r\\n stream:\\r\\n bindings:\\r\\n on-order-event-out-0: ## you can get this name from 'CustomerEventsProducer' class\\r\\n destination: orders.orders\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"inmemory-event-producer-captor-for-your-tests\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#inmemory-event-producer-captor-for-your-tests\",\n \"aria-label\": \"inmemory event producer captor for your tests permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"InMemory Event Producer (Captor) for your Tests\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK Maven Plugin will generate an in-memory implementation of your Events Producer that you can use in your tests to capture events and perform assertions on them. All this without a message broker, TestContainers or Mockito.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"@Configuration\\r\\n@Profile(\\\"in-memory\\\")\\r\\npublic class ServicesInMemoryConfig extends RepositoriesInMemoryConfig {\\r\\n\\r\\n\\tprotected final EventsProducerInMemoryContext eventsProducerInMemoryContext = new EventsProducerInMemoryContext();\\r\\n\\r\\n\\tprotected final CustomerServiceImpl customerService = new CustomerServiceImpl(\\r\\n customerRepository(),\\r\\n\\t\\t\\teventsProducerInMemoryContext.customerEventsProducer());\\r\\n\\r\\n\\t@Bean\\r\\n\\tpublic CustomerServiceImpl customerService() {\\r\\n\\t\\treturn customerService;\\r\\n\\t}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"Now you can perform assertions on captured events in your tests:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"public class CustomerServiceTest {\\r\\n CustomerEventsProducerCaptor eventsProducerCaptor = serviceInMemoryContext.customerEventsProducerCaptor();\\r\\n\\r\\n\\t@Test\\r\\n\\tvoid createCustomerTest() {\\r\\n\\t\\tvar input = new Customer();\\r\\n\\t\\t// TODO fill input data\\r\\n\\r\\n\\t\\tvar customer = customerService.createCustomer(input);\\r\\n\\t\\tassertNotNull(customer.getId());\\r\\n\\r\\n // Assertions on captured events\\r\\n var customerEvents = eventsProducerCaptor.getCapturedMessages(eventsProducerCaptor.onCustomerEventBindingName);\\r\\n Assertions.assertEquals(1, customerEvents.size());\\r\\n\\t}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"letting-zenwave-sdk-include-event-producers-in-your-services\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#letting-zenwave-sdk-include-event-producers-in-your-services\",\n \"aria-label\": \"letting zenwave sdk include event producers in your services permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Letting ZenWave SDK Include Event Producers in Your Services\"), \"\\n\", React.createElement(_components.p, null, \"Because this depends on ZenWave AsyncAPI Plugins naming conventions, you need to explicitly set \", React.createElement(_components.code, null, \"includeEmitEventsImplementation\"), \" to \", React.createElement(_components.code, null, \"true\"), \" in \", React.createElement(_components.code, null, \"ZenWave SDK Backend Plugin\"), \" option to include event publishing code in your core services.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// This will only be generated if includeEmitEventsImplementation is set to true\\r\\nprivate final EventsMapper eventsMapper = EventsMapper.INSTANCE;\\r\\nprivate final ICustomerEventsProducer eventsProducer;\\r\\n\\r\\n@Transactional\\r\\npublic Customer createCustomer(Customer input) {\\r\\n log.debug(\\\"Request to save Customer: {}\\\", input);\\r\\n var customer = customerServiceMapper.update(new Customer(), input);\\r\\n customer = customerRepository.save(customer);\\r\\n\\r\\n // This will only be generated if includeEmitEventsImplementation is set to true\\r\\n var customerEvent = eventsMapper.asCustomerEvent(customer);\\r\\n eventsProducer.onCustomerEvent(customerEvent);\\r\\n\\r\\n return customer;\\r\\n}\\n\")));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ProducingEvents.mdx\";\nimport {graphql} from 'gatsby';\nexport const pageQuery = graphql`\n query DocPageQuery($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n tableOfContents\n }\n }\n`;\nfunction DocTemplate({children}) {\n return children;\n}\nDocTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(DocTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n","import * as React from 'react'\r\nimport { Button as AriakitButton } from 'ariakit/button'\r\nimport styled, { css } from '@xstyled/styled-components'\r\n\r\nconst variant =\r\n ({ background, backgroundHover, on }) =>\r\n () => {\r\n return css`\r\n background-color: ${background};\r\n color: ${on};\r\n\r\n &:hover:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n\r\n &:active:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n `\r\n }\r\n\r\nconst InnerButton = styled.buttonBox`\r\n appearance: none;\r\n border-radius: base;\r\n transition: base;\r\n font-weight: 500;\r\n border: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font-size: 16;\r\n padding: 2 3;\r\n text-decoration: none !important;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: default;\r\n }\r\n\r\n &[data-variant='primary'] {\r\n ${variant({\r\n background: 'primary-600',\r\n backgroundHover: 'primary-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='success'] {\r\n ${variant({\r\n background: 'green-600',\r\n backgroundHover: 'green-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='danger'] {\r\n ${variant({\r\n background: 'red-600',\r\n backgroundHover: 'red-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='neutral'] {\r\n ${variant({\r\n background: 'gray-300',\r\n backgroundHover: 'gray-400',\r\n on: 'black',\r\n })}\r\n }\r\n`\r\n\r\nexport const Button = React.forwardRef(\r\n ({ variant = 'primary', children, ...props }, ref) => {\r\n return (\r\n \r\n {(buttonProps) => (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n )\r\n },\r\n)\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { th, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst InnerFeature = styled.box`\r\n border-left: 1;\r\n border-left-style: dashed;\r\n border-left-color: layout-border;\r\n padding-left: 4 !important;\r\n padding-right: 5 !important;\r\n`\r\n\r\nexport const Feature = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureTitle = styled.h2`\r\n margin: 3 0;\r\n font-size: 16;\r\n font-weight: 500;\r\n border-left: 1;\r\n border-color: primary-400;\r\n margin-left: ${th.px(-9)};\r\n padding-left: ${th.px(9)};\r\n`\r\n\r\nexport const FeatureText = styled.p`\r\n color: on-background-light;\r\n font-size: 15;\r\n text-align: justify;\r\n margin: 4 0;\r\n`\r\n\r\nconst InnerFeatureImage = styled.img`\r\n margin-top: 3;\r\n`\r\n\r\nexport const FeatureImage = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureList = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nexport const HeroTitle = styled.h1Box`\r\n font-size: 38;\r\n font-weight: 600;\r\n line-height: 1.2;\r\n letter-spacing: -1.12px;\r\n margin: 0 0 2;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 4;\r\n font-size: 48;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 60;\r\n `,\r\n )}\r\n`\r\n\r\nexport const HeroTeaser = styled.pBox`\r\n font-size: 18;\r\n margin: 3 0;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\n\r\nconst InnerHero = styled(ScreenContainer)`\r\n background-repeat: no-repeat;\r\n background-position: top -5% center;\r\n background-size: 100% auto;\r\n padding-top: 65%;\r\n text-align: center;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 0;\r\n margin-top: 5;\r\n background-position: center right;\r\n background-size: 58% auto;\r\n min-height: 400;\r\n text-align: left;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n margin-top: 6;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Hero = React.forwardRef(\r\n ({ backgroundImageURL, ...props }, ref) => {\r\n return (\r\n \r\n )\r\n },\r\n)\r\n\r\nexport const HeroBody = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const HeroSection = styled.sectionBox`\r\n overflow: hidden;\r\n padding-top: 2;\r\n padding-bottom: 5;\r\n`\r\n\r\nexport const HeroActionList = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport const HeroAction = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { useColorMode, th, x } from '@xstyled/styled-components'\r\n\r\nconst ImageContainer = styled.div`\r\n text-align: ${props => props.align};\r\n`\r\nconst InnerImage = styled.img`\r\n display: inline-block;\r\n`\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const Image = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst Cite = styled(x.cite)`\r\n display: block;\r\n text-align: right;\r\n margin-top: 1rem;\r\n`\r\n\r\nexport const Quote = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const QuoteAuthor = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","import styled, {up, css, x, useColorMode} from '@xstyled/styled-components'\r\nimport React from \"react\";\r\n\r\nexport const WideFeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const WideFeature = styled.divBox`\r\n display: block;\r\n ${up(\r\n 'md',\r\n css`\r\n margin: 0 20px;\r\n border-top: 1px dashed;\r\n border-bottom: 1px dotted;\r\n border-color: var(--xstyled-colors-layout-border,#d4d4d8);\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n `,\r\n )})\r\n`\r\n\r\nexport const WideFeatureText = styled.divBox`\r\n padding: 1rem;\r\n grid-column-start: span 2;\r\n\r\n font-size: 18;\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n padding: 3rem;\r\n padding-top: 2rem;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\nconst WideFeatureImageContainer = styled.divBox`\r\n padding: 1rem;\r\n text-align: center;\r\n`\r\n\r\nconst InnerImage = styled.imgBox`\r\n display: inline-block;\r\n //max-width: 300px;\r\n`\r\n\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const WideFeatureImage = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React, { useRef, useEffect } from 'react';\r\nimport { marginLeft } from '@xstyled/styled-components'\r\n\r\nconst Gist = ({ gist, file }) => {\r\n const iframeRef = useRef(null);\r\n\r\n const fetchGistContent = async () => {\r\n const url = file\r\n ? `https://gist.githubusercontent.com/${gist}/raw/${file}`\r\n : `https://gist.githubusercontent.com/${gist}/raw`;\r\n try {\r\n const response = await fetch(url);\r\n if (response.ok) {\r\n const text = await response.text();\r\n const lineCount = text.split('\\n').length;\r\n const lineHeight = 22; // Approximate line height in pixels\r\n const height = lineCount * lineHeight + 40;\r\n if (iframeRef.current) {\r\n iframeRef.current.style.height = `${height}px`;\r\n }\r\n } else {\r\n console.error('Failed to fetch Gist content');\r\n }\r\n } catch (error) {\r\n console.error('Error fetching Gist content:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchGistContent();\r\n }, [gist, file]);\r\n\r\n const src = file\r\n ? `https://gist.github.com/${gist}.pibb?file=${file}`\r\n : `https://gist.github.com/${gist}.pibb`;\r\n\r\n const gistUrl = file\r\n ? `https://gist.github.com/${gist}#file-${file.replace(/\\./g, '-').toLowerCase()}`\r\n : `https://gist.github.com/${gist}`;\r\n\r\n return (\r\n
\r\n {file && (\r\n
\r\n 🗒️\r\n \r\n {file}\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport { Gist };\r\n"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","h2","pre","code","ul","li","blockquote","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","Image","src","alt","wrapper","MDXLayout","DocTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX","variant","background","backgroundHover","on","css","InnerButton","styled","Button","ref","_ref2","AriakitButton","buttonProps","InnerFeature","Feature","col","xs","md","px","pt","pb","FeatureTitle","th","FeatureText","InnerFeatureImage","FeatureImage","width","height","FeatureList","ScreenContainer","row","my","FeatureSection","x","py","borderTop","borderBottom","borderColor","HeroTitle","up","HeroTeaser","InnerHero","withConfig","Hero","backgroundImageURL","backgroundImage","HeroBody","w","HeroSection","HeroActionList","m","justifyContent","HeroAction","ImageContainer","align","InnerImage","colorMode","dark","light","visible","useColorMode","Cite","Quote","QuoteAuthor","WideFeatureSection","WideFeature","WideFeatureText","WideFeatureImageContainer","WideFeatureImage","Gist","gist","file","iframeRef","useRef","useEffect","async","url","response","fetch","ok","text","split","length","current","console","error","fetchGistContent","gistUrl","replace","toLowerCase","border","padding","borderRadius","marginLeft","fontStyle","role","target","rel","title","frameBorder","margin"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js new file mode 100644 index 0000000..a934024 --- /dev/null +++ b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[772],{86587:function(e,t,n){n.r(t),n.d(t,{default:function(){return f}});var a=n(27378),r=n(20951),i=n(16376),s=n.p+"static/SDK-ModelingLanguages.dark-8c38c3425c66678f30e03ae344d7efa5.png",l=n.p+"static/SDK-ModelingLanguages.light-5ce43d2a0d73dfea6beed173035a17b1.png",c=n(91399),o=(n(11926),n.p+"static/SDK-MindMap.dark-6e3facb7161823c4f526c8e63f1423bd.png"),d=n.p+"static/SDK-MindMap.light-cb5646225ccdd6b4e02e804475f5d9dc.png",m=n.p+"static/ZenWave-SDK-Design-Code-Loop.light-8895761fbb21542d5b2c564f7614b590.png",u=n.p+"static/ZenWave-SDK-Design-Code-Loop.dark-475a45be0974497ccd4d749c50396bdd.png",p=n.p+"static/SDK-Generated-Code-b9a8a8596ae71be86d3a9d8e5764ac21.png";function g(e){const t=Object.assign({h1:"h1",a:"a",div:"div",p:"p",img:"img",ul:"ul",li:"li",em:"em",strong:"strong",h2:"h2",h3:"h3",pre:"pre",code:"code",blockquote:"blockquote",ol:"ol",input:"input",del:"del"},(0,r.ah)(),e.components);return a.createElement(a.Fragment,null,a.createElement(t.h1,{id:"zenwave-sdk",style:{position:"relative"}},a.createElement(t.a,{href:"#zenwave-sdk","aria-label":"zenwave sdk permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"ZenWave SDK"),"\n",a.createElement(t.p,null,"ZenWave SDK Helps you Create Software Easy to Understand"),"\n",a.createElement("div",{class:"badges"},a.createElement(t.p,null,a.createElement(t.a,{href:"https://search.maven.org/artifact/io.github.zenwave360.zenwave-sdk/zenwave-sdk"},a.createElement(t.img,{src:"https://img.shields.io/maven-central/v/io.github.zenwave360.zenwave-sdk/zenwave-sdk.svg?label=Maven%20Central&logo=apachemaven",alt:"Maven Central"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/releases"},a.createElement(t.img,{src:"https://img.shields.io/github/v/release/ZenWave360/zenwave-sdk?logo=GitHub",alt:"GitHub release (latest by date)"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml"},a.createElement(t.img,{src:"https://github.com/ZenWave360/zenwave-sdk/workflows/Build/badge.svg",alt:"build"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml"},a.createElement(t.img,{src:"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/jacoco.svg",alt:"coverage"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml"},a.createElement(t.img,{src:"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/branches.svg",alt:"branches coverage"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/blob/main/LICENSE"},a.createElement(t.img,{src:"https://img.shields.io/github/license/ZenWave360/zenwave-sdk",alt:"GitHub"})))),"\n",a.createElement(i.Bk,null,a.createElement(t.p,null,"The heart of software is its ability to solve domain-related problems for its users. The best software supports elegant solutions to real-world problems\r\n",a.createElement(i.Nm,null,"- Eric Evans in Domain Driven Design"))),"\n",a.createElement(i.Ee,{alt:"ZenWave SDK Modeling Languages",light:l,dark:s}),"\n",a.createElement(t.p,null,"ZenWave SDK is a set of tools to convert your ",a.createElement("strong",{className:"orange"},"Domain Models")," into working software and tests."),"\n",a.createElement(t.p,null,"It is designed to be modular, configurable and extensible. It uses the standard java classpath as loading mechanism, so you can extend its functionality adding your own custom plugins. Visit ",a.createElement(t.a,{href:"/zenwave-sdk"},"ZenWave SDK")," for all configuration options."),"\n",a.createElement(t.p,null,"Based on ",a.createElement("strong",{className:"orange"},"Domain Driven Design (DDD)")," and ",a.createElement("strong",{className:"orange"},"API-First")," principles for ",a.createElement("strong",{className:"orange"},"Event Driven Microservices"),"."),"\n",a.createElement(i.Ee,{alt:"Speed Feedback Loop",dark:u,light:m,style:{marginTop:"15px"}}),"\n",a.createElement(t.p,null,"ZenWave SDK can generate code from a mix of different models including:"),"\n",a.createElement(t.ul,null,"\n",a.createElement(t.li,null,a.createElement(t.a,{href:"/docs/event-driven-design/zenwave-domain-language"},"ZDL Domain Language")," as ",a.createElement("strong",{className:"orange"},"Ubiquitous Language"),". You can describe the core of your Bounded Context, as well as how it connects to external systems through different adapters and APIs."),"\n",a.createElement(t.li,null,a.createElement(t.a,{href:"https://www.asyncapi.com/docs/getting-started/coming-from-openapi"},"AsyncAPI"),": Industry de-facto standard to describe Event-Driven Architectures for Message-based APIs."),"\n",a.createElement(t.li,null,a.createElement(t.a,{href:"https://swagger.io/specification/"},"OpenAPI"),": Industry standard for Request-Response Architectures with REST APIs."),"\n"),"\n",a.createElement(t.p,null,"Using ZenWave Domain Language as ",a.createElement("strong",{className:"orange"},"Ubiquitous Language")," for modeling and describing Bounded Contexts: aggregates, entities with their relationships, services, value objects, commands and events."),"\n",a.createElement(t.p,null,"ZenWave Domain Language started as an ",a.createElement(t.em,null,"extended subset")," of ",a.createElement(t.a,{href:"https://www.jhipster.tech/jdl/intro"},"JHipster Domain Language (JDL)")," that let you describe your entities and relationships."),"\n",a.createElement(t.p,null,"Using ZDL Domain Language as ",a.createElement(t.strong,null,"Ubiquitous Language")," for ",a.createElement("strong",{className:"orange"},"Data on the Inside")," and ",a.createElement("strong",{className:"orange"},"API-First")," specs like ",a.createElement(t.strong,null,"AsyncAPI")," and ",a.createElement(t.strong,null,"OpenAPI")," to describe Inter Process Communications (IPC) for ",a.createElement("strong",{className:"orange"},"Data on the Outside"),"."),"\n",a.createElement(t.ul,null,"\n",a.createElement(t.li,null,a.createElement("strong",{className:"orange"},"ZenWave Domain Language (ZDL) as Ubiquitous Language:")," To describe your domain core domain model."),"\n",a.createElement(t.li,null,a.createElement("strong",{className:"orange"},"API-First specs like AsyncAPI and OpenAPI:")," to describe Inter Process Communications (IPC) between bounded contexts/microservices."),"\n",a.createElement(t.li,null,a.createElement("strong",{className:"orange"},"ZenWave SDK:")," to generate (",a.createElement(t.em,null,"a lot of"),") infrastructure, functional and testing code from your models and APIs."),"\n"),"\n",a.createElement(t.p,null,"ZenWave SDK is designed to be easily extensible and adaptable to your project or your organization needs and likes."),"\n",a.createElement(t.h2,{id:"zenwave-sdk-installation",style:{position:"relative"}},a.createElement(t.a,{href:"#zenwave-sdk-installation","aria-label":"zenwave sdk installation permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"ZenWave SDK Installation"),"\n",a.createElement(t.h3,{id:"command-line-interface-cli",style:{position:"relative"}},a.createElement(t.a,{href:"#command-line-interface-cli","aria-label":"command line interface cli permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"Command Line Interface (CLI)"),"\n",a.createElement(t.p,null,"You can install the latest release using ",a.createElement(t.a,{href:"https://www.jbang.dev"},"jbang")," running the following command:"),"\n",a.createElement(t.pre,null,a.createElement(t.code,{className:"language-shell"},"jbang alias add --force --fresh --name=zw release@zenwave360/zenwave-sdk\r\n\r\njbang zw --help list\r\n\n")),"\n",a.createElement(t.p,null,"Will output a list of all available plugins:"),"\n",a.createElement(t.pre,null,a.createElement(t.code,{className:"language-log"},'ZW> SDK (1.7.0)\r\n\r\nAvailable plugins:\r\n\r\nbackend-application-default io.zenwave360.sdk.plugins.BackendApplicationDefaultPlugin: Generates a full backend application using a flexible hexagonal architecture (1.7.0)\r\njdl-to-asyncapi io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin: Generates a full AsyncAPI definitions for CRUD operations from JDL models (1.7.0)\r\nzdl-to-json io.zenwave360.sdk.plugins.ZdlToJsonPlugin: Prints to StdOut ZDL Model as JSON (1.7.0)\r\nspring-webtestclient io.zenwave360.sdk.plugins.SpringWebTestClientPlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\r\njsonschema2pojo io.zenwave360.sdk.plugins.AsyncApiJsonSchema2PojoPlugin: Generate Plain Old Java Objects from OpenAPI/AsyncAPI schemas or full JSON-Schema files (1.7.0)\r\nopenapi-controllers io.zenwave360.sdk.plugins.OpenAPIControllersPlugin: Generates implementations based on ZDL models and OpenAPI definitions SpringMVC generated OpenAPI interfaces. (1.7.0)\r\nopenapi-to-jdl io.zenwave360.sdk.plugins.OpenAPIToJDLPlugin: Generates JDL model from OpenAPI schemas (1.7.0)\r\nopenapi-karate io.zenwave360.sdk.plugins.OpenAPIKaratePlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\r\nspring-cloud-streams3 io.zenwave360.sdk.plugins.SpringCloudStreams3Plugin: Generates strongly typed SpringCloudStreams3 producer/consumer classes for AsyncAPI (1.7.0)\r\nzdl-to-openapi io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin: Generates a draft OpenAPI definitions from your ZDL entities and services. (1.7.0)\r\nzdl-to-markdown io.zenwave360.sdk.plugins.ZdlToMarkdownPlugin: Generates Markdown glossary from Zdl Models (1.7.0)\r\nzdl-to-asyncapi io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin: Generates a draft AsyncAPI file with events from your ZDL services. (1.7.0)\r\n\r\n\r\nUse: "jbang zw -p -h" to get help on a specific plugin\n')),"\n",a.createElement(t.p,null,"If you don't find the functionality you are looking for, you can always ",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/#forking-an-standard-or-custom-plugin"},"fork an existing, standard or custom plugin"),"."),"\n",a.createElement(t.p,null,"Please refer to ",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/"},a.createElement(t.strong,null,"ZenWave SDK"))," for more detailed installation options."),"\n",a.createElement(t.h3,{id:"maven-plugin",style:{position:"relative"}},a.createElement(t.a,{href:"#maven-plugin","aria-label":"maven plugin permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"Maven Plugin"),"\n",a.createElement(t.p,null,"You can run any available (standard or custom) plugin as part of your maven build using the maven plugin:"),"\n",a.createElement("details",null,a.createElement("summary",null,"Click to see the maven plugin configuration"),a.createElement(t.pre,null,a.createElement(t.code,{className:"language-xml"},"\r\n io.github.zenwave360.zenwave-sdk\r\n zenwave-sdk-maven-plugin\r\n ${zenwave.version}\r\n \r\n false\x3c!-- default is false --\x3e\r\n true\x3c!-- default is true --\x3e\r\n true\x3c!-- default is true --\x3e\r\n \r\n \r\n \x3c!-- Add executions for each generation here: --\x3e\r\n \r\n generate-asyncapi\r\n generate-sources\r\n \r\n generate\r\n \r\n \r\n spring-cloud-streams3\r\n classpath:model/asyncapi.yml\r\n \r\n \x3c!-- ... --\x3e\r\n value\r\n \r\n \r\n \r\n \r\n\r\n \x3c!-- add any sdk plugin (custom or standard) as dependency here --\x3e\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-spring-cloud-streams3\r\n ${zenwave.version}\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-jsonschema2pojo\r\n ${zenwave.version}\r\n \r\n \r\n\n")),a.createElement(t.p,null,"Notice how you can read spec files from the project classpath as well as the filesystem. If you want to read a spec file from inside a project dependency remember to set ",a.createElement(t.code,null,"true"),"."),a.createElement(t.p,null,"NOTE: Remember to add any plugin you want to use as dependency.")),"\n",a.createElement(t.p,null,"Jump to ",a.createElement(t.a,{href:"https://www.zenwave360.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3"},"ZenWave AsyncAPI Generator")," for multiple examples using the maven plugin."),"\n",a.createElement(t.h2,{id:"zenwave-sdk-workflow",style:{position:"relative"}},a.createElement(t.a,{href:"#zenwave-sdk-workflow","aria-label":"zenwave sdk workflow permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"ZenWave SDK Workflow"),"\n",a.createElement(t.p,null,"You can generate complete Event Driven Microservices using DDD and API-First principles:"),"\n",a.createElement(t.blockquote,null,"\n",a.createElement(t.p,null,"👉 Describe your Domain Model ⤳ Generate OpenAPI ⤳ Generate AsyncAPI → Generate API Implementations → Generate Backend → Generate Tests and Contracts 👍"),"\n"),"\n",a.createElement(t.ol,null,"\n",a.createElement(t.li,null,"Start by ",a.createElement("strong",{className:"orange"},"Modeling your Domain")," using the ZDL Domain Language including: entities, relationships, service commands and domain events."),"\n",a.createElement(t.li,null,"Generate a ",a.createElement("strong",{className:"orange"},"draft OpenAPI definition from the ZDL model"),". Edit collaboratively this OpenAPI document and then generate some more functional code and tests from that definition."),"\n",a.createElement(t.li,null,"Generate a ",a.createElement("strong",{className:"orange"},"draft AsyncAPI definition")," for consuming async request commands and publishing domain events. Now use zenwave maven plugin to generate strongly typed business interfaces implementing some Enterprise Integration Patterns like: transactional outbox, business dead letter queue..."),"\n",a.createElement(t.li,null,"Generate a ",a.createElement("strong",{className:"orange"},"complete Backend Application")," from your Domain Definition Model."),"\n",a.createElement(t.li,null,"Connect (by hand) your Backend Application to other systems using the generated OpenAPI and AsyncAPI definitions."),"\n",a.createElement(t.li,null,"Generate ",a.createElement("strong",{className:"orange"},"E2E, Integration tests and Consumer Contracts")," for the public APIs you just produced."),"\n"),"\n",a.createElement(i.Ee,{alt:"ZenWave SDK Features MindMap",light:d,dark:o}),"\n",a.createElement("details",{markdown:"1"},a.createElement("summary",null,"ZenWave SDK Code Generator Features (expand to see)"),a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL Backend Application (flexible hexagonal architecture)","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Domain Entities,"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Inbound","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Service Ports, DTOs, Mappers"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Implementation for CRUD operations"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Acceptance Tests: SpringData InMemory Repositories"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Outbound: SpringData Repositories, ElasticSearch... (for REST or Async see other plugins)"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Adapters:","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Spring MVC"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"Spring WebFlux")),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Flavors","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","MongoDB","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Imperative"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"Reactive")),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JPA","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Imperative"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"Reactive")),"\n"),"\n"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Unit/Integration Testing","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Edge Integration Testing: partial spring-boot context for outbound adapters (with testcontainers)"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Sociable Vertical Testing: manual dependency setup with in memory infrastructure ",a.createElement(t.em,null,"test-doubles")),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Vertical Integration Testing: full spring-boot context for inbound adapters (with testcontainers)"),"\n"),"\n"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL OpenAPI Controllers"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Spring WebTestClient"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","AsyncAPI Spring Cloud Streams3","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Consumer and Producer. Imperative and Reactive.","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Business Exceptions Dead Letter Queues Routing"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Producer with Transactional Outbox pattern","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","For MongoDB"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","For JDBC"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Enterprise Envelop Pattern"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Automatically fill headers at runtime from payload paths, tracing-id supplier..."),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL to Specs","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL to OpenAPI"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL to AsyncAPI","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","AsyncAPI schemas"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","AVRO schemas"),"\n"),"\n"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","API Testing","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","KarateDSL","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Karate E2E Tests (please use ",a.createElement(t.a,{href:"https://github.com/ZenWave360/karate-ide"},"KarateIDE VSCode Extension")," instead)"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Karate/ApiMock Stateful Mocks (please use ",a.createElement(t.a,{href:"https://github.com/ZenWave360/karate-ide"},"KarateIDE VSCode Extension")," and ",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-apimock"},"ZenWave ApiMock")," instead)"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Spring WebTestClient"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to REST-assured"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"OpenAPI to Pact (",a.createElement(t.em,null,"postponed sine die"),")")),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Reverser Engineering","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI 2 JDL"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Java 2 JDL","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Spring Data MongoDB annotations"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JPA annotations"),"\n"),"\n"),"\n"),"\n"),"\n")),"\n",a.createElement(t.h2,{id:"generated-code-structure",style:{position:"relative"}},a.createElement(t.a,{href:"#generated-code-structure","aria-label":"generated code structure permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"Generated Code Structure"),"\n",a.createElement(t.p,null,"Generated code follows a ",a.createElement("strong",{className:"orange"},"flexible onion/hexagonal architecture"),". Separating core, inbound, implementation and outbound form infrastructure and adapters."),"\n",a.createElement(t.p,null,"Core domain entities and aggregates are annotated for persistence with JPA or SpringData/MongoDB annotations, ",a.createElement("strong",{className:"orange"},"avoiding unnecessary translation layers")," (mappers and dtos)."),"\n",a.createElement(i.Ee,{alt:"ZenWave SDK Modeling Languages",src:c.Z}),"\n",a.createElement(t.p,null,"Project structure:"),"\n",a.createElement(t.pre,null,a.createElement(t.code,null,"📦 \r\n 📦 adapters\r\n └─ web\r\n | └─ RestControllers (spring mvc)\r\n └─ events\r\n └─ *EventListeners (spring-cloud-streams)\r\n 📦 core\r\n ├─ 📦 domain\r\n | └─ (entities and aggregates)\r\n ├─ 📦 inbound\r\n | ├─ dtos/\r\n | └─ ServiceInterface (inbound service interface)\r\n ├─ 📦 outbound\r\n | ├─ mongodb\r\n | | └─ *RepositoryInterface (spring-data interface)\r\n | └─ jpa\r\n | └─ *RepositoryInterface (spring-data interface)\r\n └─ 📦 implementation\r\n ├─ mappers/\r\n └─ ServiceImplementation (inbound service implementation)\r\n 📦 infrastructure\r\n ├─ mongodb\r\n | └─ CustomRepositoryImpl (spring-data custom implementation)\r\n └─ jpa\r\n └─ CustomRepositoryImpl (spring-data custom implementation)\n")),"\n",a.createElement("a",{href:p},a.createElement(i.Ee,{alt:"ZenWave SDK Generated Code Screenshot",src:p})))}var h=function(e){void 0===e&&(e={});const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?a.createElement(t,e,a.createElement(g,e)):g(e)};function b(e){let{children:t}=e;return t}function f(e){return a.createElement(b,e,a.createElement(h,e))}},16376:function(e,t,n){n.d(t,{d2:function(){return a.d},zx:function(){return o},L0:function(){return p},$s:function(){return f},VS:function(){return E},gT:function(){return k},P7:function(){return h},Gz:function(){return g},S:function(){return G},VM:function(){return x},sd:function(){return P},kW:function(){return S},$D:function(){return I},DH:function(){return N},vC:function(){return y},LR:function(){return v},Ee:function(){return Z},Bk:function(){return O},Nm:function(){return W},X_:function(){return m.X},YZ:function(){return M},vk:function(){return B},BW:function(){return j},Mo:function(){return T}});var a=n(63585),r=n(27378),i=n(87573),s=n(30294);const l=e=>{let{background:t,backgroundHover:n,on:a}=e;return()=>(0,s.ivY)(["background-color:",";color:",";&:hover:not(:disabled){background-color:",";color:",";}&:active:not(:disabled){background-color:",";color:",";}"],t,a,n,a,n,a)},c=s.ZPm.buttonBox.withConfig({displayName:"Button__InnerButton",componentId:"sc-1qxez5q-0"})(["appearance:none;border-radius:base;transition:base;font-weight:500;border:0;display:inline-flex;align-items:center;cursor:pointer;font-size:16;padding:2 3;text-decoration:none !important;&:disabled{opacity:0.5;cursor:default;}&[data-variant='primary']{","}&[data-variant='success']{","}&[data-variant='danger']{","}&[data-variant='neutral']{","}"],l({background:"primary-600",backgroundHover:"primary-700",on:"white"}),l({background:"green-600",backgroundHover:"green-700",on:"white"}),l({background:"red-600",backgroundHover:"red-700",on:"white"}),l({background:"gray-300",backgroundHover:"gray-400",on:"black"})),o=r.forwardRef(((e,t)=>{let{variant:n="primary",children:a,...s}=e;return r.createElement(i.z,{ref:t,"data-variant":n},(e=>r.createElement(c,Object.assign({},e,s),a)))}));n(23824),n(31729);var d=n(63681),m=n(84234);const u=s.ZPm.box.withConfig({displayName:"Feature__InnerFeature",componentId:"sc-17n9iec-0"})(["border-left:1;border-left-style:dashed;border-left-color:layout-border;padding-left:4 !important;padding-right:5 !important;"]),p=r.forwardRef(((e,t)=>r.createElement(u,Object.assign({ref:t,col:{xs:1,md:1/3},px:2,pt:4,pb:{xs:2,md:5}},e)))),g=s.ZPm.h2.withConfig({displayName:"Feature__FeatureTitle",componentId:"sc-17n9iec-1"})(["margin:3 0;font-size:16;font-weight:500;border-left:1;border-color:primary-400;margin-left:",";padding-left:",";"],d.th.px(-9),d.th.px(9)),h=s.ZPm.p.withConfig({displayName:"Feature__FeatureText",componentId:"sc-17n9iec-2"})(["color:on-background-light;font-size:15;text-align:justify;margin:4 0;"]),b=s.ZPm.img.withConfig({displayName:"Feature__InnerFeatureImage",componentId:"sc-17n9iec-3"})(["margin-top:3;"]),f=r.forwardRef(((e,t)=>r.createElement(b,Object.assign({ref:t,width:48,height:48},e)))),E=r.forwardRef(((e,t)=>r.createElement(m.X,Object.assign({ref:t,row:!0,my:-4,px:3},e)))),k=r.forwardRef(((e,t)=>r.createElement(s.x.section,Object.assign({ref:t,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),v=s.ZPm.h1Box.withConfig({displayName:"Hero__HeroTitle",componentId:"sc-18tbum5-0"})(["font-size:38;font-weight:600;line-height:1.2;letter-spacing:-1.12px;margin:0 0 2;"," ",""],(0,d.up)("md",(0,s.ivY)(["padding-top:4;font-size:48;"])),(0,d.up)("xl",(0,s.ivY)(["font-size:60;"]))),y=s.ZPm.pBox.withConfig({displayName:"Hero__HeroTeaser",componentId:"sc-18tbum5-1"})(["font-size:18;margin:3 0;"," ",""],(0,d.up)("md",(0,s.ivY)(["font-size:20;"])),(0,d.up)("xl",(0,s.ivY)(["font-size:24;"]))),w=(0,s.ZPm)(m.X).withConfig({displayName:"Hero__InnerHero",componentId:"sc-18tbum5-2"})(["background-repeat:no-repeat;background-position:top -5% center;background-size:100% auto;padding-top:65%;text-align:center;"," ",""],(0,d.up)("md",(0,s.ivY)(["padding-top:0;margin-top:5;background-position:center right;background-size:58% auto;min-height:400;text-align:left;"])),(0,d.up)("xl",(0,s.ivY)(["margin-top:6;"]))),x=r.forwardRef(((e,t)=>{let{backgroundImageURL:n,...a}=e;return r.createElement(w,Object.assign({ref:t,backgroundImage:"url("+n+")"},a))})),I=r.forwardRef(((e,t)=>r.createElement(s.x.div,Object.assign({ref:t,w:{md:.5}},e)))),N=s.ZPm.sectionBox.withConfig({displayName:"Hero__HeroSection",componentId:"sc-18tbum5-3"})(["overflow:hidden;padding-top:2;padding-bottom:5;"]),S=r.forwardRef(((e,t)=>r.createElement(s.x.div,Object.assign({ref:t,row:!0,m:-2,justifyContent:{xs:"center",md:"initial"}},e)))),P=r.forwardRef(((e,t)=>r.createElement(s.x.div,Object.assign({ref:t,col:"auto",p:2},e))));var D=n(24956);const z=s.ZPm.div.withConfig({displayName:"Image__ImageContainer",componentId:"sc-1b0134e-0"})(["text-align:",";"],(e=>e.align)),C=s.ZPm.img.withConfig({displayName:"Image__InnerImage",componentId:"sc-1b0134e-1"})(["display:inline-block;"]),A=(e,t)=>"dark"===t?e.dark||e.src:e.light||e.src,Z=r.forwardRef(((e,t)=>r.createElement(z,{align:e.align||"center",className:e.visible},r.createElement(C,Object.assign({ref:t,src:A(e,(0,D.If)()[0])},e)))));n(15239),n(83160);const L=(0,s.ZPm)(s.x.cite).withConfig({displayName:"Quote__Cite",componentId:"sc-12i53kz-0"})(["display:block;text-align:right;margin-top:1rem;"]),O=r.forwardRef(((e,t)=>r.createElement(s.x.blockquote,Object.assign({ref:t,className:"quote"},e)))),W=r.forwardRef(((e,t)=>r.createElement(L,Object.assign({ref:t},e)))),j=r.forwardRef(((e,t)=>r.createElement(s.x.section,Object.assign({ref:t,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),M=s.ZPm.divBox.withConfig({displayName:"WideFeature",componentId:"sc-1ak5yjf-0"})(["display:block;",")"],(0,d.up)("md",(0,s.ivY)(["margin:0 20px;border-top:1px dashed;border-bottom:1px dotted;border-color:var(--xstyled-colors-layout-border,#d4d4d8);display:grid;grid-template-columns:1fr 1fr 1fr;"]))),T=s.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureText",componentId:"sc-1ak5yjf-1"})(["padding:1rem;grid-column-start:span 2;font-size:18;"," ",""],(0,d.up)("md",(0,s.ivY)(["font-size:20;padding:3rem;padding-top:2rem;"])),(0,d.up)("xl",(0,s.ivY)(["font-size:24;"]))),H=s.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureImageContainer",componentId:"sc-1ak5yjf-2"})(["padding:1rem;text-align:center;"]),_=s.ZPm.imgBox.withConfig({displayName:"WideFeature__InnerImage",componentId:"sc-1ak5yjf-3"})(["display:inline-block;"]),R=(e,t)=>"dark"===t?e.dark||e.src:e.light||e.src,B=r.forwardRef(((e,t)=>r.createElement(H,{className:e.className},r.createElement(_,Object.assign({ref:t,src:R(e,(0,D.If)()[0])},e))))),G=e=>{let{gist:t,file:n}=e;const a=(0,r.useRef)(null);(0,r.useEffect)((()=>{(async()=>{const e=n?"https://gist.githubusercontent.com/"+t+"/raw/"+n:"https://gist.githubusercontent.com/"+t+"/raw";try{const t=await fetch(e);if(t.ok){const e=22*(await t.text()).split("\n").length+40;a.current&&(a.current.style.height=e+"px")}else console.error("Failed to fetch Gist content")}catch(r){console.error("Error fetching Gist content:",r)}})()}),[t,n]);const i=n?"https://gist.github.com/"+t+".pibb?file="+n:"https://gist.github.com/"+t+".pibb",s=n?"https://gist.github.com/"+t+"#file-"+n.replace(/\./g,"-").toLowerCase():"https://gist.github.com/"+t;return r.createElement("div",{style:{border:"1px solid #ccc",padding:"10px 0 0 0",borderRadius:"5px"}},n&&r.createElement("header",{style:{marginLeft:"10px",fontStyle:"oblique"}},r.createElement("span",{role:"img","aria-label":"source code"},"🗒️"),r.createElement("a",{href:s,target:"_blank",rel:"noopener noreferrer"},n)),r.createElement("iframe",{title:n,ref:a,src:i,width:"100%",frameBorder:"0",style:{margin:"0",padding:"0"}}))}},91399:function(e,t,n){t.Z=n.p+"static/SDK-ServiceImplementation-Hexagonal.dark-1e003d6d4387f39bced4fc4a9694d7c8.png"},11926:function(e,t,n){n.p}}]); +//# sourceMappingURL=component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js.map b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js.map similarity index 57% rename from component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js.map rename to component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js.map index 26099e7..7f7255f 100644 --- a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js.map +++ b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js.map @@ -1 +1 @@ -{"version":3,"file":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js","mappings":"0LAAA,EAAe,IAA0B,yECAzC,EAAe,IAA0B,0E,WCAzC,G,SAAe,IAA0B,gECAzC,EAAe,IAA0B,gECAzC,EAAe,IAA0B,iFCAzC,EAAe,IAA0B,gFCAzC,EAAe,IAA0B,iECczC,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,OAAQ,SACRC,GAAI,KACJC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,WAAY,aACZC,GAAI,KACJC,MAAO,QACPC,IAAK,QACJC,EAAAA,EAAAA,MAAsBrB,EAAMsB,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBtB,EAAYG,GAAI,CACnFoB,GAAI,cACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,eACN,aAAc,wBACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,eAAgB,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4DAA6D,KAAMgB,EAAAA,cAAoB,MAAO,CAChKQ,MAAO,UACNR,EAAAA,cAAoBtB,EAAYM,EAAG,KAAMgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC7EsB,KAAM,kFACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,iIACLC,IAAK,mBACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,sDACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,6EACLC,IAAK,qCACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,yEACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,sEACLC,IAAK,WACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,yEACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,6EACLC,IAAK,cACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,yEACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,+EACLC,IAAK,uBACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,+DACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,+DACLC,IAAK,cACA,KAAMV,EAAAA,cAAoBW,EAAAA,GAAO,KAAMX,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,+JAAgKgB,EAAAA,cAAoBY,EAAAA,GAAa,KAAM,0CAA2C,KAAMZ,EAAAA,cAAoBa,EAAAA,GAAO,CACxWH,IAAK,iCACLI,MAAOC,EACPC,KAAMC,IACJ,KAAMjB,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,iDAAkDgB,EAAAA,cAAoB,SAAU,CACjIK,UAAW,UACV,iBAAkB,qCAAsC,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,kMAAmMgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9UsB,KAAM,gBACL,eAAgB,mCAAoC,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,YAAagB,EAAAA,cAAoB,SAAU,CAC/IK,UAAW,UACV,8BAA+B,QAASL,EAAAA,cAAoB,SAAU,CACvEK,UAAW,UACV,aAAc,mBAAoBL,EAAAA,cAAoB,SAAU,CACjEK,UAAW,UACV,8BAA+B,KAAM,KAAML,EAAAA,cAAoBa,EAAAA,GAAO,CACvEH,IAAK,sBACLM,KAAME,EACNJ,MAAOK,EACPjB,MAAO,CACLkB,UAAW,UAEX,KAAMpB,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,2EAA4E,KAAMgB,EAAAA,cAAoBtB,EAAYQ,GAAI,KAAM,KAAMc,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoBtB,EAAYI,EAAG,CAChQsB,KAAM,qDACL,uBAAwB,OAAQJ,EAAAA,cAAoB,SAAU,CAC/DK,UAAW,UACV,uBAAwB,4IAA6I,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoBtB,EAAYI,EAAG,CACzPsB,KAAM,qEACL,YAAa,+FAAgG,KAAMJ,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoBtB,EAAYI,EAAG,CACjMsB,KAAM,qCACL,WAAY,0EAA2E,MAAO,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,oCAAqCgB,EAAAA,cAAoB,SAAU,CACjNK,UAAW,UACV,uBAAwB,+IAAgJ,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,yCAA0CgB,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,mBAAoB,OAAQY,EAAAA,cAAoBtB,EAAYI,EAAG,CAC3WsB,KAAM,uCACL,kCAAmC,2DAA4D,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,gCAAiCgB,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,uBAAwB,QAASW,EAAAA,cAAoB,SAAU,CAC7RK,UAAW,UACV,sBAAuB,QAASL,EAAAA,cAAoB,SAAU,CAC/DK,UAAW,UACV,aAAc,eAAgBL,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,YAAa,QAASW,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,WAAY,uDAAwDW,EAAAA,cAAoB,SAAU,CACnPK,UAAW,UACV,uBAAwB,KAAM,KAAML,EAAAA,cAAoBtB,EAAYQ,GAAI,KAAM,KAAMc,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoB,SAAU,CAC7JK,UAAW,UACV,yDAA0D,+CAAgD,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoB,SAAU,CACzLK,UAAW,UACV,8CAA+C,2FAA4F,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoB,SAAU,CAC1NK,UAAW,UACV,gBAAiB,iBAAkBL,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,YAAa,4EAA6E,MAAO,KAAMY,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,uHAAwH,KAAMgB,EAAAA,cAAoBtB,EAAYY,GAAI,CAChYW,GAAI,2BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,4BACN,aAAc,qCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,4BAA6B,KAAMP,EAAAA,cAAoBtB,EAAYa,GAAI,CAC1EU,GAAI,6BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,8BACN,aAAc,uCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,gCAAiC,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4CAA6CgB,EAAAA,cAAoBtB,EAAYI,EAAG,CACnKsB,KAAM,yBACL,SAAU,mCAAoC,KAAMJ,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,CACtIY,UAAW,kBACV,+GAAgH,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,gDAAiD,KAAMgB,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,CACxSY,UAAW,gBACV,ulEAA0lE,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,2EAA4EgB,EAAAA,cAAoBtB,EAAYI,EAAG,CACzvEsB,KAAM,mFACL,+CAAgD,KAAM,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,mBAAoBgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC7JsB,KAAM,8CACLJ,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,gBAAiB,4CAA6C,KAAMW,EAAAA,cAAoBtB,EAAYa,GAAI,CACvJU,GAAI,eACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,gBACN,aAAc,yBACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,gBAAiB,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,6GAA8G,KAAMgB,EAAAA,cAAoB,UAAW,KAAMA,EAAAA,cAAoB,UAAW,KAAM,+CAAgDA,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,CAClYY,UAAW,gBACV,8xDAA2vDL,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,6KAA8KgB,EAAAA,cAAoBtB,EAAYe,KAAM,KAAM,2DAA4D,KAAMO,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,oEAAqE,KAAMgB,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,WAAYgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC7wEsB,KAAM,mFACL,8BAA+B,kDAAmD,KAAMJ,EAAAA,cAAoBtB,EAAYY,GAAI,CAC7HW,GAAI,uBACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,wBACN,aAAc,iCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,wBAAyB,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4FAA6F,KAAMgB,EAAAA,cAAoBtB,EAAYgB,WAAY,KAAM,KAAMM,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4JAA6J,MAAO,KAAMgB,EAAAA,cAAoBtB,EAAYiB,GAAI,KAAM,KAAMK,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,YAAaa,EAAAA,cAAoB,SAAU,CAC9jBK,UAAW,UACV,wBAAyB,0GAA2G,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,cAAea,EAAAA,cAAoB,SAAU,CAClOK,UAAW,UACV,+CAAgD,4HAA6H,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,cAAea,EAAAA,cAAoB,SAAU,CAC3QK,UAAW,UACV,6BAA8B,+PAAgQ,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,cAAea,EAAAA,cAAoB,SAAU,CAC5XK,UAAW,UACV,gCAAiC,uCAAwC,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,qHAAsH,KAAMa,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,YAAaa,EAAAA,cAAoB,SAAU,CAC3UK,UAAW,UACV,iDAAkD,2CAA4C,MAAO,KAAML,EAAAA,cAAoBa,EAAAA,GAAO,CACvIH,IAAK,+BACLI,MAAOO,EACPL,KAAMM,IACJ,KAAMtB,EAAAA,cAAoB,UAAW,CACvCuB,SAAU,KACTvB,EAAAA,cAAoB,UAAW,KAAM,uDAAwDA,EAAAA,cAAoBtB,EAAYQ,GAAI,CAClImB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,4DAA6D,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC9GmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oBAAqB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACtEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,UAAW,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC5DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,gCAAiC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAClFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,sCAAuC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACxFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,sDAAuD,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACtHkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,6FAA8F,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC/IkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,YAAa,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC9DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,mBAAoB,MAAO,MAAO,KAAMG,EAAAA,cAAoBtB,EAAYS,GAAI,CAC9HkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,UAAW,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC5DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,UAAW,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC5DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,aAAc,MAAO,MAAO,KAAMG,EAAAA,cAAoBtB,EAAYS,GAAI,CACxHkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACxDmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,aAAc,MAAO,MAAO,MAAO,MAAO,KAAMG,EAAAA,cAAoBtB,EAAYS,GAAI,CACtIkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2BAA4B,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC7EmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,qGAAsG,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACvJkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oFAAqF1B,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,iBAAkB,KAAMY,EAAAA,cAAoBtB,EAAYS,GAAI,CAClMkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,qGAAsG,MAAO,MAAO,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACnLkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2BAA4B,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC7EkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mCAAoC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACrFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,iCAAkC,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACnFmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kDAAmD,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACpGmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kDAAmD,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAClHkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,6CAA8C,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC/FmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,eAAgB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACjEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,YAAa,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC5EkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,8BAA+B,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oFAAqF,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACpJkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,eAAgB,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACjEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kBAAmB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACpEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kBAAmB,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACpEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oBAAqB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACtEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,gBAAiB,MAAO,MAAO,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC9FkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAChEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,YAAa,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC9DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2CAA4C1B,EAAAA,cAAoBtB,EAAYI,EAAG,CACtFsB,KAAM,4CACL,8BAA+B,aAAc,KAAMJ,EAAAA,cAAoBtB,EAAYS,GAAI,CACxFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,wDAAyD1B,EAAAA,cAAoBtB,EAAYI,EAAG,CACnGsB,KAAM,4CACL,8BAA+B,QAASJ,EAAAA,cAAoBtB,EAAYI,EAAG,CAC5EsB,KAAM,iDACL,mBAAoB,aAAc,MAAO,MAAO,KAAMJ,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3FkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mCAAoC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACrFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2BAA4B,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC7EkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,oBAAqBG,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,sBAAuB,MAAO,MAAO,MAAO,KAAMY,EAAAA,cAAoBtB,EAAYS,GAAI,CACvMkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,uBAAwB,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACzEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,iBAAkB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACnEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,aAAc,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC/DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mCAAoC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACrFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mBAAoB,MAAO,MAAO,MAAO,MAAO,OAAQ,KAAM1B,EAAAA,cAAoBtB,EAAYY,GAAI,CACzGW,GAAI,2BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,4BACN,aAAc,qCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,4BAA6B,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4BAA6BgB,EAAAA,cAAoB,SAAU,CAC1IK,UAAW,UACV,yCAA0C,6FAA8F,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,iHAAkHgB,EAAAA,cAAoB,SAAU,CACxUK,UAAW,UACV,2CAA4C,wBAAyB,KAAML,EAAAA,cAAoBa,EAAAA,GAAO,CACvGH,IAAK,iCACLD,IAAKkB,EAAAA,IACH,KAAM3B,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,sBAAuB,KAAMgB,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,KAAM,m5BAAo5B,KAAMO,EAAAA,cAAoB,IAAK,CACxlCI,KAAMwB,GACL5B,EAAAA,cAAoBa,EAAAA,GAAO,CAC5BH,IAAK,wCACLD,IAAKmB,KAER,CAKD,MAJA,SAAoBnD,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAOoD,QAASC,GAAanD,OAAOC,OAAO,CAAC,GAAGkB,EAAAA,EAAAA,MAAsBrB,EAAMsB,YAC3E,OAAO+B,EAAY9B,EAAAA,cAAoB8B,EAAWrD,EAAOuB,EAAAA,cAAoBxB,EAAmBC,IAAUD,EAAkBC,EAC7H,ECliBD,SAASsD,EAAT,GAAiC,IAAZ,SAACC,GAAWC,EAC/B,OAAOD,CACR,CAEc,SAASE,EAAiBzD,GACvC,OAAOuB,EAAAA,cAAoB+B,EAAatD,EAAOuB,EAAAA,cAAoBmC,EAAqB1D,GACzF,C,opBChBD,MAAM2D,EACJH,IAAAA,IAAC,WAAEI,EAAF,gBAAcC,EAAd,GAA+BC,GAAhCN,EAAAA,MACA,KACSO,EAAAA,EAAAA,KAAP,mJACsBH,EACXE,EAGaD,EACXC,EAIWD,EACXC,EAbf,EAkBIE,EAAcC,EAAAA,IAAAA,UAAAA,WAAH,+DAAGA,CAAH,8VAmBXN,EAAQ,CACRC,WAAY,cACZC,gBAAiB,cACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,YACZC,gBAAiB,YACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,UACZC,gBAAiB,UACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,WACZC,gBAAiB,WACjBC,GAAI,WAKGI,EAAS3C,EAAAA,YACpB,CAAC,EAA6C4C,KAAS,IAAtD,QAAER,EAAU,UAAZ,SAAuBJ,KAAavD,GAAiBoE,EACpD,OACE7C,EAAAA,cAAC8C,EAAAA,EAAD,CAAeF,IAAKA,EAAK,eAAcR,IACnCW,GACA/C,EAAAA,cAACyC,EAAD,iBAAiBM,EAAiBtE,GAC/BuD,IAJT,I,4CCtEJ,MAAMgB,EAAeN,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,kIAQLO,EAAUjD,EAAAA,YAAiB,CAACvB,EAAOmE,IAC9C5C,EAAAA,cAACgD,EAAD,eACEJ,IAAKA,EACLM,IAAK,CAAEC,GAAI,EAAGC,GAAI,EAAI,GACtBC,GAAI,EACJC,GAAI,EACJC,GAAI,CAAEJ,GAAI,EAAGC,GAAI,IACb3E,MAIK+E,EAAed,EAAAA,IAAAA,GAAAA,WAAH,iEAAGA,CAAH,qHAMRe,EAAAA,GAAAA,IAAO,GACNA,EAAAA,GAAAA,GAAM,IAGXC,EAAchB,EAAAA,IAAAA,EAAAA,WAAH,gEAAGA,CAAH,2EAOlBiB,EAAoBjB,EAAAA,IAAAA,IAAAA,WAAH,sEAAGA,CAAH,mBAIVkB,EAAe5D,EAAAA,YAAiB,CAACvB,EAAOmE,IACnD5C,EAAAA,cAAC2D,EAAD,eAAmBf,IAAKA,EAAKiB,MAAO,GAAIC,OAAQ,IAAQrF,MAG7CsF,EAAc/D,EAAAA,YAAiB,CAACvB,EAAOmE,IAClD5C,EAAAA,cAACgE,EAAAA,EAAD,eAAiBpB,IAAKA,EAAKqB,KAAG,EAACC,IAAK,EAAGb,GAAI,GAAO5E,MAGvC0F,EAAiBnE,EAAAA,YAAiB,CAACvB,EAAOmE,IACrD5C,EAAAA,cAACoE,EAAAA,EAAAA,QAAD,eACExB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACR/F,MCzDKgG,EAAY/B,EAAAA,IAAAA,MAAAA,WAAH,2DAAGA,CAAH,8FAOlBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,kCAQFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOmC,EAAajC,EAAAA,IAAAA,KAAAA,WAAH,4DAAGA,CAAH,qCAInBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAOFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQAoC,GAAYlC,EAAAA,EAAAA,KAAOsB,EAAAA,GAAVa,WAAA,2DAAGnC,CAAH,wIAOXgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,2HAYFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOsC,EAAO9E,EAAAA,YAClB,CAAC,EAAkC4C,KAAS,IAA3C,mBAAEmC,KAAuBtG,GAAiBwD,EACzC,OACEjC,EAAAA,cAAC4E,EAAD,eACEhC,IAAKA,EACLoC,gBAAe,OAASD,EAAT,KACXtG,GAJR,IAUSwG,EAAWjF,EAAAA,YAAiB,CAACvB,EAAOmE,IACxC5C,EAAAA,cAACoE,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKsC,EAAG,CAAE9B,GAAI,KAAW3E,MAGjC0G,EAAczC,EAAAA,IAAAA,WAAAA,WAAH,6DAAGA,CAAH,qDAMX0C,EAAiBpF,EAAAA,YAAiB,CAACvB,EAAOmE,IAEnD5C,EAAAA,cAACoE,EAAAA,EAAAA,IAAD,eACExB,IAAKA,EACLqB,KAAG,EACHoB,GAAI,EACJC,eAAgB,CAAEnC,GAAI,SAAUC,GAAI,YAChC3E,MAKG8G,EAAavF,EAAAA,YAAiB,CAACvB,EAAOmE,IAC1C5C,EAAAA,cAACoE,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKM,IAAI,OAAOlE,EAAG,GAAOP,M,eCvG/C,MAAM+G,EAAiB9C,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,qBACHjE,GAASA,EAAMgH,QAE1BC,EAAahD,EAAAA,IAAAA,IAAAA,WAAH,6DAAGA,CAAH,2BAGVjC,EAAM,CAAChC,EAAOkH,IACK,SAAdA,EAAsBlH,EAAMuC,MAAQvC,EAAMgC,IAAMhC,EAAMqC,OAASrC,EAAMgC,IAEnEI,EAAQb,EAAAA,YAAiB,CAACvB,EAAOmE,IAC1C5C,EAAAA,cAACwF,EAAD,CAAgBC,MAAOhH,EAAMgH,OAAS,SAAUpF,UAAW5B,EAAMmH,SAC7D5F,EAAAA,cAAC0F,EAAD,eAAY9C,IAAKA,EAAKnC,IAAKA,EAAIhC,GAAOoH,EAAAA,EAAAA,MAAe,KAASpH,O,kBCZtE,MAAMqH,GAAOpD,EAAAA,EAAAA,KAAO0B,EAAAA,EAAAA,MAAVS,WAAA,uDAAGnC,CAAH,qDAMG/B,EAAQX,EAAAA,YAAiB,CAACvB,EAAOmE,IACnC5C,EAAAA,cAACoE,EAAAA,EAAAA,WAAD,eAAcxB,IAAKA,EAAKvC,UAAU,SAAY5B,MAG5CmC,EAAcZ,EAAAA,YAAiB,CAACvB,EAAOmE,IACzC5C,EAAAA,cAAC8F,EAAD,eAAMlD,IAAKA,GAASnE,MCZlBsH,EAAqB/F,EAAAA,YAAiB,CAACvB,EAAOmE,IACvD5C,EAAAA,cAACoE,EAAAA,EAAAA,QAAD,eACIxB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACR/F,MAICuH,EAActD,EAAAA,IAAAA,OAAAA,WAAH,uDAAGA,CAAH,wBAEpBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,4KAaOyD,EAAkBvD,EAAAA,IAAAA,OAAAA,WAAH,wEAAGA,CAAH,gEAKxBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,kDASFkC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,oBAOA0D,EAA4BxD,EAAAA,IAAAA,OAAAA,WAAH,kFAAGA,CAAH,qCAKzBgD,EAAahD,EAAAA,IAAAA,OAAAA,WAAH,mEAAGA,CAAH,2BAKVjC,EAAM,CAAChC,EAAOkH,IACG,SAAdA,EAAsBlH,EAAMuC,MAAQvC,EAAMgC,IAAMhC,EAAMqC,OAASrC,EAAMgC,IAEjE0F,EAAmBnG,EAAAA,YAAiB,CAACvB,EAAOmE,IACrD5C,EAAAA,cAACkG,EAAD,CAA2B7F,UAAW5B,EAAM4B,WAC1CL,EAAAA,cAAC0F,EAAD,eAAY9C,IAAKA,EAAKnC,IAAKA,EAAIhC,GAAOoH,EAAAA,EAAAA,MAAe,KAASpH,OC9D9D2H,EAAOnE,IAAqB,IAApB,KAAEoE,EAAF,KAAQC,GAAWrE,EAC/B,MAAMsE,GAAYC,EAAAA,EAAAA,QAAO,OAwBzBC,EAAAA,EAAAA,YAAU,KAtBeC,WACvB,MAAMC,EAAML,EAAI,sCAC0BD,EAD1B,QACsCC,EADtC,sCAE0BD,EAF1B,OAGhB,IACE,MAAMO,QAAiBC,MAAMF,GAC7B,GAAIC,EAASE,GAAI,CACf,MAGMhD,EADa,UAFA8C,EAASG,QACLC,MAAM,MAAMC,OAEK,GACpCV,EAAUW,UACZX,EAAUW,QAAQhH,MAAM4D,OAAYA,EAApC,KANJ,MASEqD,QAAQC,MAAM,+BAIjB,CAFC,MAAOA,GACPD,QAAQC,MAAM,+BAAgCA,EAC/C,GAIDC,EAAkB,GACjB,CAAChB,EAAMC,IAEV,MAAM7F,EAAM6F,EAAI,2BACeD,EADf,cACiCC,EADjC,2BAEeD,EAFf,QAIViB,EAAUhB,EAAI,2BACWD,EADX,SACwBC,EAAKiB,QAAQ,MAAO,KAAKC,cADjD,2BAEWnB,EAE/B,OACErG,EAAAA,cAAAA,MAAAA,CAAKE,MAAO,CAAEuH,OAAQ,iBAAkBC,QAAS,aAAcC,aAAc,QAC1ErB,GACCtG,EAAAA,cAAAA,SAAAA,CAAQE,MAAO,CAAE0H,WAAY,OAAQC,UAAW,YAC9C7H,EAAAA,cAAAA,OAAAA,CAAM8H,KAAK,MAAM,aAAW,eAA5B,OACA9H,EAAAA,cAAAA,IAAAA,CAAGI,KAAMkH,EAASS,OAAO,SAASC,IAAI,uBACnC1B,IAIPtG,EAAAA,cAAAA,SAAAA,CACEiI,MAAO3B,EACP1D,IAAK2D,EACL9F,IAAKA,EACLoD,MAAM,OACNqE,YAAY,IACZhI,MAAO,CAAEiI,OAAQ,IAAKT,QAAS,OAhBrC,C,wBCxCF,IAAe,IAA0B,sF,wBCA1B,G","sources":["webpack://website/./pages/docs/SDK/images/SDK-ModelingLanguages.dark.png","webpack://website/./pages/docs/SDK/images/SDK-ModelingLanguages.light.png","webpack://website/./pages/docs/SDK/images/SDK-MindMap.dark.png","webpack://website/./pages/docs/SDK/images/SDK-MindMap.light.png","webpack://website/./pages/docs/SDK/images/ZenWave-SDK-Design-Code-Loop.light.png","webpack://website/./pages/docs/SDK/images/ZenWave-SDK-Design-Code-Loop.dark.png","webpack://website/./pages/docs/SDK/images/SDK-Generated-Code.png","webpack://website/./pages/docs/SDK/ZenWaveSDK.mdx","webpack://website/../smooth-doc/src/templates/doc.js","webpack://website/../smooth-doc/src/components/Button.js","webpack://website/../smooth-doc/src/components/Feature.js","webpack://website/../smooth-doc/src/components/Hero.js","webpack://website/../smooth-doc/src/components/Image.js","webpack://website/../smooth-doc/src/components/Quote.js","webpack://website/../smooth-doc/src/components/WideFeature.js","webpack://website/../smooth-doc/src/components/Gist.js","webpack://website/./pages/docs/SDK/images/SDK-ServiceImplementation-Hexagonal.dark.png","webpack://website/./pages/docs/SDK/images/SDK-ServiceImplementation-Hexagonal.light.png"],"sourcesContent":["export default __webpack_public_path__ + \"static/SDK-ModelingLanguages.dark-8c38c3425c66678f30e03ae344d7efa5.png\";","export default __webpack_public_path__ + \"static/SDK-ModelingLanguages.light-5ce43d2a0d73dfea6beed173035a17b1.png\";","export default __webpack_public_path__ + \"static/SDK-MindMap.dark-6e3facb7161823c4f526c8e63f1423bd.png\";","export default __webpack_public_path__ + \"static/SDK-MindMap.light-cb5646225ccdd6b4e02e804475f5d9dc.png\";","export default __webpack_public_path__ + \"static/ZenWave-SDK-Design-Code-Loop.light-8895761fbb21542d5b2c564f7614b590.png\";","export default __webpack_public_path__ + \"static/ZenWave-SDK-Design-Code-Loop.dark-475a45be0974497ccd4d749c50396bdd.png\";","export default __webpack_public_path__ + \"static/SDK-Generated-Code-b9a8a8596ae71be86d3a9d8e5764ac21.png\";","/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nimport {x} from '@xstyled/styled-components';\nimport {Image, Quote, QuoteAuthor} from \"smooth-doc/components\";\nimport modelingLanguagesDark from './images/SDK-ModelingLanguages.dark.png';\nimport modelingLanguagesLight from './images/SDK-ModelingLanguages.light.png';\nimport sdkHexagonalDark from './images/SDK-ServiceImplementation-Hexagonal.dark.png';\nimport sdkHexagonalLight from './images/SDK-ServiceImplementation-Hexagonal.light.png';\nimport sdkMindMapDark from './images/SDK-MindMap.dark.png';\nimport sdkMindMapLight from './images/SDK-MindMap.light.png';\nimport speedFeedbackLoopLight from './images/ZenWave-SDK-Design-Code-Loop.light.png';\nimport speedFeedbackLoopDark from './images/ZenWave-SDK-Design-Code-Loop.dark.png';\nimport sdkGeneratedCode from './images/SDK-Generated-Code.png';\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n img: \"img\",\n ul: \"ul\",\n li: \"li\",\n em: \"em\",\n strong: \"strong\",\n h2: \"h2\",\n h3: \"h3\",\n pre: \"pre\",\n code: \"code\",\n blockquote: \"blockquote\",\n ol: \"ol\",\n input: \"input\",\n del: \"del\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"zenwave-sdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#zenwave-sdk\",\n \"aria-label\": \"zenwave sdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"ZenWave SDK\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK Helps you Create Software Easy to Understand\"), \"\\n\", React.createElement(\"div\", {\n class: \"badges\"\n }, React.createElement(_components.p, null, React.createElement(_components.a, {\n href: \"https://search.maven.org/artifact/io.github.zenwave360.zenwave-sdk/zenwave-sdk\"\n }, React.createElement(_components.img, {\n src: \"https://img.shields.io/maven-central/v/io.github.zenwave360.zenwave-sdk/zenwave-sdk.svg?label=Maven%20Central&logo=apachemaven\",\n alt: \"Maven Central\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/releases\"\n }, React.createElement(_components.img, {\n src: \"https://img.shields.io/github/v/release/ZenWave360/zenwave-sdk?logo=GitHub\",\n alt: \"GitHub release (latest by date)\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml\"\n }, React.createElement(_components.img, {\n src: \"https://github.com/ZenWave360/zenwave-sdk/workflows/Build/badge.svg\",\n alt: \"build\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml\"\n }, React.createElement(_components.img, {\n src: \"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/jacoco.svg\",\n alt: \"coverage\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml\"\n }, React.createElement(_components.img, {\n src: \"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/branches.svg\",\n alt: \"branches coverage\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/blob/main/LICENSE\"\n }, React.createElement(_components.img, {\n src: \"https://img.shields.io/github/license/ZenWave360/zenwave-sdk\",\n alt: \"GitHub\"\n })))), \"\\n\", React.createElement(Quote, null, React.createElement(_components.p, null, \"The heart of software is its ability to solve domain-related problems for its users. The best software supports elegant solutions to real-world problems\\r\\n\", React.createElement(QuoteAuthor, null, \"- Eric Evans in Domain Driven Design\"))), \"\\n\", React.createElement(Image, {\n alt: \"ZenWave SDK Modeling Languages\",\n light: modelingLanguagesLight,\n dark: modelingLanguagesDark\n }), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK is a set of tools to convert your \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Domain Models\"), \" into working software and tests.\"), \"\\n\", React.createElement(_components.p, null, \"It is designed to be modular, configurable and extensible. It uses the standard java classpath as loading mechanism, so you can extend its functionality adding your own custom plugins. Visit \", React.createElement(_components.a, {\n href: \"/zenwave-sdk\"\n }, \"ZenWave SDK\"), \" for all configuration options.\"), \"\\n\", React.createElement(_components.p, null, \"Based on \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Domain Driven Design (DDD)\"), \" and \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"API-First\"), \" principles for \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Event Driven Microservices\"), \".\"), \"\\n\", React.createElement(Image, {\n alt: \"Speed Feedback Loop\",\n dark: speedFeedbackLoopDark,\n light: speedFeedbackLoopLight,\n style: {\n marginTop: '15px'\n }\n }), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK can generate code from a mix of different models including:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"/docs/event-driven-design/zenwave-domain-language\"\n }, \"ZDL Domain Language\"), \" as \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Ubiquitous Language\"), \". You can describe the core of your Bounded Context, as well as how it connects to external systems through different adapters and APIs.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"https://www.asyncapi.com/docs/getting-started/coming-from-openapi\"\n }, \"AsyncAPI\"), \": Industry de-facto standard to describe Event-Driven Architectures for Message-based APIs.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"https://swagger.io/specification/\"\n }, \"OpenAPI\"), \": Industry standard for Request-Response Architectures with REST APIs.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"Using ZenWave Domain Language as \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Ubiquitous Language\"), \" for modeling and describing Bounded Contexts: aggregates, entities with their relationships, services, value objects, commands and events.\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave Domain Language started as an \", React.createElement(_components.em, null, \"extended subset\"), \" of \", React.createElement(_components.a, {\n href: \"https://www.jhipster.tech/jdl/intro\"\n }, \"JHipster Domain Language (JDL)\"), \" that let you describe your entities and relationships.\"), \"\\n\", React.createElement(_components.p, null, \"Using ZDL Domain Language as \", React.createElement(_components.strong, null, \"Ubiquitous Language\"), \" for \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Data on the Inside\"), \" and \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"API-First\"), \" specs like \", React.createElement(_components.strong, null, \"AsyncAPI\"), \" and \", React.createElement(_components.strong, null, \"OpenAPI\"), \" to describe Inter Process Communications (IPC) for \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Data on the Outside\"), \".\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(\"strong\", {\n className: \"orange\"\n }, \"ZenWave Domain Language (ZDL) as Ubiquitous Language:\"), \" To describe your domain core domain model.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(\"strong\", {\n className: \"orange\"\n }, \"API-First specs like AsyncAPI and OpenAPI:\"), \" to describe Inter Process Communications (IPC) between bounded contexts/microservices.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(\"strong\", {\n className: \"orange\"\n }, \"ZenWave SDK:\"), \" to generate (\", React.createElement(_components.em, null, \"a lot of\"), \") infrastructure, functional and testing code from your models and APIs.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK is designed to be easily extensible and adaptable to your project or your organization needs and likes.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"zenwave-sdk-installation\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#zenwave-sdk-installation\",\n \"aria-label\": \"zenwave sdk installation permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"ZenWave SDK Installation\"), \"\\n\", React.createElement(_components.h3, {\n id: \"command-line-interface-cli\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#command-line-interface-cli\",\n \"aria-label\": \"command line interface cli permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Command Line Interface (CLI)\"), \"\\n\", React.createElement(_components.p, null, \"You can install the latest release using \", React.createElement(_components.a, {\n href: \"https://www.jbang.dev\"\n }, \"jbang\"), \" running the following command:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang alias add --force --fresh --name=zw release@zenwave360/zenwave-sdk\\r\\n\\r\\njbang zw --help list\\r\\n\\n\")), \"\\n\", React.createElement(_components.p, null, \"Will output a list of all available plugins:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-log\"\n }, \"ZW> SDK (1.7.0)\\r\\n\\r\\nAvailable plugins:\\r\\n\\r\\nbackend-application-default io.zenwave360.sdk.plugins.BackendApplicationDefaultPlugin: Generates a full backend application using a flexible hexagonal architecture (1.7.0)\\r\\njdl-to-asyncapi io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin: Generates a full AsyncAPI definitions for CRUD operations from JDL models (1.7.0)\\r\\nzdl-to-json io.zenwave360.sdk.plugins.ZdlToJsonPlugin: Prints to StdOut ZDL Model as JSON (1.7.0)\\r\\nspring-webtestclient io.zenwave360.sdk.plugins.SpringWebTestClientPlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\\r\\njsonschema2pojo io.zenwave360.sdk.plugins.AsyncApiJsonSchema2PojoPlugin: Generate Plain Old Java Objects from OpenAPI/AsyncAPI schemas or full JSON-Schema files (1.7.0)\\r\\nopenapi-controllers io.zenwave360.sdk.plugins.OpenAPIControllersPlugin: Generates implementations based on ZDL models and OpenAPI definitions SpringMVC generated OpenAPI interfaces. (1.7.0)\\r\\nopenapi-to-jdl io.zenwave360.sdk.plugins.OpenAPIToJDLPlugin: Generates JDL model from OpenAPI schemas (1.7.0)\\r\\nopenapi-karate io.zenwave360.sdk.plugins.OpenAPIKaratePlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\\r\\nspring-cloud-streams3 io.zenwave360.sdk.plugins.SpringCloudStreams3Plugin: Generates strongly typed SpringCloudStreams3 producer/consumer classes for AsyncAPI (1.7.0)\\r\\nzdl-to-openapi io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin: Generates a draft OpenAPI definitions from your ZDL entities and services. (1.7.0)\\r\\nzdl-to-markdown io.zenwave360.sdk.plugins.ZdlToMarkdownPlugin: Generates Markdown glossary from Zdl Models (1.7.0)\\r\\nzdl-to-asyncapi io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin: Generates a draft AsyncAPI file with events from your ZDL services. (1.7.0)\\r\\n\\r\\n\\r\\nUse: \\\"jbang zw -p -h\\\" to get help on a specific plugin\\n\")), \"\\n\", React.createElement(_components.p, null, \"If you don't find the functionality you are looking for, you can always \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/#forking-an-standard-or-custom-plugin\"\n }, \"fork an existing, standard or custom plugin\"), \".\"), \"\\n\", React.createElement(_components.p, null, \"Please refer to \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/\"\n }, React.createElement(_components.strong, null, \"ZenWave SDK\")), \" for more detailed installation options.\"), \"\\n\", React.createElement(_components.h3, {\n id: \"maven-plugin\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#maven-plugin\",\n \"aria-label\": \"maven plugin permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Maven Plugin\"), \"\\n\", React.createElement(_components.p, null, \"You can run any available (standard or custom) plugin as part of your maven build using the maven plugin:\"), \"\\n\", React.createElement(\"details\", null, React.createElement(\"summary\", null, \"Click to see the maven plugin configuration\"), React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n io.github.zenwave360.zenwave-sdk\\r\\n zenwave-sdk-maven-plugin\\r\\n ${zenwave.version}\\r\\n \\r\\n false\\r\\n true\\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n spring-cloud-streams3\\r\\n classpath:model/asyncapi.yml\\r\\n \\r\\n \\r\\n value\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-spring-cloud-streams3\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-jsonschema2pojo\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n\\n\")), React.createElement(_components.p, null, \"Notice how you can read spec files from the project classpath as well as the filesystem. If you want to read a spec file from inside a project dependency remember to set \", React.createElement(_components.code, null, \"true\"), \".\"), React.createElement(_components.p, null, \"NOTE: Remember to add any plugin you want to use as dependency.\")), \"\\n\", React.createElement(_components.p, null, \"Jump to \", React.createElement(_components.a, {\n href: \"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3\"\n }, \"ZenWave AsyncAPI Generator\"), \" for multiple examples using the maven plugin.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"zenwave-sdk-workflow\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#zenwave-sdk-workflow\",\n \"aria-label\": \"zenwave sdk workflow permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"ZenWave SDK Workflow\"), \"\\n\", React.createElement(_components.p, null, \"You can generate complete Event Driven Microservices using DDD and API-First principles:\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"👉 Describe your Domain Model ⤳ Generate OpenAPI ⤳ Generate AsyncAPI → Generate API Implementations → Generate Backend → Generate Tests and Contracts 👍\"), \"\\n\"), \"\\n\", React.createElement(_components.ol, null, \"\\n\", React.createElement(_components.li, null, \"Start by \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Modeling your Domain\"), \" using the ZDL Domain Language including: entities, relationships, service commands and domain events.\"), \"\\n\", React.createElement(_components.li, null, \"Generate a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"draft OpenAPI definition from the ZDL model\"), \". Edit collaboratively this OpenAPI document and then generate some more functional code and tests from that definition.\"), \"\\n\", React.createElement(_components.li, null, \"Generate a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"draft AsyncAPI definition\"), \" for consuming async request commands and publishing domain events. Now use zenwave maven plugin to generate strongly typed business interfaces implementing some Enterprise Integration Patterns like: transactional outbox, business dead letter queue...\"), \"\\n\", React.createElement(_components.li, null, \"Generate a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"complete Backend Application\"), \" from your Domain Definition Model.\"), \"\\n\", React.createElement(_components.li, null, \"Connect (by hand) your Backend Application to other systems using the generated OpenAPI and AsyncAPI definitions.\"), \"\\n\", React.createElement(_components.li, null, \"Generate \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"E2E, Integration tests and Consumer Contracts\"), \" for the public APIs you just produced.\"), \"\\n\"), \"\\n\", React.createElement(Image, {\n alt: \"ZenWave SDK Features MindMap\",\n light: sdkMindMapLight,\n dark: sdkMindMapDark\n }), \"\\n\", React.createElement(\"details\", {\n markdown: \"1\"\n }, React.createElement(\"summary\", null, \"ZenWave SDK Code Generator Features (expand to see)\"), React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL Backend Application (flexible hexagonal architecture)\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Domain Entities,\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Inbound\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Service Ports, DTOs, Mappers\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Implementation for CRUD operations\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Acceptance Tests: SpringData InMemory Repositories\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Outbound: SpringData Repositories, ElasticSearch... (for REST or Async see other plugins)\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Adapters:\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Spring MVC\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"Spring WebFlux\")), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Flavors\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"MongoDB\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Imperative\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"Reactive\")), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JPA\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Imperative\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"Reactive\")), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Unit/Integration Testing\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Edge Integration Testing: partial spring-boot context for outbound adapters (with testcontainers)\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Sociable Vertical Testing: manual dependency setup with in memory infrastructure \", React.createElement(_components.em, null, \"test-doubles\")), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Vertical Integration Testing: full spring-boot context for inbound adapters (with testcontainers)\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL OpenAPI Controllers\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Spring WebTestClient\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"AsyncAPI Spring Cloud Streams3\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Consumer and Producer. Imperative and Reactive.\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Business Exceptions Dead Letter Queues Routing\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Producer with Transactional Outbox pattern\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"For MongoDB\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"For JDBC\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Enterprise Envelop Pattern\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Automatically fill headers at runtime from payload paths, tracing-id supplier...\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL to Specs\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL to OpenAPI\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL to AsyncAPI\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"AsyncAPI schemas\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"AVRO schemas\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"API Testing\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"KarateDSL\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Karate E2E Tests (please use \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/karate-ide\"\n }, \"KarateIDE VSCode Extension\"), \" instead)\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Karate/ApiMock Stateful Mocks (please use \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/karate-ide\"\n }, \"KarateIDE VSCode Extension\"), \" and \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-apimock\"\n }, \"ZenWave ApiMock\"), \" instead)\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Spring WebTestClient\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to REST-assured\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"OpenAPI to Pact (\", React.createElement(_components.em, null, \"postponed sine die\"), \")\")), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Reverser Engineering\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI 2 JDL\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Java 2 JDL\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Spring Data MongoDB annotations\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JPA annotations\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"generated-code-structure\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generated-code-structure\",\n \"aria-label\": \"generated code structure permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generated Code Structure\"), \"\\n\", React.createElement(_components.p, null, \"Generated code follows a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"flexible onion/hexagonal architecture\"), \". Separating core, inbound, implementation and outbound form infrastructure and adapters.\"), \"\\n\", React.createElement(_components.p, null, \"Core domain entities and aggregates are annotated for persistence with JPA or SpringData/MongoDB annotations, \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"avoiding unnecessary translation layers\"), \" (mappers and dtos).\"), \"\\n\", React.createElement(Image, {\n alt: \"ZenWave SDK Modeling Languages\",\n src: sdkHexagonalDark\n }), \"\\n\", React.createElement(_components.p, null, \"Project structure:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, null, \"📦 \\r\\n 📦 adapters\\r\\n └─ web\\r\\n | └─ RestControllers (spring mvc)\\r\\n └─ events\\r\\n └─ *EventListeners (spring-cloud-streams)\\r\\n 📦 core\\r\\n ├─ 📦 domain\\r\\n | └─ (entities and aggregates)\\r\\n ├─ 📦 inbound\\r\\n | ├─ dtos/\\r\\n | └─ ServiceInterface (inbound service interface)\\r\\n ├─ 📦 outbound\\r\\n | ├─ mongodb\\r\\n | | └─ *RepositoryInterface (spring-data interface)\\r\\n | └─ jpa\\r\\n | └─ *RepositoryInterface (spring-data interface)\\r\\n └─ 📦 implementation\\r\\n ├─ mappers/\\r\\n └─ ServiceImplementation (inbound service implementation)\\r\\n 📦 infrastructure\\r\\n ├─ mongodb\\r\\n | └─ CustomRepositoryImpl (spring-data custom implementation)\\r\\n └─ jpa\\r\\n └─ CustomRepositoryImpl (spring-data custom implementation)\\n\")), \"\\n\", React.createElement(\"a\", {\n href: sdkGeneratedCode\n }, React.createElement(Image, {\n alt: \"ZenWave SDK Generated Code Screenshot\",\n src: sdkGeneratedCode\n })));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ZenWaveSDK.mdx\";\nimport {graphql} from 'gatsby';\nexport const pageQuery = graphql`\n query DocPageQuery($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n tableOfContents\n }\n }\n`;\nfunction DocTemplate({children}) {\n return children;\n}\nDocTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(DocTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n","import * as React from 'react'\r\nimport { Button as AriakitButton } from 'ariakit/button'\r\nimport styled, { css } from '@xstyled/styled-components'\r\n\r\nconst variant =\r\n ({ background, backgroundHover, on }) =>\r\n () => {\r\n return css`\r\n background-color: ${background};\r\n color: ${on};\r\n\r\n &:hover:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n\r\n &:active:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n `\r\n }\r\n\r\nconst InnerButton = styled.buttonBox`\r\n appearance: none;\r\n border-radius: base;\r\n transition: base;\r\n font-weight: 500;\r\n border: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font-size: 16;\r\n padding: 2 3;\r\n text-decoration: none !important;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: default;\r\n }\r\n\r\n &[data-variant='primary'] {\r\n ${variant({\r\n background: 'primary-600',\r\n backgroundHover: 'primary-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='success'] {\r\n ${variant({\r\n background: 'green-600',\r\n backgroundHover: 'green-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='danger'] {\r\n ${variant({\r\n background: 'red-600',\r\n backgroundHover: 'red-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='neutral'] {\r\n ${variant({\r\n background: 'gray-300',\r\n backgroundHover: 'gray-400',\r\n on: 'black',\r\n })}\r\n }\r\n`\r\n\r\nexport const Button = React.forwardRef(\r\n ({ variant = 'primary', children, ...props }, ref) => {\r\n return (\r\n \r\n {(buttonProps) => (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n )\r\n },\r\n)\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { th, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst InnerFeature = styled.box`\r\n border-left: 1;\r\n border-left-style: dashed;\r\n border-left-color: layout-border;\r\n padding-left: 4 !important;\r\n padding-right: 5 !important;\r\n`\r\n\r\nexport const Feature = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureTitle = styled.h2`\r\n margin: 3 0;\r\n font-size: 16;\r\n font-weight: 500;\r\n border-left: 1;\r\n border-color: primary-400;\r\n margin-left: ${th.px(-9)};\r\n padding-left: ${th.px(9)};\r\n`\r\n\r\nexport const FeatureText = styled.p`\r\n color: on-background-light;\r\n font-size: 15;\r\n text-align: justify;\r\n margin: 4 0;\r\n`\r\n\r\nconst InnerFeatureImage = styled.img`\r\n margin-top: 3;\r\n`\r\n\r\nexport const FeatureImage = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureList = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nexport const HeroTitle = styled.h1Box`\r\n font-size: 38;\r\n font-weight: 600;\r\n line-height: 1.2;\r\n letter-spacing: -1.12px;\r\n margin: 0 0 2;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 4;\r\n font-size: 48;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 60;\r\n `,\r\n )}\r\n`\r\n\r\nexport const HeroTeaser = styled.pBox`\r\n font-size: 18;\r\n margin: 3 0;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\n\r\nconst InnerHero = styled(ScreenContainer)`\r\n background-repeat: no-repeat;\r\n background-position: top -5% center;\r\n background-size: 100% auto;\r\n padding-top: 65%;\r\n text-align: center;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 0;\r\n margin-top: 5;\r\n background-position: center right;\r\n background-size: 58% auto;\r\n min-height: 400;\r\n text-align: left;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n margin-top: 6;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Hero = React.forwardRef(\r\n ({ backgroundImageURL, ...props }, ref) => {\r\n return (\r\n \r\n )\r\n },\r\n)\r\n\r\nexport const HeroBody = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const HeroSection = styled.sectionBox`\r\n overflow: hidden;\r\n padding-top: 2;\r\n padding-bottom: 5;\r\n`\r\n\r\nexport const HeroActionList = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport const HeroAction = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { useColorMode, th, x } from '@xstyled/styled-components'\r\n\r\nconst ImageContainer = styled.div`\r\n text-align: ${props => props.align};\r\n`\r\nconst InnerImage = styled.img`\r\n display: inline-block;\r\n`\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const Image = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst Cite = styled(x.cite)`\r\n display: block;\r\n text-align: right;\r\n margin-top: 1rem;\r\n`\r\n\r\nexport const Quote = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const QuoteAuthor = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","import styled, {up, css, x, useColorMode} from '@xstyled/styled-components'\r\nimport React from \"react\";\r\n\r\nexport const WideFeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const WideFeature = styled.divBox`\r\n display: block;\r\n ${up(\r\n 'md',\r\n css`\r\n margin: 0 20px;\r\n border-top: 1px dashed;\r\n border-bottom: 1px dotted;\r\n border-color: var(--xstyled-colors-layout-border,#d4d4d8);\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n `,\r\n )})\r\n`\r\n\r\nexport const WideFeatureText = styled.divBox`\r\n padding: 1rem;\r\n grid-column-start: span 2;\r\n\r\n font-size: 18;\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n padding: 3rem;\r\n padding-top: 2rem;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\nconst WideFeatureImageContainer = styled.divBox`\r\n padding: 1rem;\r\n text-align: center;\r\n`\r\n\r\nconst InnerImage = styled.imgBox`\r\n display: inline-block;\r\n //max-width: 300px;\r\n`\r\n\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const WideFeatureImage = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React, { useRef, useEffect } from 'react';\r\nimport { marginLeft } from '@xstyled/styled-components'\r\n\r\nconst Gist = ({ gist, file }) => {\r\n const iframeRef = useRef(null);\r\n\r\n const fetchGistContent = async () => {\r\n const url = file\r\n ? `https://gist.githubusercontent.com/${gist}/raw/${file}`\r\n : `https://gist.githubusercontent.com/${gist}/raw`;\r\n try {\r\n const response = await fetch(url);\r\n if (response.ok) {\r\n const text = await response.text();\r\n const lineCount = text.split('\\n').length;\r\n const lineHeight = 22; // Approximate line height in pixels\r\n const height = lineCount * lineHeight + 40;\r\n if (iframeRef.current) {\r\n iframeRef.current.style.height = `${height}px`;\r\n }\r\n } else {\r\n console.error('Failed to fetch Gist content');\r\n }\r\n } catch (error) {\r\n console.error('Error fetching Gist content:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchGistContent();\r\n }, [gist, file]);\r\n\r\n const src = file\r\n ? `https://gist.github.com/${gist}.pibb?file=${file}`\r\n : `https://gist.github.com/${gist}.pibb`;\r\n\r\n const gistUrl = file\r\n ? `https://gist.github.com/${gist}#file-${file.replace(/\\./g, '-').toLowerCase()}`\r\n : `https://gist.github.com/${gist}`;\r\n\r\n return (\r\n
\r\n {file && (\r\n
\r\n 🗒️\r\n \r\n {file}\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport { Gist };\r\n","export default __webpack_public_path__ + \"static/SDK-ServiceImplementation-Hexagonal.dark-1e003d6d4387f39bced4fc4a9694d7c8.png\";","export default __webpack_public_path__ + \"static/SDK-ServiceImplementation-Hexagonal.light-2ee85e2f86731a12068268ad214ab826.png\";"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","img","ul","li","em","strong","h2","h3","pre","code","blockquote","ol","input","del","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","class","src","alt","Quote","QuoteAuthor","Image","light","modelingLanguagesLight","dark","modelingLanguagesDark","speedFeedbackLoopDark","speedFeedbackLoopLight","marginTop","sdkMindMapLight","sdkMindMapDark","markdown","type","checked","disabled","sdkHexagonalDark","sdkGeneratedCode","wrapper","MDXLayout","DocTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX","variant","background","backgroundHover","on","css","InnerButton","styled","Button","ref","_ref2","AriakitButton","buttonProps","InnerFeature","Feature","col","xs","md","px","pt","pb","FeatureTitle","th","FeatureText","InnerFeatureImage","FeatureImage","width","height","FeatureList","ScreenContainer","row","my","FeatureSection","x","py","borderTop","borderBottom","borderColor","HeroTitle","up","HeroTeaser","InnerHero","withConfig","Hero","backgroundImageURL","backgroundImage","HeroBody","w","HeroSection","HeroActionList","m","justifyContent","HeroAction","ImageContainer","align","InnerImage","colorMode","visible","useColorMode","Cite","WideFeatureSection","WideFeature","WideFeatureText","WideFeatureImageContainer","WideFeatureImage","Gist","gist","file","iframeRef","useRef","useEffect","async","url","response","fetch","ok","text","split","length","current","console","error","fetchGistContent","gistUrl","replace","toLowerCase","border","padding","borderRadius","marginLeft","fontStyle","role","target","rel","title","frameBorder","margin"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-0fcb0c20eb1ae41bc836.js","mappings":"0LAAA,EAAe,IAA0B,yECAzC,EAAe,IAA0B,0E,WCAzC,G,SAAe,IAA0B,gECAzC,EAAe,IAA0B,gECAzC,EAAe,IAA0B,iFCAzC,EAAe,IAA0B,gFCAzC,EAAe,IAA0B,iECczC,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,OAAQ,SACRC,GAAI,KACJC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,WAAY,aACZC,GAAI,KACJC,MAAO,QACPC,IAAK,QACJC,EAAAA,EAAAA,MAAsBrB,EAAMsB,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBtB,EAAYG,GAAI,CACnFoB,GAAI,cACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,eACN,aAAc,wBACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,eAAgB,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4DAA6D,KAAMgB,EAAAA,cAAoB,MAAO,CAChKQ,MAAO,UACNR,EAAAA,cAAoBtB,EAAYM,EAAG,KAAMgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC7EsB,KAAM,kFACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,iIACLC,IAAK,mBACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,sDACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,6EACLC,IAAK,qCACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,yEACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,sEACLC,IAAK,WACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,yEACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,6EACLC,IAAK,cACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,yEACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,+EACLC,IAAK,uBACF,OAAQV,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9CsB,KAAM,+DACLJ,EAAAA,cAAoBtB,EAAYO,IAAK,CACtCwB,IAAK,+DACLC,IAAK,cACA,KAAMV,EAAAA,cAAoBW,EAAAA,GAAO,KAAMX,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,+JAAgKgB,EAAAA,cAAoBY,EAAAA,GAAa,KAAM,0CAA2C,KAAMZ,EAAAA,cAAoBa,EAAAA,GAAO,CACxWH,IAAK,iCACLI,MAAOC,EACPC,KAAMC,IACJ,KAAMjB,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,iDAAkDgB,EAAAA,cAAoB,SAAU,CACjIK,UAAW,UACV,iBAAkB,qCAAsC,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,kMAAmMgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC9UsB,KAAM,gBACL,eAAgB,mCAAoC,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,YAAagB,EAAAA,cAAoB,SAAU,CAC/IK,UAAW,UACV,8BAA+B,QAASL,EAAAA,cAAoB,SAAU,CACvEK,UAAW,UACV,aAAc,mBAAoBL,EAAAA,cAAoB,SAAU,CACjEK,UAAW,UACV,8BAA+B,KAAM,KAAML,EAAAA,cAAoBa,EAAAA,GAAO,CACvEH,IAAK,sBACLM,KAAME,EACNJ,MAAOK,EACPjB,MAAO,CACLkB,UAAW,UAEX,KAAMpB,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,2EAA4E,KAAMgB,EAAAA,cAAoBtB,EAAYQ,GAAI,KAAM,KAAMc,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoBtB,EAAYI,EAAG,CAChQsB,KAAM,qDACL,uBAAwB,OAAQJ,EAAAA,cAAoB,SAAU,CAC/DK,UAAW,UACV,uBAAwB,4IAA6I,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoBtB,EAAYI,EAAG,CACzPsB,KAAM,qEACL,YAAa,+FAAgG,KAAMJ,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoBtB,EAAYI,EAAG,CACjMsB,KAAM,qCACL,WAAY,0EAA2E,MAAO,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,oCAAqCgB,EAAAA,cAAoB,SAAU,CACjNK,UAAW,UACV,uBAAwB,+IAAgJ,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,yCAA0CgB,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,mBAAoB,OAAQY,EAAAA,cAAoBtB,EAAYI,EAAG,CAC3WsB,KAAM,uCACL,kCAAmC,2DAA4D,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,gCAAiCgB,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,uBAAwB,QAASW,EAAAA,cAAoB,SAAU,CAC7RK,UAAW,UACV,sBAAuB,QAASL,EAAAA,cAAoB,SAAU,CAC/DK,UAAW,UACV,aAAc,eAAgBL,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,YAAa,QAASW,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,WAAY,uDAAwDW,EAAAA,cAAoB,SAAU,CACnPK,UAAW,UACV,uBAAwB,KAAM,KAAML,EAAAA,cAAoBtB,EAAYQ,GAAI,KAAM,KAAMc,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoB,SAAU,CAC7JK,UAAW,UACV,yDAA0D,+CAAgD,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoB,SAAU,CACzLK,UAAW,UACV,8CAA+C,2FAA4F,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAMa,EAAAA,cAAoB,SAAU,CAC1NK,UAAW,UACV,gBAAiB,iBAAkBL,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,YAAa,4EAA6E,MAAO,KAAMY,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,uHAAwH,KAAMgB,EAAAA,cAAoBtB,EAAYY,GAAI,CAChYW,GAAI,2BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,4BACN,aAAc,qCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,4BAA6B,KAAMP,EAAAA,cAAoBtB,EAAYa,GAAI,CAC1EU,GAAI,6BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,8BACN,aAAc,uCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,gCAAiC,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4CAA6CgB,EAAAA,cAAoBtB,EAAYI,EAAG,CACnKsB,KAAM,yBACL,SAAU,mCAAoC,KAAMJ,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,CACtIY,UAAW,kBACV,+GAAgH,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,gDAAiD,KAAMgB,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,CACxSY,UAAW,gBACV,ulEAA0lE,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,2EAA4EgB,EAAAA,cAAoBtB,EAAYI,EAAG,CACzvEsB,KAAM,mFACL,+CAAgD,KAAM,KAAMJ,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,mBAAoBgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC7JsB,KAAM,8CACLJ,EAAAA,cAAoBtB,EAAYW,OAAQ,KAAM,gBAAiB,4CAA6C,KAAMW,EAAAA,cAAoBtB,EAAYa,GAAI,CACvJU,GAAI,eACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,gBACN,aAAc,yBACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,gBAAiB,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,6GAA8G,KAAMgB,EAAAA,cAAoB,UAAW,KAAMA,EAAAA,cAAoB,UAAW,KAAM,+CAAgDA,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,CAClYY,UAAW,gBACV,8xDAA2vDL,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,6KAA8KgB,EAAAA,cAAoBtB,EAAYe,KAAM,KAAM,2DAA4D,KAAMO,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,oEAAqE,KAAMgB,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,WAAYgB,EAAAA,cAAoBtB,EAAYI,EAAG,CAC7wEsB,KAAM,gFACL,8BAA+B,kDAAmD,KAAMJ,EAAAA,cAAoBtB,EAAYY,GAAI,CAC7HW,GAAI,uBACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,wBACN,aAAc,iCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,wBAAyB,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4FAA6F,KAAMgB,EAAAA,cAAoBtB,EAAYgB,WAAY,KAAM,KAAMM,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4JAA6J,MAAO,KAAMgB,EAAAA,cAAoBtB,EAAYiB,GAAI,KAAM,KAAMK,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,YAAaa,EAAAA,cAAoB,SAAU,CAC9jBK,UAAW,UACV,wBAAyB,0GAA2G,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,cAAea,EAAAA,cAAoB,SAAU,CAClOK,UAAW,UACV,+CAAgD,4HAA6H,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,cAAea,EAAAA,cAAoB,SAAU,CAC3QK,UAAW,UACV,6BAA8B,+PAAgQ,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,cAAea,EAAAA,cAAoB,SAAU,CAC5XK,UAAW,UACV,gCAAiC,uCAAwC,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,qHAAsH,KAAMa,EAAAA,cAAoBtB,EAAYS,GAAI,KAAM,YAAaa,EAAAA,cAAoB,SAAU,CAC3UK,UAAW,UACV,iDAAkD,2CAA4C,MAAO,KAAML,EAAAA,cAAoBa,EAAAA,GAAO,CACvIH,IAAK,+BACLI,MAAOO,EACPL,KAAMM,IACJ,KAAMtB,EAAAA,cAAoB,UAAW,CACvCuB,SAAU,KACTvB,EAAAA,cAAoB,UAAW,KAAM,uDAAwDA,EAAAA,cAAoBtB,EAAYQ,GAAI,CAClImB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,4DAA6D,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC9GmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oBAAqB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACtEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,UAAW,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC5DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,gCAAiC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAClFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,sCAAuC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACxFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,sDAAuD,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACtHkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,6FAA8F,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC/IkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,YAAa,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC9DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,mBAAoB,MAAO,MAAO,KAAMG,EAAAA,cAAoBtB,EAAYS,GAAI,CAC9HkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,UAAW,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC5DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,UAAW,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC5DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,aAAc,MAAO,MAAO,KAAMG,EAAAA,cAAoBtB,EAAYS,GAAI,CACxHkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACxDmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,aAAc,MAAO,MAAO,MAAO,MAAO,KAAMG,EAAAA,cAAoBtB,EAAYS,GAAI,CACtIkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2BAA4B,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC7EmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,qGAAsG,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACvJkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oFAAqF1B,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,iBAAkB,KAAMY,EAAAA,cAAoBtB,EAAYS,GAAI,CAClMkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,qGAAsG,MAAO,MAAO,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACnLkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2BAA4B,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC7EkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mCAAoC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACrFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,iCAAkC,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACnFmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kDAAmD,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACpGmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kDAAmD,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAClHkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,6CAA8C,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC/FmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,eAAgB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACjEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,YAAa,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC5EkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,8BAA+B,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAChFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oFAAqF,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACpJkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,eAAgB,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACjEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kBAAmB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACpEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,kBAAmB,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACpEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,oBAAqB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACtEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,gBAAiB,MAAO,MAAO,MAAO,MAAO,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC9FkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,cAAe,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAChEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,YAAa,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC9DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2CAA4C1B,EAAAA,cAAoBtB,EAAYI,EAAG,CACtFsB,KAAM,4CACL,8BAA+B,aAAc,KAAMJ,EAAAA,cAAoBtB,EAAYS,GAAI,CACxFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,wDAAyD1B,EAAAA,cAAoBtB,EAAYI,EAAG,CACnGsB,KAAM,4CACL,8BAA+B,QAASJ,EAAAA,cAAoBtB,EAAYI,EAAG,CAC5EsB,KAAM,iDACL,mBAAoB,aAAc,MAAO,MAAO,KAAMJ,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3FkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mCAAoC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACrFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,2BAA4B,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CAC7EkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNE,UAAU,IACR,IAAK1B,EAAAA,cAAoBtB,EAAYmB,IAAK,KAAM,oBAAqBG,EAAAA,cAAoBtB,EAAYU,GAAI,KAAM,sBAAuB,MAAO,MAAO,MAAO,KAAMY,EAAAA,cAAoBtB,EAAYS,GAAI,CACvMkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,uBAAwB,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CACzEmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,iBAAkB,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACnEkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,aAAc,KAAM1B,EAAAA,cAAoBtB,EAAYQ,GAAI,CAC/DmB,UAAW,sBACV,KAAML,EAAAA,cAAoBtB,EAAYS,GAAI,CAC3CkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mCAAoC,KAAM1B,EAAAA,cAAoBtB,EAAYS,GAAI,CACrFkB,UAAW,kBACVL,EAAAA,cAAoBtB,EAAYkB,MAAO,CACxC4B,KAAM,WACNC,SAAS,EACTC,UAAU,IACR,IAAK,mBAAoB,MAAO,MAAO,MAAO,MAAO,OAAQ,KAAM1B,EAAAA,cAAoBtB,EAAYY,GAAI,CACzGW,GAAI,2BACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBtB,EAAYI,EAAG,CACpCsB,KAAM,4BACN,aAAc,qCACdC,UAAW,iBACVL,EAAAA,cAAoBtB,EAAYK,IAAK,CACtCuB,wBAAyB,CACvBC,OAAQ,meAEP,4BAA6B,KAAMP,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,4BAA6BgB,EAAAA,cAAoB,SAAU,CAC1IK,UAAW,UACV,yCAA0C,6FAA8F,KAAML,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,iHAAkHgB,EAAAA,cAAoB,SAAU,CACxUK,UAAW,UACV,2CAA4C,wBAAyB,KAAML,EAAAA,cAAoBa,EAAAA,GAAO,CACvGH,IAAK,iCACLD,IAAKkB,EAAAA,IACH,KAAM3B,EAAAA,cAAoBtB,EAAYM,EAAG,KAAM,sBAAuB,KAAMgB,EAAAA,cAAoBtB,EAAYc,IAAK,KAAMQ,EAAAA,cAAoBtB,EAAYe,KAAM,KAAM,m5BAAo5B,KAAMO,EAAAA,cAAoB,IAAK,CACxlCI,KAAMwB,GACL5B,EAAAA,cAAoBa,EAAAA,GAAO,CAC5BH,IAAK,wCACLD,IAAKmB,KAER,CAKD,MAJA,SAAoBnD,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAOoD,QAASC,GAAanD,OAAOC,OAAO,CAAC,GAAGkB,EAAAA,EAAAA,MAAsBrB,EAAMsB,YAC3E,OAAO+B,EAAY9B,EAAAA,cAAoB8B,EAAWrD,EAAOuB,EAAAA,cAAoBxB,EAAmBC,IAAUD,EAAkBC,EAC7H,ECliBD,SAASsD,EAAT,GAAiC,IAAZ,SAACC,GAAWC,EAC/B,OAAOD,CACR,CAEc,SAASE,EAAiBzD,GACvC,OAAOuB,EAAAA,cAAoB+B,EAAatD,EAAOuB,EAAAA,cAAoBmC,EAAqB1D,GACzF,C,opBChBD,MAAM2D,EACJH,IAAAA,IAAC,WAAEI,EAAF,gBAAcC,EAAd,GAA+BC,GAAhCN,EAAAA,MACA,KACSO,EAAAA,EAAAA,KAAP,mJACsBH,EACXE,EAGaD,EACXC,EAIWD,EACXC,EAbf,EAkBIE,EAAcC,EAAAA,IAAAA,UAAAA,WAAH,+DAAGA,CAAH,8VAmBXN,EAAQ,CACRC,WAAY,cACZC,gBAAiB,cACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,YACZC,gBAAiB,YACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,UACZC,gBAAiB,UACjBC,GAAI,UAKJH,EAAQ,CACRC,WAAY,WACZC,gBAAiB,WACjBC,GAAI,WAKGI,EAAS3C,EAAAA,YACpB,CAAC,EAA6C4C,KAAS,IAAtD,QAAER,EAAU,UAAZ,SAAuBJ,KAAavD,GAAiBoE,EACpD,OACE7C,EAAAA,cAAC8C,EAAAA,EAAD,CAAeF,IAAKA,EAAK,eAAcR,IACnCW,GACA/C,EAAAA,cAACyC,EAAD,iBAAiBM,EAAiBtE,GAC/BuD,IAJT,I,4CCtEJ,MAAMgB,EAAeN,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,kIAQLO,EAAUjD,EAAAA,YAAiB,CAACvB,EAAOmE,IAC9C5C,EAAAA,cAACgD,EAAD,eACEJ,IAAKA,EACLM,IAAK,CAAEC,GAAI,EAAGC,GAAI,EAAI,GACtBC,GAAI,EACJC,GAAI,EACJC,GAAI,CAAEJ,GAAI,EAAGC,GAAI,IACb3E,MAIK+E,EAAed,EAAAA,IAAAA,GAAAA,WAAH,iEAAGA,CAAH,qHAMRe,EAAAA,GAAAA,IAAO,GACNA,EAAAA,GAAAA,GAAM,IAGXC,EAAchB,EAAAA,IAAAA,EAAAA,WAAH,gEAAGA,CAAH,2EAOlBiB,EAAoBjB,EAAAA,IAAAA,IAAAA,WAAH,sEAAGA,CAAH,mBAIVkB,EAAe5D,EAAAA,YAAiB,CAACvB,EAAOmE,IACnD5C,EAAAA,cAAC2D,EAAD,eAAmBf,IAAKA,EAAKiB,MAAO,GAAIC,OAAQ,IAAQrF,MAG7CsF,EAAc/D,EAAAA,YAAiB,CAACvB,EAAOmE,IAClD5C,EAAAA,cAACgE,EAAAA,EAAD,eAAiBpB,IAAKA,EAAKqB,KAAG,EAACC,IAAK,EAAGb,GAAI,GAAO5E,MAGvC0F,EAAiBnE,EAAAA,YAAiB,CAACvB,EAAOmE,IACrD5C,EAAAA,cAACoE,EAAAA,EAAAA,QAAD,eACExB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACR/F,MCzDKgG,EAAY/B,EAAAA,IAAAA,MAAAA,WAAH,2DAAGA,CAAH,8FAOlBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,kCAQFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOmC,EAAajC,EAAAA,IAAAA,KAAAA,WAAH,4DAAGA,CAAH,qCAInBgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAOFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQAoC,GAAYlC,EAAAA,EAAAA,KAAOsB,EAAAA,GAAVa,WAAA,2DAAGnC,CAAH,wIAOXgC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,2HAYFkC,EAAAA,EAAAA,IACA,MACAlC,EAAAA,EAAAA,KAFG,CAAD,oBAQOsC,EAAO9E,EAAAA,YAClB,CAAC,EAAkC4C,KAAS,IAA3C,mBAAEmC,KAAuBtG,GAAiBwD,EACzC,OACEjC,EAAAA,cAAC4E,EAAD,eACEhC,IAAKA,EACLoC,gBAAe,OAASD,EAAT,KACXtG,GAJR,IAUSwG,EAAWjF,EAAAA,YAAiB,CAACvB,EAAOmE,IACxC5C,EAAAA,cAACoE,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKsC,EAAG,CAAE9B,GAAI,KAAW3E,MAGjC0G,EAAczC,EAAAA,IAAAA,WAAAA,WAAH,6DAAGA,CAAH,qDAMX0C,EAAiBpF,EAAAA,YAAiB,CAACvB,EAAOmE,IAEnD5C,EAAAA,cAACoE,EAAAA,EAAAA,IAAD,eACExB,IAAKA,EACLqB,KAAG,EACHoB,GAAI,EACJC,eAAgB,CAAEnC,GAAI,SAAUC,GAAI,YAChC3E,MAKG8G,EAAavF,EAAAA,YAAiB,CAACvB,EAAOmE,IAC1C5C,EAAAA,cAACoE,EAAAA,EAAAA,IAAD,eAAOxB,IAAKA,EAAKM,IAAI,OAAOlE,EAAG,GAAOP,M,eCvG/C,MAAM+G,EAAiB9C,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,qBACHjE,GAASA,EAAMgH,QAE1BC,EAAahD,EAAAA,IAAAA,IAAAA,WAAH,6DAAGA,CAAH,2BAGVjC,EAAM,CAAChC,EAAOkH,IACK,SAAdA,EAAsBlH,EAAMuC,MAAQvC,EAAMgC,IAAMhC,EAAMqC,OAASrC,EAAMgC,IAEnEI,EAAQb,EAAAA,YAAiB,CAACvB,EAAOmE,IAC1C5C,EAAAA,cAACwF,EAAD,CAAgBC,MAAOhH,EAAMgH,OAAS,SAAUpF,UAAW5B,EAAMmH,SAC7D5F,EAAAA,cAAC0F,EAAD,eAAY9C,IAAKA,EAAKnC,IAAKA,EAAIhC,GAAOoH,EAAAA,EAAAA,MAAe,KAASpH,O,kBCZtE,MAAMqH,GAAOpD,EAAAA,EAAAA,KAAO0B,EAAAA,EAAAA,MAAVS,WAAA,uDAAGnC,CAAH,qDAMG/B,EAAQX,EAAAA,YAAiB,CAACvB,EAAOmE,IACnC5C,EAAAA,cAACoE,EAAAA,EAAAA,WAAD,eAAcxB,IAAKA,EAAKvC,UAAU,SAAY5B,MAG5CmC,EAAcZ,EAAAA,YAAiB,CAACvB,EAAOmE,IACzC5C,EAAAA,cAAC8F,EAAD,eAAMlD,IAAKA,GAASnE,MCZlBsH,EAAqB/F,EAAAA,YAAiB,CAACvB,EAAOmE,IACvD5C,EAAAA,cAACoE,EAAAA,EAAAA,QAAD,eACIxB,IAAKA,EACLyB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACR/F,MAICuH,EAActD,EAAAA,IAAAA,OAAAA,WAAH,uDAAGA,CAAH,wBAEpBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,4KAaOyD,EAAkBvD,EAAAA,IAAAA,OAAAA,WAAH,wEAAGA,CAAH,gEAKxBgC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,kDASFkC,EAAAA,EAAAA,IACE,MACAlC,EAAAA,EAAAA,KAFC,CAAD,oBAOA0D,EAA4BxD,EAAAA,IAAAA,OAAAA,WAAH,kFAAGA,CAAH,qCAKzBgD,EAAahD,EAAAA,IAAAA,OAAAA,WAAH,mEAAGA,CAAH,2BAKVjC,EAAM,CAAChC,EAAOkH,IACG,SAAdA,EAAsBlH,EAAMuC,MAAQvC,EAAMgC,IAAMhC,EAAMqC,OAASrC,EAAMgC,IAEjE0F,EAAmBnG,EAAAA,YAAiB,CAACvB,EAAOmE,IACrD5C,EAAAA,cAACkG,EAAD,CAA2B7F,UAAW5B,EAAM4B,WAC1CL,EAAAA,cAAC0F,EAAD,eAAY9C,IAAKA,EAAKnC,IAAKA,EAAIhC,GAAOoH,EAAAA,EAAAA,MAAe,KAASpH,OC9D9D2H,EAAOnE,IAAqB,IAApB,KAAEoE,EAAF,KAAQC,GAAWrE,EAC/B,MAAMsE,GAAYC,EAAAA,EAAAA,QAAO,OAwBzBC,EAAAA,EAAAA,YAAU,KAtBeC,WACvB,MAAMC,EAAML,EAAI,sCAC0BD,EAD1B,QACsCC,EADtC,sCAE0BD,EAF1B,OAGhB,IACE,MAAMO,QAAiBC,MAAMF,GAC7B,GAAIC,EAASE,GAAI,CACf,MAGMhD,EADa,UAFA8C,EAASG,QACLC,MAAM,MAAMC,OAEK,GACpCV,EAAUW,UACZX,EAAUW,QAAQhH,MAAM4D,OAAYA,EAApC,KANJ,MASEqD,QAAQC,MAAM,+BAIjB,CAFC,MAAOA,GACPD,QAAQC,MAAM,+BAAgCA,EAC/C,GAIDC,EAAkB,GACjB,CAAChB,EAAMC,IAEV,MAAM7F,EAAM6F,EAAI,2BACeD,EADf,cACiCC,EADjC,2BAEeD,EAFf,QAIViB,EAAUhB,EAAI,2BACWD,EADX,SACwBC,EAAKiB,QAAQ,MAAO,KAAKC,cADjD,2BAEWnB,EAE/B,OACErG,EAAAA,cAAAA,MAAAA,CAAKE,MAAO,CAAEuH,OAAQ,iBAAkBC,QAAS,aAAcC,aAAc,QAC1ErB,GACCtG,EAAAA,cAAAA,SAAAA,CAAQE,MAAO,CAAE0H,WAAY,OAAQC,UAAW,YAC9C7H,EAAAA,cAAAA,OAAAA,CAAM8H,KAAK,MAAM,aAAW,eAA5B,OACA9H,EAAAA,cAAAA,IAAAA,CAAGI,KAAMkH,EAASS,OAAO,SAASC,IAAI,uBACnC1B,IAIPtG,EAAAA,cAAAA,SAAAA,CACEiI,MAAO3B,EACP1D,IAAK2D,EACL9F,IAAKA,EACLoD,MAAM,OACNqE,YAAY,IACZhI,MAAO,CAAEiI,OAAQ,IAAKT,QAAS,OAhBrC,C,wBCxCF,IAAe,IAA0B,sF,wBCA1B,G","sources":["webpack://website/./pages/docs/SDK/images/SDK-ModelingLanguages.dark.png","webpack://website/./pages/docs/SDK/images/SDK-ModelingLanguages.light.png","webpack://website/./pages/docs/SDK/images/SDK-MindMap.dark.png","webpack://website/./pages/docs/SDK/images/SDK-MindMap.light.png","webpack://website/./pages/docs/SDK/images/ZenWave-SDK-Design-Code-Loop.light.png","webpack://website/./pages/docs/SDK/images/ZenWave-SDK-Design-Code-Loop.dark.png","webpack://website/./pages/docs/SDK/images/SDK-Generated-Code.png","webpack://website/./pages/docs/SDK/ZenWaveSDK.mdx","webpack://website/../smooth-doc/src/templates/doc.js","webpack://website/../smooth-doc/src/components/Button.js","webpack://website/../smooth-doc/src/components/Feature.js","webpack://website/../smooth-doc/src/components/Hero.js","webpack://website/../smooth-doc/src/components/Image.js","webpack://website/../smooth-doc/src/components/Quote.js","webpack://website/../smooth-doc/src/components/WideFeature.js","webpack://website/../smooth-doc/src/components/Gist.js","webpack://website/./pages/docs/SDK/images/SDK-ServiceImplementation-Hexagonal.dark.png","webpack://website/./pages/docs/SDK/images/SDK-ServiceImplementation-Hexagonal.light.png"],"sourcesContent":["export default __webpack_public_path__ + \"static/SDK-ModelingLanguages.dark-8c38c3425c66678f30e03ae344d7efa5.png\";","export default __webpack_public_path__ + \"static/SDK-ModelingLanguages.light-5ce43d2a0d73dfea6beed173035a17b1.png\";","export default __webpack_public_path__ + \"static/SDK-MindMap.dark-6e3facb7161823c4f526c8e63f1423bd.png\";","export default __webpack_public_path__ + \"static/SDK-MindMap.light-cb5646225ccdd6b4e02e804475f5d9dc.png\";","export default __webpack_public_path__ + \"static/ZenWave-SDK-Design-Code-Loop.light-8895761fbb21542d5b2c564f7614b590.png\";","export default __webpack_public_path__ + \"static/ZenWave-SDK-Design-Code-Loop.dark-475a45be0974497ccd4d749c50396bdd.png\";","export default __webpack_public_path__ + \"static/SDK-Generated-Code-b9a8a8596ae71be86d3a9d8e5764ac21.png\";","/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nimport {x} from '@xstyled/styled-components';\nimport {Image, Quote, QuoteAuthor} from \"smooth-doc/components\";\nimport modelingLanguagesDark from './images/SDK-ModelingLanguages.dark.png';\nimport modelingLanguagesLight from './images/SDK-ModelingLanguages.light.png';\nimport sdkHexagonalDark from './images/SDK-ServiceImplementation-Hexagonal.dark.png';\nimport sdkHexagonalLight from './images/SDK-ServiceImplementation-Hexagonal.light.png';\nimport sdkMindMapDark from './images/SDK-MindMap.dark.png';\nimport sdkMindMapLight from './images/SDK-MindMap.light.png';\nimport speedFeedbackLoopLight from './images/ZenWave-SDK-Design-Code-Loop.light.png';\nimport speedFeedbackLoopDark from './images/ZenWave-SDK-Design-Code-Loop.dark.png';\nimport sdkGeneratedCode from './images/SDK-Generated-Code.png';\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n img: \"img\",\n ul: \"ul\",\n li: \"li\",\n em: \"em\",\n strong: \"strong\",\n h2: \"h2\",\n h3: \"h3\",\n pre: \"pre\",\n code: \"code\",\n blockquote: \"blockquote\",\n ol: \"ol\",\n input: \"input\",\n del: \"del\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"zenwave-sdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#zenwave-sdk\",\n \"aria-label\": \"zenwave sdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"ZenWave SDK\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK Helps you Create Software Easy to Understand\"), \"\\n\", React.createElement(\"div\", {\n class: \"badges\"\n }, React.createElement(_components.p, null, React.createElement(_components.a, {\n href: \"https://search.maven.org/artifact/io.github.zenwave360.zenwave-sdk/zenwave-sdk\"\n }, React.createElement(_components.img, {\n src: \"https://img.shields.io/maven-central/v/io.github.zenwave360.zenwave-sdk/zenwave-sdk.svg?label=Maven%20Central&logo=apachemaven\",\n alt: \"Maven Central\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/releases\"\n }, React.createElement(_components.img, {\n src: \"https://img.shields.io/github/v/release/ZenWave360/zenwave-sdk?logo=GitHub\",\n alt: \"GitHub release (latest by date)\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml\"\n }, React.createElement(_components.img, {\n src: \"https://github.com/ZenWave360/zenwave-sdk/workflows/Build/badge.svg\",\n alt: \"build\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml\"\n }, React.createElement(_components.img, {\n src: \"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/jacoco.svg\",\n alt: \"coverage\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml\"\n }, React.createElement(_components.img, {\n src: \"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/branches.svg\",\n alt: \"branches coverage\"\n })), \"\\r\\n\", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/blob/main/LICENSE\"\n }, React.createElement(_components.img, {\n src: \"https://img.shields.io/github/license/ZenWave360/zenwave-sdk\",\n alt: \"GitHub\"\n })))), \"\\n\", React.createElement(Quote, null, React.createElement(_components.p, null, \"The heart of software is its ability to solve domain-related problems for its users. The best software supports elegant solutions to real-world problems\\r\\n\", React.createElement(QuoteAuthor, null, \"- Eric Evans in Domain Driven Design\"))), \"\\n\", React.createElement(Image, {\n alt: \"ZenWave SDK Modeling Languages\",\n light: modelingLanguagesLight,\n dark: modelingLanguagesDark\n }), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK is a set of tools to convert your \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Domain Models\"), \" into working software and tests.\"), \"\\n\", React.createElement(_components.p, null, \"It is designed to be modular, configurable and extensible. It uses the standard java classpath as loading mechanism, so you can extend its functionality adding your own custom plugins. Visit \", React.createElement(_components.a, {\n href: \"/zenwave-sdk\"\n }, \"ZenWave SDK\"), \" for all configuration options.\"), \"\\n\", React.createElement(_components.p, null, \"Based on \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Domain Driven Design (DDD)\"), \" and \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"API-First\"), \" principles for \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Event Driven Microservices\"), \".\"), \"\\n\", React.createElement(Image, {\n alt: \"Speed Feedback Loop\",\n dark: speedFeedbackLoopDark,\n light: speedFeedbackLoopLight,\n style: {\n marginTop: '15px'\n }\n }), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK can generate code from a mix of different models including:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"/docs/event-driven-design/zenwave-domain-language\"\n }, \"ZDL Domain Language\"), \" as \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Ubiquitous Language\"), \". You can describe the core of your Bounded Context, as well as how it connects to external systems through different adapters and APIs.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"https://www.asyncapi.com/docs/getting-started/coming-from-openapi\"\n }, \"AsyncAPI\"), \": Industry de-facto standard to describe Event-Driven Architectures for Message-based APIs.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"https://swagger.io/specification/\"\n }, \"OpenAPI\"), \": Industry standard for Request-Response Architectures with REST APIs.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"Using ZenWave Domain Language as \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Ubiquitous Language\"), \" for modeling and describing Bounded Contexts: aggregates, entities with their relationships, services, value objects, commands and events.\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave Domain Language started as an \", React.createElement(_components.em, null, \"extended subset\"), \" of \", React.createElement(_components.a, {\n href: \"https://www.jhipster.tech/jdl/intro\"\n }, \"JHipster Domain Language (JDL)\"), \" that let you describe your entities and relationships.\"), \"\\n\", React.createElement(_components.p, null, \"Using ZDL Domain Language as \", React.createElement(_components.strong, null, \"Ubiquitous Language\"), \" for \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Data on the Inside\"), \" and \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"API-First\"), \" specs like \", React.createElement(_components.strong, null, \"AsyncAPI\"), \" and \", React.createElement(_components.strong, null, \"OpenAPI\"), \" to describe Inter Process Communications (IPC) for \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Data on the Outside\"), \".\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(\"strong\", {\n className: \"orange\"\n }, \"ZenWave Domain Language (ZDL) as Ubiquitous Language:\"), \" To describe your domain core domain model.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(\"strong\", {\n className: \"orange\"\n }, \"API-First specs like AsyncAPI and OpenAPI:\"), \" to describe Inter Process Communications (IPC) between bounded contexts/microservices.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(\"strong\", {\n className: \"orange\"\n }, \"ZenWave SDK:\"), \" to generate (\", React.createElement(_components.em, null, \"a lot of\"), \") infrastructure, functional and testing code from your models and APIs.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK is designed to be easily extensible and adaptable to your project or your organization needs and likes.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"zenwave-sdk-installation\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#zenwave-sdk-installation\",\n \"aria-label\": \"zenwave sdk installation permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"ZenWave SDK Installation\"), \"\\n\", React.createElement(_components.h3, {\n id: \"command-line-interface-cli\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#command-line-interface-cli\",\n \"aria-label\": \"command line interface cli permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Command Line Interface (CLI)\"), \"\\n\", React.createElement(_components.p, null, \"You can install the latest release using \", React.createElement(_components.a, {\n href: \"https://www.jbang.dev\"\n }, \"jbang\"), \" running the following command:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang alias add --force --fresh --name=zw release@zenwave360/zenwave-sdk\\r\\n\\r\\njbang zw --help list\\r\\n\\n\")), \"\\n\", React.createElement(_components.p, null, \"Will output a list of all available plugins:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-log\"\n }, \"ZW> SDK (1.7.0)\\r\\n\\r\\nAvailable plugins:\\r\\n\\r\\nbackend-application-default io.zenwave360.sdk.plugins.BackendApplicationDefaultPlugin: Generates a full backend application using a flexible hexagonal architecture (1.7.0)\\r\\njdl-to-asyncapi io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin: Generates a full AsyncAPI definitions for CRUD operations from JDL models (1.7.0)\\r\\nzdl-to-json io.zenwave360.sdk.plugins.ZdlToJsonPlugin: Prints to StdOut ZDL Model as JSON (1.7.0)\\r\\nspring-webtestclient io.zenwave360.sdk.plugins.SpringWebTestClientPlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\\r\\njsonschema2pojo io.zenwave360.sdk.plugins.AsyncApiJsonSchema2PojoPlugin: Generate Plain Old Java Objects from OpenAPI/AsyncAPI schemas or full JSON-Schema files (1.7.0)\\r\\nopenapi-controllers io.zenwave360.sdk.plugins.OpenAPIControllersPlugin: Generates implementations based on ZDL models and OpenAPI definitions SpringMVC generated OpenAPI interfaces. (1.7.0)\\r\\nopenapi-to-jdl io.zenwave360.sdk.plugins.OpenAPIToJDLPlugin: Generates JDL model from OpenAPI schemas (1.7.0)\\r\\nopenapi-karate io.zenwave360.sdk.plugins.OpenAPIKaratePlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\\r\\nspring-cloud-streams3 io.zenwave360.sdk.plugins.SpringCloudStreams3Plugin: Generates strongly typed SpringCloudStreams3 producer/consumer classes for AsyncAPI (1.7.0)\\r\\nzdl-to-openapi io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin: Generates a draft OpenAPI definitions from your ZDL entities and services. (1.7.0)\\r\\nzdl-to-markdown io.zenwave360.sdk.plugins.ZdlToMarkdownPlugin: Generates Markdown glossary from Zdl Models (1.7.0)\\r\\nzdl-to-asyncapi io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin: Generates a draft AsyncAPI file with events from your ZDL services. (1.7.0)\\r\\n\\r\\n\\r\\nUse: \\\"jbang zw -p -h\\\" to get help on a specific plugin\\n\")), \"\\n\", React.createElement(_components.p, null, \"If you don't find the functionality you are looking for, you can always \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/#forking-an-standard-or-custom-plugin\"\n }, \"fork an existing, standard or custom plugin\"), \".\"), \"\\n\", React.createElement(_components.p, null, \"Please refer to \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-sdk/\"\n }, React.createElement(_components.strong, null, \"ZenWave SDK\")), \" for more detailed installation options.\"), \"\\n\", React.createElement(_components.h3, {\n id: \"maven-plugin\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#maven-plugin\",\n \"aria-label\": \"maven plugin permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Maven Plugin\"), \"\\n\", React.createElement(_components.p, null, \"You can run any available (standard or custom) plugin as part of your maven build using the maven plugin:\"), \"\\n\", React.createElement(\"details\", null, React.createElement(\"summary\", null, \"Click to see the maven plugin configuration\"), React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n io.github.zenwave360.zenwave-sdk\\r\\n zenwave-sdk-maven-plugin\\r\\n ${zenwave.version}\\r\\n \\r\\n false\\r\\n true\\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n spring-cloud-streams3\\r\\n classpath:model/asyncapi.yml\\r\\n \\r\\n \\r\\n value\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-spring-cloud-streams3\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-jsonschema2pojo\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n\\n\")), React.createElement(_components.p, null, \"Notice how you can read spec files from the project classpath as well as the filesystem. If you want to read a spec file from inside a project dependency remember to set \", React.createElement(_components.code, null, \"true\"), \".\"), React.createElement(_components.p, null, \"NOTE: Remember to add any plugin you want to use as dependency.\")), \"\\n\", React.createElement(_components.p, null, \"Jump to \", React.createElement(_components.a, {\n href: \"https://www.zenwave360.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3\"\n }, \"ZenWave AsyncAPI Generator\"), \" for multiple examples using the maven plugin.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"zenwave-sdk-workflow\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#zenwave-sdk-workflow\",\n \"aria-label\": \"zenwave sdk workflow permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"ZenWave SDK Workflow\"), \"\\n\", React.createElement(_components.p, null, \"You can generate complete Event Driven Microservices using DDD and API-First principles:\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"👉 Describe your Domain Model ⤳ Generate OpenAPI ⤳ Generate AsyncAPI → Generate API Implementations → Generate Backend → Generate Tests and Contracts 👍\"), \"\\n\"), \"\\n\", React.createElement(_components.ol, null, \"\\n\", React.createElement(_components.li, null, \"Start by \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"Modeling your Domain\"), \" using the ZDL Domain Language including: entities, relationships, service commands and domain events.\"), \"\\n\", React.createElement(_components.li, null, \"Generate a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"draft OpenAPI definition from the ZDL model\"), \". Edit collaboratively this OpenAPI document and then generate some more functional code and tests from that definition.\"), \"\\n\", React.createElement(_components.li, null, \"Generate a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"draft AsyncAPI definition\"), \" for consuming async request commands and publishing domain events. Now use zenwave maven plugin to generate strongly typed business interfaces implementing some Enterprise Integration Patterns like: transactional outbox, business dead letter queue...\"), \"\\n\", React.createElement(_components.li, null, \"Generate a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"complete Backend Application\"), \" from your Domain Definition Model.\"), \"\\n\", React.createElement(_components.li, null, \"Connect (by hand) your Backend Application to other systems using the generated OpenAPI and AsyncAPI definitions.\"), \"\\n\", React.createElement(_components.li, null, \"Generate \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"E2E, Integration tests and Consumer Contracts\"), \" for the public APIs you just produced.\"), \"\\n\"), \"\\n\", React.createElement(Image, {\n alt: \"ZenWave SDK Features MindMap\",\n light: sdkMindMapLight,\n dark: sdkMindMapDark\n }), \"\\n\", React.createElement(\"details\", {\n markdown: \"1\"\n }, React.createElement(\"summary\", null, \"ZenWave SDK Code Generator Features (expand to see)\"), React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL Backend Application (flexible hexagonal architecture)\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Domain Entities,\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Inbound\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Service Ports, DTOs, Mappers\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Implementation for CRUD operations\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Acceptance Tests: SpringData InMemory Repositories\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Outbound: SpringData Repositories, ElasticSearch... (for REST or Async see other plugins)\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Adapters:\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Spring MVC\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"Spring WebFlux\")), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Flavors\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"MongoDB\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Imperative\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"Reactive\")), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JPA\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Imperative\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"Reactive\")), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Unit/Integration Testing\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Edge Integration Testing: partial spring-boot context for outbound adapters (with testcontainers)\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Sociable Vertical Testing: manual dependency setup with in memory infrastructure \", React.createElement(_components.em, null, \"test-doubles\")), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Vertical Integration Testing: full spring-boot context for inbound adapters (with testcontainers)\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL OpenAPI Controllers\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Spring WebTestClient\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"AsyncAPI Spring Cloud Streams3\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Consumer and Producer. Imperative and Reactive.\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Business Exceptions Dead Letter Queues Routing\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Producer with Transactional Outbox pattern\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"For MongoDB\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"For JDBC\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Enterprise Envelop Pattern\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Automatically fill headers at runtime from payload paths, tracing-id supplier...\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL to Specs\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL to OpenAPI\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JDL to AsyncAPI\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"AsyncAPI schemas\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"AVRO schemas\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"API Testing\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"KarateDSL\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Karate E2E Tests (please use \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/karate-ide\"\n }, \"KarateIDE VSCode Extension\"), \" instead)\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Karate/ApiMock Stateful Mocks (please use \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/karate-ide\"\n }, \"KarateIDE VSCode Extension\"), \" and \", React.createElement(_components.a, {\n href: \"https://github.com/ZenWave360/zenwave-apimock\"\n }, \"ZenWave ApiMock\"), \" instead)\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to Spring WebTestClient\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI to REST-assured\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n disabled: true\n }), \" \", React.createElement(_components.del, null, \"OpenAPI to Pact (\", React.createElement(_components.em, null, \"postponed sine die\"), \")\")), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Reverser Engineering\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"OpenAPI 2 JDL\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Java 2 JDL\", \"\\n\", React.createElement(_components.ul, {\n className: \"contains-task-list\"\n }, \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"Spring Data MongoDB annotations\"), \"\\n\", React.createElement(_components.li, {\n className: \"task-list-item\"\n }, React.createElement(_components.input, {\n type: \"checkbox\",\n checked: true,\n disabled: true\n }), \" \", \"JPA annotations\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"generated-code-structure\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generated-code-structure\",\n \"aria-label\": \"generated code structure permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generated Code Structure\"), \"\\n\", React.createElement(_components.p, null, \"Generated code follows a \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"flexible onion/hexagonal architecture\"), \". Separating core, inbound, implementation and outbound form infrastructure and adapters.\"), \"\\n\", React.createElement(_components.p, null, \"Core domain entities and aggregates are annotated for persistence with JPA or SpringData/MongoDB annotations, \", React.createElement(\"strong\", {\n className: \"orange\"\n }, \"avoiding unnecessary translation layers\"), \" (mappers and dtos).\"), \"\\n\", React.createElement(Image, {\n alt: \"ZenWave SDK Modeling Languages\",\n src: sdkHexagonalDark\n }), \"\\n\", React.createElement(_components.p, null, \"Project structure:\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, null, \"📦 \\r\\n 📦 adapters\\r\\n └─ web\\r\\n | └─ RestControllers (spring mvc)\\r\\n └─ events\\r\\n └─ *EventListeners (spring-cloud-streams)\\r\\n 📦 core\\r\\n ├─ 📦 domain\\r\\n | └─ (entities and aggregates)\\r\\n ├─ 📦 inbound\\r\\n | ├─ dtos/\\r\\n | └─ ServiceInterface (inbound service interface)\\r\\n ├─ 📦 outbound\\r\\n | ├─ mongodb\\r\\n | | └─ *RepositoryInterface (spring-data interface)\\r\\n | └─ jpa\\r\\n | └─ *RepositoryInterface (spring-data interface)\\r\\n └─ 📦 implementation\\r\\n ├─ mappers/\\r\\n └─ ServiceImplementation (inbound service implementation)\\r\\n 📦 infrastructure\\r\\n ├─ mongodb\\r\\n | └─ CustomRepositoryImpl (spring-data custom implementation)\\r\\n └─ jpa\\r\\n └─ CustomRepositoryImpl (spring-data custom implementation)\\n\")), \"\\n\", React.createElement(\"a\", {\n href: sdkGeneratedCode\n }, React.createElement(Image, {\n alt: \"ZenWave SDK Generated Code Screenshot\",\n src: sdkGeneratedCode\n })));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ZenWaveSDK.mdx\";\nimport {graphql} from 'gatsby';\nexport const pageQuery = graphql`\n query DocPageQuery($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n tableOfContents\n }\n }\n`;\nfunction DocTemplate({children}) {\n return children;\n}\nDocTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(DocTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n","import * as React from 'react'\r\nimport { Button as AriakitButton } from 'ariakit/button'\r\nimport styled, { css } from '@xstyled/styled-components'\r\n\r\nconst variant =\r\n ({ background, backgroundHover, on }) =>\r\n () => {\r\n return css`\r\n background-color: ${background};\r\n color: ${on};\r\n\r\n &:hover:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n\r\n &:active:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n `\r\n }\r\n\r\nconst InnerButton = styled.buttonBox`\r\n appearance: none;\r\n border-radius: base;\r\n transition: base;\r\n font-weight: 500;\r\n border: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font-size: 16;\r\n padding: 2 3;\r\n text-decoration: none !important;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: default;\r\n }\r\n\r\n &[data-variant='primary'] {\r\n ${variant({\r\n background: 'primary-600',\r\n backgroundHover: 'primary-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='success'] {\r\n ${variant({\r\n background: 'green-600',\r\n backgroundHover: 'green-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='danger'] {\r\n ${variant({\r\n background: 'red-600',\r\n backgroundHover: 'red-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='neutral'] {\r\n ${variant({\r\n background: 'gray-300',\r\n backgroundHover: 'gray-400',\r\n on: 'black',\r\n })}\r\n }\r\n`\r\n\r\nexport const Button = React.forwardRef(\r\n ({ variant = 'primary', children, ...props }, ref) => {\r\n return (\r\n \r\n {(buttonProps) => (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n )\r\n },\r\n)\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { th, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst InnerFeature = styled.box`\r\n border-left: 1;\r\n border-left-style: dashed;\r\n border-left-color: layout-border;\r\n padding-left: 4 !important;\r\n padding-right: 5 !important;\r\n`\r\n\r\nexport const Feature = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureTitle = styled.h2`\r\n margin: 3 0;\r\n font-size: 16;\r\n font-weight: 500;\r\n border-left: 1;\r\n border-color: primary-400;\r\n margin-left: ${th.px(-9)};\r\n padding-left: ${th.px(9)};\r\n`\r\n\r\nexport const FeatureText = styled.p`\r\n color: on-background-light;\r\n font-size: 15;\r\n text-align: justify;\r\n margin: 4 0;\r\n`\r\n\r\nconst InnerFeatureImage = styled.img`\r\n margin-top: 3;\r\n`\r\n\r\nexport const FeatureImage = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureList = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nexport const HeroTitle = styled.h1Box`\r\n font-size: 38;\r\n font-weight: 600;\r\n line-height: 1.2;\r\n letter-spacing: -1.12px;\r\n margin: 0 0 2;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 4;\r\n font-size: 48;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 60;\r\n `,\r\n )}\r\n`\r\n\r\nexport const HeroTeaser = styled.pBox`\r\n font-size: 18;\r\n margin: 3 0;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\n\r\nconst InnerHero = styled(ScreenContainer)`\r\n background-repeat: no-repeat;\r\n background-position: top -5% center;\r\n background-size: 100% auto;\r\n padding-top: 65%;\r\n text-align: center;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 0;\r\n margin-top: 5;\r\n background-position: center right;\r\n background-size: 58% auto;\r\n min-height: 400;\r\n text-align: left;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n margin-top: 6;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Hero = React.forwardRef(\r\n ({ backgroundImageURL, ...props }, ref) => {\r\n return (\r\n \r\n )\r\n },\r\n)\r\n\r\nexport const HeroBody = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const HeroSection = styled.sectionBox`\r\n overflow: hidden;\r\n padding-top: 2;\r\n padding-bottom: 5;\r\n`\r\n\r\nexport const HeroActionList = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport const HeroAction = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { useColorMode, th, x } from '@xstyled/styled-components'\r\n\r\nconst ImageContainer = styled.div`\r\n text-align: ${props => props.align};\r\n`\r\nconst InnerImage = styled.img`\r\n display: inline-block;\r\n`\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const Image = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst Cite = styled(x.cite)`\r\n display: block;\r\n text-align: right;\r\n margin-top: 1rem;\r\n`\r\n\r\nexport const Quote = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const QuoteAuthor = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","import styled, {up, css, x, useColorMode} from '@xstyled/styled-components'\r\nimport React from \"react\";\r\n\r\nexport const WideFeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const WideFeature = styled.divBox`\r\n display: block;\r\n ${up(\r\n 'md',\r\n css`\r\n margin: 0 20px;\r\n border-top: 1px dashed;\r\n border-bottom: 1px dotted;\r\n border-color: var(--xstyled-colors-layout-border,#d4d4d8);\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n `,\r\n )})\r\n`\r\n\r\nexport const WideFeatureText = styled.divBox`\r\n padding: 1rem;\r\n grid-column-start: span 2;\r\n\r\n font-size: 18;\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n padding: 3rem;\r\n padding-top: 2rem;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\nconst WideFeatureImageContainer = styled.divBox`\r\n padding: 1rem;\r\n text-align: center;\r\n`\r\n\r\nconst InnerImage = styled.imgBox`\r\n display: inline-block;\r\n //max-width: 300px;\r\n`\r\n\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const WideFeatureImage = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React, { useRef, useEffect } from 'react';\r\nimport { marginLeft } from '@xstyled/styled-components'\r\n\r\nconst Gist = ({ gist, file }) => {\r\n const iframeRef = useRef(null);\r\n\r\n const fetchGistContent = async () => {\r\n const url = file\r\n ? `https://gist.githubusercontent.com/${gist}/raw/${file}`\r\n : `https://gist.githubusercontent.com/${gist}/raw`;\r\n try {\r\n const response = await fetch(url);\r\n if (response.ok) {\r\n const text = await response.text();\r\n const lineCount = text.split('\\n').length;\r\n const lineHeight = 22; // Approximate line height in pixels\r\n const height = lineCount * lineHeight + 40;\r\n if (iframeRef.current) {\r\n iframeRef.current.style.height = `${height}px`;\r\n }\r\n } else {\r\n console.error('Failed to fetch Gist content');\r\n }\r\n } catch (error) {\r\n console.error('Error fetching Gist content:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchGistContent();\r\n }, [gist, file]);\r\n\r\n const src = file\r\n ? `https://gist.github.com/${gist}.pibb?file=${file}`\r\n : `https://gist.github.com/${gist}.pibb`;\r\n\r\n const gistUrl = file\r\n ? `https://gist.github.com/${gist}#file-${file.replace(/\\./g, '-').toLowerCase()}`\r\n : `https://gist.github.com/${gist}`;\r\n\r\n return (\r\n
\r\n {file && (\r\n
\r\n 🗒️\r\n \r\n {file}\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport { Gist };\r\n","export default __webpack_public_path__ + \"static/SDK-ServiceImplementation-Hexagonal.dark-1e003d6d4387f39bced4fc4a9694d7c8.png\";","export default __webpack_public_path__ + \"static/SDK-ServiceImplementation-Hexagonal.light-2ee85e2f86731a12068268ad214ab826.png\";"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","img","ul","li","em","strong","h2","h3","pre","code","blockquote","ol","input","del","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","class","src","alt","Quote","QuoteAuthor","Image","light","modelingLanguagesLight","dark","modelingLanguagesDark","speedFeedbackLoopDark","speedFeedbackLoopLight","marginTop","sdkMindMapLight","sdkMindMapDark","markdown","type","checked","disabled","sdkHexagonalDark","sdkGeneratedCode","wrapper","MDXLayout","DocTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX","variant","background","backgroundHover","on","css","InnerButton","styled","Button","ref","_ref2","AriakitButton","buttonProps","InnerFeature","Feature","col","xs","md","px","pt","pb","FeatureTitle","th","FeatureText","InnerFeatureImage","FeatureImage","width","height","FeatureList","ScreenContainer","row","my","FeatureSection","x","py","borderTop","borderBottom","borderColor","HeroTitle","up","HeroTeaser","InnerHero","withConfig","Hero","backgroundImageURL","backgroundImage","HeroBody","w","HeroSection","HeroActionList","m","justifyContent","HeroAction","ImageContainer","align","InnerImage","colorMode","visible","useColorMode","Cite","WideFeatureSection","WideFeature","WideFeatureText","WideFeatureImageContainer","WideFeatureImage","Gist","gist","file","iframeRef","useRef","useEffect","async","url","response","fetch","ok","text","split","length","current","console","error","fetchGistContent","gistUrl","replace","toLowerCase","border","padding","borderRadius","marginLeft","fontStyle","role","target","rel","title","frameBorder","margin"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js b/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js deleted file mode 100644 index 26c5ea6..0000000 --- a/component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[772],{86587:function(e,t,n){n.r(t),n.d(t,{default:function(){return f}});var a=n(27378),r=n(20951),i=n(16376),s=n.p+"static/SDK-ModelingLanguages.dark-8c38c3425c66678f30e03ae344d7efa5.png",l=n.p+"static/SDK-ModelingLanguages.light-5ce43d2a0d73dfea6beed173035a17b1.png",c=n(91399),o=(n(11926),n.p+"static/SDK-MindMap.dark-6e3facb7161823c4f526c8e63f1423bd.png"),d=n.p+"static/SDK-MindMap.light-cb5646225ccdd6b4e02e804475f5d9dc.png",m=n.p+"static/ZenWave-SDK-Design-Code-Loop.light-8895761fbb21542d5b2c564f7614b590.png",u=n.p+"static/ZenWave-SDK-Design-Code-Loop.dark-475a45be0974497ccd4d749c50396bdd.png",p=n.p+"static/SDK-Generated-Code-b9a8a8596ae71be86d3a9d8e5764ac21.png";function g(e){const t=Object.assign({h1:"h1",a:"a",div:"div",p:"p",img:"img",ul:"ul",li:"li",em:"em",strong:"strong",h2:"h2",h3:"h3",pre:"pre",code:"code",blockquote:"blockquote",ol:"ol",input:"input",del:"del"},(0,r.ah)(),e.components);return a.createElement(a.Fragment,null,a.createElement(t.h1,{id:"zenwave-sdk",style:{position:"relative"}},a.createElement(t.a,{href:"#zenwave-sdk","aria-label":"zenwave sdk permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"ZenWave SDK"),"\n",a.createElement(t.p,null,"ZenWave SDK Helps you Create Software Easy to Understand"),"\n",a.createElement("div",{class:"badges"},a.createElement(t.p,null,a.createElement(t.a,{href:"https://search.maven.org/artifact/io.github.zenwave360.zenwave-sdk/zenwave-sdk"},a.createElement(t.img,{src:"https://img.shields.io/maven-central/v/io.github.zenwave360.zenwave-sdk/zenwave-sdk.svg?label=Maven%20Central&logo=apachemaven",alt:"Maven Central"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/releases"},a.createElement(t.img,{src:"https://img.shields.io/github/v/release/ZenWave360/zenwave-sdk?logo=GitHub",alt:"GitHub release (latest by date)"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml"},a.createElement(t.img,{src:"https://github.com/ZenWave360/zenwave-sdk/workflows/Build/badge.svg",alt:"build"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml"},a.createElement(t.img,{src:"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/jacoco.svg",alt:"coverage"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/actions/workflows/build.yml"},a.createElement(t.img,{src:"https://raw.githubusercontent.com/ZenWave360/zenwave-sdk/badges/branches.svg",alt:"branches coverage"})),"\r\n",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/blob/main/LICENSE"},a.createElement(t.img,{src:"https://img.shields.io/github/license/ZenWave360/zenwave-sdk",alt:"GitHub"})))),"\n",a.createElement(i.Bk,null,a.createElement(t.p,null,"The heart of software is its ability to solve domain-related problems for its users. The best software supports elegant solutions to real-world problems\r\n",a.createElement(i.Nm,null,"- Eric Evans in Domain Driven Design"))),"\n",a.createElement(i.Ee,{alt:"ZenWave SDK Modeling Languages",light:l,dark:s}),"\n",a.createElement(t.p,null,"ZenWave SDK is a set of tools to convert your ",a.createElement("strong",{className:"orange"},"Domain Models")," into working software and tests."),"\n",a.createElement(t.p,null,"It is designed to be modular, configurable and extensible. It uses the standard java classpath as loading mechanism, so you can extend its functionality adding your own custom plugins. Visit ",a.createElement(t.a,{href:"/zenwave-sdk"},"ZenWave SDK")," for all configuration options."),"\n",a.createElement(t.p,null,"Based on ",a.createElement("strong",{className:"orange"},"Domain Driven Design (DDD)")," and ",a.createElement("strong",{className:"orange"},"API-First")," principles for ",a.createElement("strong",{className:"orange"},"Event Driven Microservices"),"."),"\n",a.createElement(i.Ee,{alt:"Speed Feedback Loop",dark:u,light:m,style:{marginTop:"15px"}}),"\n",a.createElement(t.p,null,"ZenWave SDK can generate code from a mix of different models including:"),"\n",a.createElement(t.ul,null,"\n",a.createElement(t.li,null,a.createElement(t.a,{href:"/docs/event-driven-design/zenwave-domain-language"},"ZDL Domain Language")," as ",a.createElement("strong",{className:"orange"},"Ubiquitous Language"),". You can describe the core of your Bounded Context, as well as how it connects to external systems through different adapters and APIs."),"\n",a.createElement(t.li,null,a.createElement(t.a,{href:"https://www.asyncapi.com/docs/getting-started/coming-from-openapi"},"AsyncAPI"),": Industry de-facto standard to describe Event-Driven Architectures for Message-based APIs."),"\n",a.createElement(t.li,null,a.createElement(t.a,{href:"https://swagger.io/specification/"},"OpenAPI"),": Industry standard for Request-Response Architectures with REST APIs."),"\n"),"\n",a.createElement(t.p,null,"Using ZenWave Domain Language as ",a.createElement("strong",{className:"orange"},"Ubiquitous Language")," for modeling and describing Bounded Contexts: aggregates, entities with their relationships, services, value objects, commands and events."),"\n",a.createElement(t.p,null,"ZenWave Domain Language started as an ",a.createElement(t.em,null,"extended subset")," of ",a.createElement(t.a,{href:"https://www.jhipster.tech/jdl/intro"},"JHipster Domain Language (JDL)")," that let you describe your entities and relationships."),"\n",a.createElement(t.p,null,"Using ZDL Domain Language as ",a.createElement(t.strong,null,"Ubiquitous Language")," for ",a.createElement("strong",{className:"orange"},"Data on the Inside")," and ",a.createElement("strong",{className:"orange"},"API-First")," specs like ",a.createElement(t.strong,null,"AsyncAPI")," and ",a.createElement(t.strong,null,"OpenAPI")," to describe Inter Process Communications (IPC) for ",a.createElement("strong",{className:"orange"},"Data on the Outside"),"."),"\n",a.createElement(t.ul,null,"\n",a.createElement(t.li,null,a.createElement("strong",{className:"orange"},"ZenWave Domain Language (ZDL) as Ubiquitous Language:")," To describe your domain core domain model."),"\n",a.createElement(t.li,null,a.createElement("strong",{className:"orange"},"API-First specs like AsyncAPI and OpenAPI:")," to describe Inter Process Communications (IPC) between bounded contexts/microservices."),"\n",a.createElement(t.li,null,a.createElement("strong",{className:"orange"},"ZenWave SDK:")," to generate (",a.createElement(t.em,null,"a lot of"),") infrastructure, functional and testing code from your models and APIs."),"\n"),"\n",a.createElement(t.p,null,"ZenWave SDK is designed to be easily extensible and adaptable to your project or your organization needs and likes."),"\n",a.createElement(t.h2,{id:"zenwave-sdk-installation",style:{position:"relative"}},a.createElement(t.a,{href:"#zenwave-sdk-installation","aria-label":"zenwave sdk installation permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"ZenWave SDK Installation"),"\n",a.createElement(t.h3,{id:"command-line-interface-cli",style:{position:"relative"}},a.createElement(t.a,{href:"#command-line-interface-cli","aria-label":"command line interface cli permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"Command Line Interface (CLI)"),"\n",a.createElement(t.p,null,"You can install the latest release using ",a.createElement(t.a,{href:"https://www.jbang.dev"},"jbang")," running the following command:"),"\n",a.createElement(t.pre,null,a.createElement(t.code,{className:"language-shell"},"jbang alias add --force --fresh --name=zw release@zenwave360/zenwave-sdk\r\n\r\njbang zw --help list\r\n\n")),"\n",a.createElement(t.p,null,"Will output a list of all available plugins:"),"\n",a.createElement(t.pre,null,a.createElement(t.code,{className:"language-log"},'ZW> SDK (1.7.0)\r\n\r\nAvailable plugins:\r\n\r\nbackend-application-default io.zenwave360.sdk.plugins.BackendApplicationDefaultPlugin: Generates a full backend application using a flexible hexagonal architecture (1.7.0)\r\njdl-to-asyncapi io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin: Generates a full AsyncAPI definitions for CRUD operations from JDL models (1.7.0)\r\nzdl-to-json io.zenwave360.sdk.plugins.ZdlToJsonPlugin: Prints to StdOut ZDL Model as JSON (1.7.0)\r\nspring-webtestclient io.zenwave360.sdk.plugins.SpringWebTestClientPlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\r\njsonschema2pojo io.zenwave360.sdk.plugins.AsyncApiJsonSchema2PojoPlugin: Generate Plain Old Java Objects from OpenAPI/AsyncAPI schemas or full JSON-Schema files (1.7.0)\r\nopenapi-controllers io.zenwave360.sdk.plugins.OpenAPIControllersPlugin: Generates implementations based on ZDL models and OpenAPI definitions SpringMVC generated OpenAPI interfaces. (1.7.0)\r\nopenapi-to-jdl io.zenwave360.sdk.plugins.OpenAPIToJDLPlugin: Generates JDL model from OpenAPI schemas (1.7.0)\r\nopenapi-karate io.zenwave360.sdk.plugins.OpenAPIKaratePlugin: Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification. (1.7.0)\r\nspring-cloud-streams3 io.zenwave360.sdk.plugins.SpringCloudStreams3Plugin: Generates strongly typed SpringCloudStreams3 producer/consumer classes for AsyncAPI (1.7.0)\r\nzdl-to-openapi io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin: Generates a draft OpenAPI definitions from your ZDL entities and services. (1.7.0)\r\nzdl-to-markdown io.zenwave360.sdk.plugins.ZdlToMarkdownPlugin: Generates Markdown glossary from Zdl Models (1.7.0)\r\nzdl-to-asyncapi io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin: Generates a draft AsyncAPI file with events from your ZDL services. (1.7.0)\r\n\r\n\r\nUse: "jbang zw -p -h" to get help on a specific plugin\n')),"\n",a.createElement(t.p,null,"If you don't find the functionality you are looking for, you can always ",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/#forking-an-standard-or-custom-plugin"},"fork an existing, standard or custom plugin"),"."),"\n",a.createElement(t.p,null,"Please refer to ",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-sdk/"},a.createElement(t.strong,null,"ZenWave SDK"))," for more detailed installation options."),"\n",a.createElement(t.h3,{id:"maven-plugin",style:{position:"relative"}},a.createElement(t.a,{href:"#maven-plugin","aria-label":"maven plugin permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"Maven Plugin"),"\n",a.createElement(t.p,null,"You can run any available (standard or custom) plugin as part of your maven build using the maven plugin:"),"\n",a.createElement("details",null,a.createElement("summary",null,"Click to see the maven plugin configuration"),a.createElement(t.pre,null,a.createElement(t.code,{className:"language-xml"},"\r\n io.github.zenwave360.zenwave-sdk\r\n zenwave-sdk-maven-plugin\r\n ${zenwave.version}\r\n \r\n false\x3c!-- default is false --\x3e\r\n true\x3c!-- default is true --\x3e\r\n true\x3c!-- default is true --\x3e\r\n \r\n \r\n \x3c!-- Add executions for each generation here: --\x3e\r\n \r\n generate-asyncapi\r\n generate-sources\r\n \r\n generate\r\n \r\n \r\n spring-cloud-streams3\r\n classpath:model/asyncapi.yml\r\n \r\n \x3c!-- ... --\x3e\r\n value\r\n \r\n \r\n \r\n \r\n\r\n \x3c!-- add any sdk plugin (custom or standard) as dependency here --\x3e\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-spring-cloud-streams3\r\n ${zenwave.version}\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-jsonschema2pojo\r\n ${zenwave.version}\r\n \r\n \r\n\n")),a.createElement(t.p,null,"Notice how you can read spec files from the project classpath as well as the filesystem. If you want to read a spec file from inside a project dependency remember to set ",a.createElement(t.code,null,"true"),"."),a.createElement(t.p,null,"NOTE: Remember to add any plugin you want to use as dependency.")),"\n",a.createElement(t.p,null,"Jump to ",a.createElement(t.a,{href:"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3"},"ZenWave AsyncAPI Generator")," for multiple examples using the maven plugin."),"\n",a.createElement(t.h2,{id:"zenwave-sdk-workflow",style:{position:"relative"}},a.createElement(t.a,{href:"#zenwave-sdk-workflow","aria-label":"zenwave sdk workflow permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"ZenWave SDK Workflow"),"\n",a.createElement(t.p,null,"You can generate complete Event Driven Microservices using DDD and API-First principles:"),"\n",a.createElement(t.blockquote,null,"\n",a.createElement(t.p,null,"👉 Describe your Domain Model ⤳ Generate OpenAPI ⤳ Generate AsyncAPI → Generate API Implementations → Generate Backend → Generate Tests and Contracts 👍"),"\n"),"\n",a.createElement(t.ol,null,"\n",a.createElement(t.li,null,"Start by ",a.createElement("strong",{className:"orange"},"Modeling your Domain")," using the ZDL Domain Language including: entities, relationships, service commands and domain events."),"\n",a.createElement(t.li,null,"Generate a ",a.createElement("strong",{className:"orange"},"draft OpenAPI definition from the ZDL model"),". Edit collaboratively this OpenAPI document and then generate some more functional code and tests from that definition."),"\n",a.createElement(t.li,null,"Generate a ",a.createElement("strong",{className:"orange"},"draft AsyncAPI definition")," for consuming async request commands and publishing domain events. Now use zenwave maven plugin to generate strongly typed business interfaces implementing some Enterprise Integration Patterns like: transactional outbox, business dead letter queue..."),"\n",a.createElement(t.li,null,"Generate a ",a.createElement("strong",{className:"orange"},"complete Backend Application")," from your Domain Definition Model."),"\n",a.createElement(t.li,null,"Connect (by hand) your Backend Application to other systems using the generated OpenAPI and AsyncAPI definitions."),"\n",a.createElement(t.li,null,"Generate ",a.createElement("strong",{className:"orange"},"E2E, Integration tests and Consumer Contracts")," for the public APIs you just produced."),"\n"),"\n",a.createElement(i.Ee,{alt:"ZenWave SDK Features MindMap",light:d,dark:o}),"\n",a.createElement("details",{markdown:"1"},a.createElement("summary",null,"ZenWave SDK Code Generator Features (expand to see)"),a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL Backend Application (flexible hexagonal architecture)","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Domain Entities,"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Inbound","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Service Ports, DTOs, Mappers"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Implementation for CRUD operations"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Acceptance Tests: SpringData InMemory Repositories"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Outbound: SpringData Repositories, ElasticSearch... (for REST or Async see other plugins)"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Adapters:","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Spring MVC"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"Spring WebFlux")),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Flavors","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","MongoDB","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Imperative"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"Reactive")),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JPA","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Imperative"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"Reactive")),"\n"),"\n"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Unit/Integration Testing","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Edge Integration Testing: partial spring-boot context for outbound adapters (with testcontainers)"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Sociable Vertical Testing: manual dependency setup with in memory infrastructure ",a.createElement(t.em,null,"test-doubles")),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Vertical Integration Testing: full spring-boot context for inbound adapters (with testcontainers)"),"\n"),"\n"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL OpenAPI Controllers"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Spring WebTestClient"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","AsyncAPI Spring Cloud Streams3","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Consumer and Producer. Imperative and Reactive.","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Business Exceptions Dead Letter Queues Routing"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Producer with Transactional Outbox pattern","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","For MongoDB"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","For JDBC"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Enterprise Envelop Pattern"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Automatically fill headers at runtime from payload paths, tracing-id supplier..."),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL to Specs","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL to OpenAPI"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JDL to AsyncAPI","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","AsyncAPI schemas"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","AVRO schemas"),"\n"),"\n"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","API Testing","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","KarateDSL","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Karate E2E Tests (please use ",a.createElement(t.a,{href:"https://github.com/ZenWave360/karate-ide"},"KarateIDE VSCode Extension")," instead)"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Karate/ApiMock Stateful Mocks (please use ",a.createElement(t.a,{href:"https://github.com/ZenWave360/karate-ide"},"KarateIDE VSCode Extension")," and ",a.createElement(t.a,{href:"https://github.com/ZenWave360/zenwave-apimock"},"ZenWave ApiMock")," instead)"),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to Spring WebTestClient"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI to REST-assured"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",disabled:!0})," ",a.createElement(t.del,null,"OpenAPI to Pact (",a.createElement(t.em,null,"postponed sine die"),")")),"\n"),"\n"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Reverser Engineering","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","OpenAPI 2 JDL"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Java 2 JDL","\n",a.createElement(t.ul,{className:"contains-task-list"},"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","Spring Data MongoDB annotations"),"\n",a.createElement(t.li,{className:"task-list-item"},a.createElement(t.input,{type:"checkbox",checked:!0,disabled:!0})," ","JPA annotations"),"\n"),"\n"),"\n"),"\n"),"\n")),"\n",a.createElement(t.h2,{id:"generated-code-structure",style:{position:"relative"}},a.createElement(t.a,{href:"#generated-code-structure","aria-label":"generated code structure permalink",className:"anchor before"},a.createElement(t.div,{dangerouslySetInnerHTML:{__html:''}})),"Generated Code Structure"),"\n",a.createElement(t.p,null,"Generated code follows a ",a.createElement("strong",{className:"orange"},"flexible onion/hexagonal architecture"),". Separating core, inbound, implementation and outbound form infrastructure and adapters."),"\n",a.createElement(t.p,null,"Core domain entities and aggregates are annotated for persistence with JPA or SpringData/MongoDB annotations, ",a.createElement("strong",{className:"orange"},"avoiding unnecessary translation layers")," (mappers and dtos)."),"\n",a.createElement(i.Ee,{alt:"ZenWave SDK Modeling Languages",src:c.Z}),"\n",a.createElement(t.p,null,"Project structure:"),"\n",a.createElement(t.pre,null,a.createElement(t.code,null,"📦 \r\n 📦 adapters\r\n └─ web\r\n | └─ RestControllers (spring mvc)\r\n └─ events\r\n └─ *EventListeners (spring-cloud-streams)\r\n 📦 core\r\n ├─ 📦 domain\r\n | └─ (entities and aggregates)\r\n ├─ 📦 inbound\r\n | ├─ dtos/\r\n | └─ ServiceInterface (inbound service interface)\r\n ├─ 📦 outbound\r\n | ├─ mongodb\r\n | | └─ *RepositoryInterface (spring-data interface)\r\n | └─ jpa\r\n | └─ *RepositoryInterface (spring-data interface)\r\n └─ 📦 implementation\r\n ├─ mappers/\r\n └─ ServiceImplementation (inbound service implementation)\r\n 📦 infrastructure\r\n ├─ mongodb\r\n | └─ CustomRepositoryImpl (spring-data custom implementation)\r\n └─ jpa\r\n └─ CustomRepositoryImpl (spring-data custom implementation)\n")),"\n",a.createElement("a",{href:p},a.createElement(i.Ee,{alt:"ZenWave SDK Generated Code Screenshot",src:p})))}var h=function(e){void 0===e&&(e={});const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?a.createElement(t,e,a.createElement(g,e)):g(e)};function b(e){let{children:t}=e;return t}function f(e){return a.createElement(b,e,a.createElement(h,e))}},16376:function(e,t,n){n.d(t,{d2:function(){return a.d},zx:function(){return o},L0:function(){return p},$s:function(){return f},VS:function(){return E},gT:function(){return k},P7:function(){return h},Gz:function(){return g},S:function(){return G},VM:function(){return x},sd:function(){return P},kW:function(){return S},$D:function(){return I},DH:function(){return N},vC:function(){return y},LR:function(){return v},Ee:function(){return Z},Bk:function(){return O},Nm:function(){return W},X_:function(){return m.X},YZ:function(){return M},vk:function(){return B},BW:function(){return j},Mo:function(){return T}});var a=n(63585),r=n(27378),i=n(87573),s=n(30294);const l=e=>{let{background:t,backgroundHover:n,on:a}=e;return()=>(0,s.ivY)(["background-color:",";color:",";&:hover:not(:disabled){background-color:",";color:",";}&:active:not(:disabled){background-color:",";color:",";}"],t,a,n,a,n,a)},c=s.ZPm.buttonBox.withConfig({displayName:"Button__InnerButton",componentId:"sc-1qxez5q-0"})(["appearance:none;border-radius:base;transition:base;font-weight:500;border:0;display:inline-flex;align-items:center;cursor:pointer;font-size:16;padding:2 3;text-decoration:none !important;&:disabled{opacity:0.5;cursor:default;}&[data-variant='primary']{","}&[data-variant='success']{","}&[data-variant='danger']{","}&[data-variant='neutral']{","}"],l({background:"primary-600",backgroundHover:"primary-700",on:"white"}),l({background:"green-600",backgroundHover:"green-700",on:"white"}),l({background:"red-600",backgroundHover:"red-700",on:"white"}),l({background:"gray-300",backgroundHover:"gray-400",on:"black"})),o=r.forwardRef(((e,t)=>{let{variant:n="primary",children:a,...s}=e;return r.createElement(i.z,{ref:t,"data-variant":n},(e=>r.createElement(c,Object.assign({},e,s),a)))}));n(23824),n(31729);var d=n(63681),m=n(84234);const u=s.ZPm.box.withConfig({displayName:"Feature__InnerFeature",componentId:"sc-17n9iec-0"})(["border-left:1;border-left-style:dashed;border-left-color:layout-border;padding-left:4 !important;padding-right:5 !important;"]),p=r.forwardRef(((e,t)=>r.createElement(u,Object.assign({ref:t,col:{xs:1,md:1/3},px:2,pt:4,pb:{xs:2,md:5}},e)))),g=s.ZPm.h2.withConfig({displayName:"Feature__FeatureTitle",componentId:"sc-17n9iec-1"})(["margin:3 0;font-size:16;font-weight:500;border-left:1;border-color:primary-400;margin-left:",";padding-left:",";"],d.th.px(-9),d.th.px(9)),h=s.ZPm.p.withConfig({displayName:"Feature__FeatureText",componentId:"sc-17n9iec-2"})(["color:on-background-light;font-size:15;text-align:justify;margin:4 0;"]),b=s.ZPm.img.withConfig({displayName:"Feature__InnerFeatureImage",componentId:"sc-17n9iec-3"})(["margin-top:3;"]),f=r.forwardRef(((e,t)=>r.createElement(b,Object.assign({ref:t,width:48,height:48},e)))),E=r.forwardRef(((e,t)=>r.createElement(m.X,Object.assign({ref:t,row:!0,my:-4,px:3},e)))),k=r.forwardRef(((e,t)=>r.createElement(s.x.section,Object.assign({ref:t,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),v=s.ZPm.h1Box.withConfig({displayName:"Hero__HeroTitle",componentId:"sc-18tbum5-0"})(["font-size:38;font-weight:600;line-height:1.2;letter-spacing:-1.12px;margin:0 0 2;"," ",""],(0,d.up)("md",(0,s.ivY)(["padding-top:4;font-size:48;"])),(0,d.up)("xl",(0,s.ivY)(["font-size:60;"]))),y=s.ZPm.pBox.withConfig({displayName:"Hero__HeroTeaser",componentId:"sc-18tbum5-1"})(["font-size:18;margin:3 0;"," ",""],(0,d.up)("md",(0,s.ivY)(["font-size:20;"])),(0,d.up)("xl",(0,s.ivY)(["font-size:24;"]))),w=(0,s.ZPm)(m.X).withConfig({displayName:"Hero__InnerHero",componentId:"sc-18tbum5-2"})(["background-repeat:no-repeat;background-position:top -5% center;background-size:100% auto;padding-top:65%;text-align:center;"," ",""],(0,d.up)("md",(0,s.ivY)(["padding-top:0;margin-top:5;background-position:center right;background-size:58% auto;min-height:400;text-align:left;"])),(0,d.up)("xl",(0,s.ivY)(["margin-top:6;"]))),x=r.forwardRef(((e,t)=>{let{backgroundImageURL:n,...a}=e;return r.createElement(w,Object.assign({ref:t,backgroundImage:"url("+n+")"},a))})),I=r.forwardRef(((e,t)=>r.createElement(s.x.div,Object.assign({ref:t,w:{md:.5}},e)))),N=s.ZPm.sectionBox.withConfig({displayName:"Hero__HeroSection",componentId:"sc-18tbum5-3"})(["overflow:hidden;padding-top:2;padding-bottom:5;"]),S=r.forwardRef(((e,t)=>r.createElement(s.x.div,Object.assign({ref:t,row:!0,m:-2,justifyContent:{xs:"center",md:"initial"}},e)))),P=r.forwardRef(((e,t)=>r.createElement(s.x.div,Object.assign({ref:t,col:"auto",p:2},e))));var D=n(24956);const z=s.ZPm.div.withConfig({displayName:"Image__ImageContainer",componentId:"sc-1b0134e-0"})(["text-align:",";"],(e=>e.align)),C=s.ZPm.img.withConfig({displayName:"Image__InnerImage",componentId:"sc-1b0134e-1"})(["display:inline-block;"]),A=(e,t)=>"dark"===t?e.dark||e.src:e.light||e.src,Z=r.forwardRef(((e,t)=>r.createElement(z,{align:e.align||"center",className:e.visible},r.createElement(C,Object.assign({ref:t,src:A(e,(0,D.If)()[0])},e)))));n(15239),n(83160);const L=(0,s.ZPm)(s.x.cite).withConfig({displayName:"Quote__Cite",componentId:"sc-12i53kz-0"})(["display:block;text-align:right;margin-top:1rem;"]),O=r.forwardRef(((e,t)=>r.createElement(s.x.blockquote,Object.assign({ref:t,className:"quote"},e)))),W=r.forwardRef(((e,t)=>r.createElement(L,Object.assign({ref:t},e)))),j=r.forwardRef(((e,t)=>r.createElement(s.x.section,Object.assign({ref:t,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},e)))),M=s.ZPm.divBox.withConfig({displayName:"WideFeature",componentId:"sc-1ak5yjf-0"})(["display:block;",")"],(0,d.up)("md",(0,s.ivY)(["margin:0 20px;border-top:1px dashed;border-bottom:1px dotted;border-color:var(--xstyled-colors-layout-border,#d4d4d8);display:grid;grid-template-columns:1fr 1fr 1fr;"]))),T=s.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureText",componentId:"sc-1ak5yjf-1"})(["padding:1rem;grid-column-start:span 2;font-size:18;"," ",""],(0,d.up)("md",(0,s.ivY)(["font-size:20;padding:3rem;padding-top:2rem;"])),(0,d.up)("xl",(0,s.ivY)(["font-size:24;"]))),H=s.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureImageContainer",componentId:"sc-1ak5yjf-2"})(["padding:1rem;text-align:center;"]),_=s.ZPm.imgBox.withConfig({displayName:"WideFeature__InnerImage",componentId:"sc-1ak5yjf-3"})(["display:inline-block;"]),R=(e,t)=>"dark"===t?e.dark||e.src:e.light||e.src,B=r.forwardRef(((e,t)=>r.createElement(H,{className:e.className},r.createElement(_,Object.assign({ref:t,src:R(e,(0,D.If)()[0])},e))))),G=e=>{let{gist:t,file:n}=e;const a=(0,r.useRef)(null);(0,r.useEffect)((()=>{(async()=>{const e=n?"https://gist.githubusercontent.com/"+t+"/raw/"+n:"https://gist.githubusercontent.com/"+t+"/raw";try{const t=await fetch(e);if(t.ok){const e=22*(await t.text()).split("\n").length+40;a.current&&(a.current.style.height=e+"px")}else console.error("Failed to fetch Gist content")}catch(r){console.error("Error fetching Gist content:",r)}})()}),[t,n]);const i=n?"https://gist.github.com/"+t+".pibb?file="+n:"https://gist.github.com/"+t+".pibb",s=n?"https://gist.github.com/"+t+"#file-"+n.replace(/\./g,"-").toLowerCase():"https://gist.github.com/"+t;return r.createElement("div",{style:{border:"1px solid #ccc",padding:"10px 0 0 0",borderRadius:"5px"}},n&&r.createElement("header",{style:{marginLeft:"10px",fontStyle:"oblique"}},r.createElement("span",{role:"img","aria-label":"source code"},"🗒️"),r.createElement("a",{href:s,target:"_blank",rel:"noopener noreferrer"},n)),r.createElement("iframe",{title:n,ref:a,src:i,width:"100%",frameBorder:"0",style:{margin:"0",padding:"0"}}))}},91399:function(e,t,n){t.Z=n.p+"static/SDK-ServiceImplementation-Hexagonal.dark-1e003d6d4387f39bced4fc4a9694d7c8.png"},11926:function(e,t,n){n.p}}]); -//# sourceMappingURL=component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx-a7e9f8413675129bc17f.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js b/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js deleted file mode 100644 index 46af141..0000000 --- a/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[261],{43635:function(M,D,I){I.r(D),I.d(D,{default:function(){return t}});var N=I(27378),j=I(20951),g=I(80858),L=I(16376),A=I.p+"static/hero-background-b6fccd4ea5501ab264bb1bdb7fbbf8ba.png",u=I.p+"static/zenwave-sdk-dark-44c70567cf17d96a54e9284837feac82.png",y=I.p+"static/asyncapi-logo-fe1db05dd2b15b8170701f43d18710a1.png",z="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgMjYwIDI2MCINCiAgIHdpZHRoPSIyNjAiDQogICBoZWlnaHQ9IjI2MCINCiAgIGlkPSJzdmc1MjkzNiINCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICA8ZGVmcw0KICAgICBpZD0iZGVmczUyOTQwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDE0NC4wNjM1MiwyMzEuMzg5MTYgYyAxOS40NDg4NSwtNC40MzA0NyAzOC4wNzMzMiwtMTMuNjAzNjcgNTMuNjc0MjcsLTI2LjIyMDczIDE3LjA2OTI1LC0xMy43NTM0NCAzMC4yNzQ0NSwtMzEuNDIxMTUgMzguNDI0OTgsLTUwLjYyMDE2IDguMTg1MiwtMTkuMjE5MzQgMTEuMjMxMTgsLTM5Ljg0MTQ1IDguNzA2MzIsLTU5LjM1NjUyMiAtMi40NzIyOCwtMTkuNTkzNjIzIC0xMC43MjkxMSwtMzcuNjk5ODY2IC0yMy4zMzQ4OSwtNTIuNTg1ODY5IC0zLjAwMDc3LDIuMzI4NjgzIC01Ljk5MjU4LDQuNjUwNDI2IC04Ljk4NTY2LDYuOTc5NDg3IDExLjE5NzY0LDEzLjI2NTI1OSAxOC42ODkzNywyOS4yODEyNSAyMS4xMDgyNSw0Ni42ODc2MzMgMi42MDUyNSwxOC4xMzkwMjEgLTAuMTI2NzcsMzcuMzg5NDMxIC03Ljc0NDg5LDU1LjMwODkwMSAtOC4wNjg2NiwxOS4wNDA3MyAtMjEuNjA2NjUsMzYuNDE4NjIgLTM5LjE1NTYyLDQ5LjMyODcyIC0xMy4zOTkxNCw5Ljg5Mzg5IC0yOC45NDQwMSwxNy4wNTIzNyAtNDUuMDc4NzUsMjAuNjAxNyAtMjAuMTM0OTksNC40Njk3MSAtNDAuOTcwMzMsMy4zODM3NCAtNTkuMjI1NjA4LC0zLjAzMzcyIEMgNjUuMzE2OTk1LDIxMi40OTM5MiA1MC42MjA0MzYsMjAxLjgyMDExIDQwLjgzNjM4NywxODcuNjAwMTUgMzMuNDU1NzUyLDE3Ni45MzMwOSAyOC45Mjk3MTksMTY0LjQyNDQyIDI3LjgyODQ3OCwxNTEuMjU0MjQgMjYuMzAzMzQyLDEzMy43ODIxNiAzMC42OTI3NDUsMTE1LjMzODQ5IDQwLjI4MDM2Miw5OS4wOTAxNSA0Ny44MTYzMzksODYuMjgxMDc2IDU4LjU2NTg2NCw3NC45NDc0NTggNzEuNTI5MjI4LDY2LjU4ODg3NiA4My43NzMyNjIsNTguNjQ0MjY2IDk3LjgzMTc0Miw1My40OTk1NzUgMTEyLjA0OTkyLDUxLjgzMTYzOSBjIDI0LjkxNzMxLC0yLjk4OTA0IDQ5LjcxODEzLDQuNTU1MDc2IDY1LjQ0MjU2LDIxLjA1OTM5NCA4Ljk2ODI0LDkuMzgxNjggMTQuNzIxNjgsMjEuNDI4MTM2IDE2LjE0MjI1LDM0LjQ2Njc5NyAxLjY0NjY3LDE0LjU4NTE0IC0yLjAyLDMwLjE0MjYxIC0xMC4zODI1Myw0My42MjYgLTYuNDE1MjIsMTAuMzc4MzYgLTE1LjU4NjgzLDE5LjM5MjgyIC0yNi41NTQ0OSwyNS42ODIxIC0xOS45MzQ2MSwxMS42NjA4MiAtNDQuOTc3MDIsMTIuODc5NjcgLTYzLjYzOTE2OSwzLjEwNTg1IC05LjQwOTAyNiwtNC44NjUwMiAtMTYuOTIzMjA3LC0xMi40MzkxMiAtMjEuMTM2MDY5LC0yMS43NzMyNyAtNC4yNDk5MjEsLTkuMjU0NzkgLTQuOTg3NDc3LC0yMC4wODkyNiAtMi4xNjkwMTQsLTMwLjQ4NjM3IDIuOTI4NTA0LC0xMC45MDA4MiA5LjY5MTA2MiwtMjEuMjEwMDUgMTkuNDMyODY3LC0yOC40NTQwNDMgOS4wNTM2MywtNi43ODQyMDIgMjAuMzg3MjA1LC0xMC41MjM2MTkgMzEuMzM2ODA1LC0xMC4wMzEzMjggMTIuODY3OTYsMC41MDc2NzYgMjQuNjYzODYsNi42MTQ2ODIgMzAuMDkyNDMsMTcuMjM1MTMxIDUuMjE0MywxMC4wMDQ1MiAzLjU0MjE0LDIzLjIyNjkxIC00LjkwNjA1LDMyLjc1NzU0IC01LjE0ODk1LDUuODI5NDcgLTEyLjg3MzI3LDkuNzg3NTMgLTIwLjYyMDI2LDkuNzQ0MzIgLTYuMzQzMTgsMC4wMTI3IC0xMi42MTkwNiwtMi41OTExNCAtMTUuNTMxMjQsLTcuNzI2ODQgLTIuNTMwMDUsLTQuMTc5MTUgLTEuODM0NjMsLTEwLjM1ODM0IDIuMzEwNDgsLTE0LjE2NDQ3IDEuODc0MTUsLTEuNTQ0MDggMy4zNTg3NiwtMS41OTQ3OCA1LjQwNjg2LC0wLjgzNDgxIDAuNDUzMTEsLTEuNDA4OTUgMC44ODY2MiwtMS45Nzc1NSAxLjMxNjE1LC0xLjcwNTAxIDEuODQzNTcsMi42NzU5NiAzLjE5Nyw1LjY1OTI4IDQuOTM1MSw4LjQwMzcxIDIuMTI4NDcsLTEuNzk2OTQgNC4xNDM4MSwtMy4yMDg0MiA0LjgyNzMzLC01LjkxMjA4IDEuMjIxMjMsLTQuODMxNjMgLTIuMjUwMzIsLTguNjY3MDYgLTYuMzUzNDEsLTEwLjYwMDYxIC01Ljk3Mzg3LC0yLjg2MTc0IC0xNC4wNzAwNCwtMC4xNDc1NiAtMTguNzQ5MTIsNC44NTY4NiAtNy4xMjgxODYsNy41MzA1NyAtOC4xNzM0MzUsMTguMzc4NjQgLTMuMzM1NDA3LDI2LjEyMDU2IDYuMTYwODY3LDEwLjIyMTkzIDIwLjE4NjI3NywxNC4wMzUyIDMyLjkxNTU4NywxMC44NTMxNCA4Ljg4Mzk3LC0yLjIwOTU3IDE2Ljk4OTIzLC03LjU2NTQ2IDIyLjYwMTAzLC0xNC42MzM2NCA2LjI1ODYzLC03LjgzMjcxIDkuNDY4OTUsLTE3LjQyMDM0IDkuMjc5MDQsLTI2LjYyNTc2IC0wLjE3MTMsLTEwLjI2NzIgLTQuNzM5ODMsLTE5LjgwMzc0OCAtMTIuMjUzMDIsLTI2LjU2NTk1NSBDIDEzOC41NDg0Miw3Ny42NjA5NzEgMTE1Ljk1OTA1LDc1LjE5NTEyOSA5Ni43MTIwNCw4My4zMTExMiA4Ni4zNjc4MDUsODcuNjA5NTk1IDc3LjE5MTQ1MSw5NC42NTMzMDEgNzAuNDQyMjQ2LDEwMy4yOTUyNyBjIC05LjA1NzM5MywxMS41Mjk1MSAtMTMuNzcxODgxLDI1LjU1MDgxIC0xMy40NjkwMzYsMzkuMDQ5OCAwLjMzNzcxNiwyMC4yOTA1NiAxMi40NzY0MDgsMzguMTE5OTQgMzAuODUwMDgyLDQ3LjExOTA2IDE0LjExNjk2OCw3LjA1MDQ1IDMxLjM0NjYwOCw5LjAzMjQyIDQ4LjA0MDc3OCw1LjY4MDk3IDEzLjg0ODQxLC0yLjc0MTkzIDI3LjEyMzMxLC05LjE4ODA4IDM4LjA5ODIxLC0xOC4yNDQ1OSAxOS4xOTI4MSwtMTUuNzk0MjMgMzAuNDI2NjMsLTM4LjgwMTE3IDMxLjEzMzA2LC02MS4zNDkxOCAwLjUwNTgsLTE0LjQzMjQ5IC0zLjM4NDIsLTI4LjQxNDY5NCAtMTEuMDg2NzUsLTQwLjExNjQ3NSBDIDE4NS45MDE3LDYyLjk5NjgzNCAxNzMuNjk2ODgsNTMuMzYzNjE5IDE1OS4zMDc4OSw0Ny41MzE5OCAxNDMuMTE0NTksNDAuOTMwNTA2IDEyNC4zMjk5NSwzOS4xMzU5NTcgMTA1LjkzOTAxLDQyLjQwOTMyNCA5MC4xOTA0MTYsNDUuMTY2Mjc1IDc0Ljg2OTg4Myw1MS43MDEzMzkgNjEuNjk1NjQ4LDYxLjEwNDY4NiA0Ni41Mjc4MzcsNzEuODgzNzA1IDM0LjQ1OTE3NSw4Ni4zMDIyNzIgMjYuNjgxNjUzLDEwMi4yODc0OCBjIC04LjYyNjgzMSwxNy42NTQ2NyAtMTEuOTYzMjE2LDM3LjA1OTE3IC05LjQ0Nzk2OSw1NS4yNjc0MyAyLjIyMjQ5OCwxNi40NTkxOSA5LjI5NzAzMywzMS43Njc4NCAyMC4xNTI2OCw0NC4xMTU0OCAxMi4wNjE2NzUsMTMuNzgxMDggMjguNjI2NjY5LDIzLjY3MDc0IDQ3LjI5MTcyMSwyOC43OTUxNCAxOC43MDM5MjUsNS4xNzA2NSAzOS4zODM4MzUsNS41MjU1NSA1OS4zODU0MzUsMC45MjM2MyB6Ig0KICAgICBmaWxsPSIjMDAwMDAwIg0KICAgICBpZD0icGF0aDUyOTM0Ig0KICAgICBzdHlsZT0iZmlsbDojYmFiOWJiO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjc1NTkiIC8+DQo8L3N2Zz4NCg==",C=I.p+"static/laptop-gears-54f3eaa232e7503cd5a1cb0cea35d352.svg",T=I(29934),w=I(28151),i=I(53468),E=I.p+"static/plugin-run-screenshot-0aea571608647046fa2f9cc31ce61bf0.png";function e(M){const D=Object.assign({p:"p",ul:"ul",li:"li"},(0,j.ah)(),M.components);return N.createElement(L.X_,null,N.createElement(L.DH,null,N.createElement(L.VM,{backgroundImageURL:A},N.createElement(L.$D,null,N.createElement(L.LR,null,"Create Software",N.createElement("br")," Easy To Understand!"),"\r\n",N.createElement(L.vC,null,"DDD and API-First Modeling Tools for Modern Distributed Applications."),N.createElement(L.kW,null,N.createElement(L.sd,null,N.createElement(L.zx,{variant:"neutral",as:g.Link,to:"/docs/zenwave360",style:{marginRight:"6px"}},N.createElement(D.p,null,"Browse Docs")),N.createElement(L.zx,{as:g.Link,to:"/docs/getting-started/"},N.createElement(D.p,null,"Getting Started"))))))),N.createElement(L.gT,null,N.createElement(L.VS,null,N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTIwMHB4IiBoZWlnaHQ9IjEyMDBweCIgc3R5bGU9InNoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247IHRleHQtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgaW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTsgZmlsbC1ydWxlOmV2ZW5vZGQ7IGNsaXAtcnVsZTpldmVub2RkIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk2MiIgZmlsbD0iIzJiOGEzZSIgZD0iTSA0MjcuNSwxMzIuNSBDIDQ5MC41LDEzMi41IDU1My41LDEzMi41IDYxNi41LDEzMi41QyA2MTYuNSwxOTUuNSA2MTYuNSwyNTguNSA2MTYuNSwzMjEuNUMgNTUzLjUsMzIxLjUgNDkwLjUsMzIxLjUgNDI3LjUsMzIxLjVDIDQyNy41LDI1OC41IDQyNy41LDE5NS41IDQyNy41LDEzMi41IFogTSA0NjYuNSwxNzEuNSBDIDUwMy41LDE3MS41IDU0MC41LDE3MS41IDU3Ny41LDE3MS41QyA1NzcuNSwyMDguNSA1NzcuNSwyNDUuNSA1NzcuNSwyODIuNUMgNTQwLjUsMjgyLjUgNTAzLjUsMjgyLjUgNDY2LjUsMjgyLjVDIDQ2Ni41LDI0NS41IDQ2Ni41LDIwOC41IDQ2Ni41LDE3MS41IFoiLz48L2c+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk3NCIgZmlsbD0iIzJiOGEzZSIgZD0iTSA1MDUuNSwzNzQuNSBDIDUxOC4xNjcsMzc0LjUgNTMwLjgzMywzNzQuNSA1NDMuNSwzNzQuNUMgNTQzLjUsMzkzLjgzMyA1NDMuNSw0MTMuMTY3IDU0My41LDQzMi41QyA2OTMuNSw0MzIuNSA4NDMuNSw0MzIuNSA5OTMuNSw0MzIuNUMgOTkzLjUsNTYzLjE2NyA5OTMuNSw2OTMuODMzIDk5My41LDgyNC41QyA5ODAuODMzLDgyNC41IDk2OC4xNjcsODI0LjUgOTU1LjUsODI0LjVDIDk1NS41LDcwNi44MzMgOTU1LjUsNTg5LjE2NyA5NTUuNSw0NzEuNUMgODE4LjE2Nyw0NzEuNSA2ODAuODMzLDQ3MS41IDU0My41LDQ3MS41QyA1NDMuNSw0ODkuMTY3IDU0My41LDUwNi44MzMgNTQzLjUsNTI0LjVDIDUzMC44MzMsNTI0LjUgNTE4LjE2Nyw1MjQuNSA1MDUuNSw1MjQuNUMgNTA1LjUsNTA2LjgzMyA1MDUuNSw0ODkuMTY3IDUwNS41LDQ3MS41QyA0MTguMTY3LDQ3MS41IDMzMC44MzMsNDcxLjUgMjQzLjUsNDcxLjVDIDI0My41LDQ4OS4xNjcgMjQzLjUsNTA2LjgzMyAyNDMuNSw1MjQuNUMgMjMwLjgzMyw1MjQuNSAyMTguMTY3LDUyNC41IDIwNS41LDUyNC41QyAyMDUuNSw0OTMuODMzIDIwNS41LDQ2My4xNjcgMjA1LjUsNDMyLjVDIDMwNS41LDQzMi41IDQwNS41LDQzMi41IDUwNS41LDQzMi41QyA1MDUuNSw0MTMuMTY3IDUwNS41LDM5My44MzMgNTA1LjUsMzc0LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDEzMC41LDU4MC41IEMgMTkzLjE2Nyw1ODAuNSAyNTUuODMzLDU4MC41IDMxOC41LDU4MC41QyAzMTguNSw2NDMuMTY3IDMxOC41LDcwNS44MzMgMzE4LjUsNzY4LjVDIDI1NS44MzMsNzY4LjUgMTkzLjE2Nyw3NjguNSAxMzAuNSw3NjguNUMgMTMwLjUsNzA1LjgzMyAxMzAuNSw2NDMuMTY3IDEzMC41LDU4MC41IFogTSAxNjguNSw2MTguNSBDIDIwNS44MzMsNjE4LjUgMjQzLjE2Nyw2MTguNSAyODAuNSw2MTguNUMgMjgwLjUsNjU1LjgzMyAyODAuNSw2OTMuMTY3IDI4MC41LDczMC41QyAyNDMuMTY3LDczMC41IDIwNS44MzMsNzMwLjUgMTY4LjUsNzMwLjVDIDE2OC41LDY5My4xNjcgMTY4LjUsNjU1LjgzMyAxNjguNSw2MTguNSBaIi8+PC9nPg0KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MC45NzQiIGZpbGw9IiMyYjhhM2UiIGQ9Ik0gNDI3LjUsNTgwLjUgQyA0OTAuNSw1ODAuNSA1NTMuNSw1ODAuNSA2MTYuNSw1ODAuNUMgNjE2LjUsNjQzLjE2NyA2MTYuNSw3MDUuODMzIDYxNi41LDc2OC41QyA1NTMuNSw3NjguNSA0OTAuNSw3NjguNSA0MjcuNSw3NjguNUMgNDI3LjUsNzA1LjgzMyA0MjcuNSw2NDMuMTY3IDQyNy41LDU4MC41IFogTSA0NjYuNSw2MTguNSBDIDUwMy41LDYxOC41IDU0MC41LDYxOC41IDU3Ny41LDYxOC41QyA1NzcuNSw2NTUuODMzIDU3Ny41LDY5My4xNjcgNTc3LjUsNzMwLjVDIDU0MC41LDczMC41IDUwMy41LDczMC41IDQ2Ni41LDczMC41QyA0NjYuNSw2OTMuMTY3IDQ2Ni41LDY1NS44MzMgNDY2LjUsNjE4LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDg4MC41LDg4MC41IEMgOTQzLjE2Nyw4ODAuNSAxMDA1LjgzLDg4MC41IDEwNjguNSw4ODAuNUMgMTA2OC41LDk0My4xNjcgMTA2OC41LDEwMDUuODMgMTA2OC41LDEwNjguNUMgMTAwNS44MywxMDY4LjUgOTQzLjE2NywxMDY4LjUgODgwLjUsMTA2OC41QyA4ODAuNSwxMDA1LjgzIDg4MC41LDk0My4xNjcgODgwLjUsODgwLjUgWiBNIDkxOC41LDkxOC41IEMgOTU1LjgzMyw5MTguNSA5OTMuMTY3LDkxOC41IDEwMzAuNSw5MTguNUMgMTAzMC41LDk1NS44MzMgMTAzMC41LDk5My4xNjcgMTAzMC41LDEwMzAuNUMgOTkzLjE2NywxMDMwLjUgOTU1LjgzMywxMDMwLjUgOTE4LjUsMTAzMC41QyA5MTguNSw5OTMuMTY3IDkxOC41LDk1NS44MzMgOTE4LjUsOTE4LjUgWiIvPjwvZz4NCjwvc3ZnPg0K"}),N.createElement(L.Gz,null,"Domain Model Language"),N.createElement(L.P7,null,N.createElement(D.p,null,"Concise and complete DDD modeling language for Event-Driven Architectures."))),N.createElement(L.L0,null,N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:u}),N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MTAgNDU3LjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMCA0NTcuODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzZEQjMzRjt9DQo8L3N0eWxlPg0KPHRpdGxlPmljb24tc3ByaW5nLWJvb3Q8L3RpdGxlPg0KPGcgaWQ9IkxheWVyXzJfMV8iPg0KCTxnIGlkPSJMYXllcl8xLTIiPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTAzLjUsMjAxLjRMNDAzLDI3LjVDMzk0LjMsMTIuNCwzNzIuOSwwLDM1NS40LDBIMTU0LjZjLTE3LjQsMC0zOC45LDEyLjQtNDcuNiwyNy41TDYuNiwyMDEuNA0KCQkJYy04LjcsMTUuMS04LjcsMzkuOCwwLDU0LjlsMTAwLjQsMTc0YzguNywxNS4xLDMwLjEsMjcuNSw0Ny42LDI3LjVoMjAwLjljMTcuNCwwLDM4LjgtMTIuNCw0Ny42LTI3LjVsMTAwLjQtMTc0DQoJCQlDNTEyLjIsMjQxLjIsNTEyLjIsMjE2LjUsNTAzLjUsMjAxLjR6IE0yMzMuMyw5Ni4yYzAtMTEuNCw5LjMtMjAuNywyMC43LTIwLjdjMTEuNCwwLDIwLjcsOS4zLDIwLjcsMjAuN3YxMjMuNw0KCQkJYzAsMTEuNC05LjMsMjAuNy0yMC43LDIwLjdjLTExLjQsMC0yMC43LTkuMy0yMC43LTIwLjdsMCwwVjk2LjJ6IE0yNTQsMzYwLjNjLTc3LjQsMC0xNDAuNC02My0xNDAuNC0xNDAuNA0KCQkJYzAuMS00NC40LDIxLjEtODYuMSw1Ni43LTExMi43YzguMi02LjEsMTkuNy00LjQsMjUuOCwzLjhzNC40LDE5LjctMy44LDI1LjhsMCwwYy00NS45LDM0LjEtNTUuNSw5OS0yMS40LDE0NC45DQoJCQlzOTksNTUuNSwxNDQuOSwyMS40YzI2LjMtMTkuNSw0MS44LTUwLjQsNDEuOC04My4yYy0wLjEtMzIuOS0xNS43LTYzLjgtNDIuMi04My40Yy04LjItNi05LjktMTcuNi0zLjktMjUuOHMxNy42LTkuOSwyNS44LTMuOQ0KCQkJYzM1LjksMjYuNSw1Nyw2OC41LDU3LjEsMTEzLjFDMzk0LjQsMjk3LjQsMzMxLjQsMzYwLjMsMjU0LDM2MC4zeiIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg0K"}),N.createElement(L.Gz,null,"ZenWave SDK"),N.createElement(L.P7,null,N.createElement(D.p,null,"ZenWave SDK helps you create SpringBoot/SpringCloud applications in no time."))),N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDI0OSAyMTkiIHdpZHRoPSIyNDkuMHB0IiBoZWlnaHQ9IjIxOS4wcHQiPg0KDQo8cGF0aCBkPSJNIDExNS41MSAxMS44MiBDIDEzMi4zMyA4Ljg4IDE1MC4zOCAxNS41NyAxNjEuNDEgMjguNTYgQyAxNjcuNzMgMzUuNzMgMTcxLjUwIDQ0LjYyIDE3My4xMCA1My45OCBDIDE3NC44OSA2NS42OCAxNzEuOTcgNzcuNzkgMTY1Ljc1IDg3Ljc4IEMgMTU5LjE2IDk4LjA2IDE0OC44MyAxMDUuODMgMTM3LjAxIDEwOS4wNCBDIDExOC4yMiAxMTQuNzcgOTYuODkgMTA3LjQ1IDg0Ljc5IDkyLjE4IEMgNzYuMjggODEuNjIgNzIuMjQgNjcuNDEgNzQuMjUgNTMuOTcgQyA3NS43OSA0NC43MSA3OS41OSAzNS45MSA4NS43NiAyOC43OCBDIDkzLjMzIDE5Ljc3IDEwMy45OCAxMy45NSAxMTUuNTEgMTEuODIgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTAyLjY3IDI4LjU3IEMgMTE0LjU2IDI4Ljg5IDEyOC45MiAyNy4xNiAxMzkuOTIgMzIuMDUgQyAxNDcuMTkgMzUuMDcgMTUyLjAxIDQxLjU1IDE1My42MiA0OS4xNiBDIDE1NS40MCA1Ny43NCAxNTUuMjUgNjcuNTUgMTUxLjY1IDc1LjY0IEMgMTQ4LjYyIDgyLjQwIDE0Mi41MCA4Ni42NyAxMzUuNDkgODguNTkgQyAxMjUuMjQgOTEuNDcgMTEzLjMwIDkwLjIzIDEwMi42NyA5MC41MCBDIDEwMi42NiA2OS44NSAxMDIuNjYgNDkuMjEgMTAyLjY3IDI4LjU3IFoiIGZpbGw9IiMwMDAwMDAiIC8+DQo8cGF0aCBkPSJNIDExMS4wNCAzNS40OCBDIDExOC44MyAzNS42MSAxMjcuNzIgMzQuNjMgMTM0Ljk1IDM3Ljk0IEMgMTM5Ljg0IDQwLjA3IDE0My4yNCA0NC4zOSAxNDQuNjQgNDkuNDggQyAxNDYuMjIgNTUuNDIgMTQ2LjI1IDYxLjk3IDE0NS4wMyA2Ny45OCBDIDE0My45MCA3My40MSAxNDAuODEgNzguMjQgMTM1Ljc1IDgwLjc1IEMgMTI4LjMwIDg0LjUyIDExOS4xNiA4My40NyAxMTEuMDUgODMuNjIgQyAxMTEuMDMgNjcuNTggMTExLjA1IDUxLjUzIDExMS4wNCAzNS40OCBaIiBmaWxsPSIjMmFkNGZmIiAvPg0KPHBhdGggZD0iTSA1Ni41MiAxMDcuNzAgQyA3NC4xMiAxMDMuNTcgOTMuMzUgMTEwLjI3IDEwNS4wMCAxMjMuOTggQyAxMTEuMzUgMTMxLjE5IDExNS4wOCAxNDAuMTAgMTE2LjY2IDE0OS41MiBDIDExOC4zOCAxNjEuMjUgMTE1LjQ2IDE3My4yNiAxMDkuMjAgMTgzLjI1IEMgMTAyLjY5IDE5My4zMiA5Mi42NCAyMDAuOTkgODEuMDUgMjA0LjIzIEMgNzEuMTkgMjA3LjM1IDYwLjQ5IDIwNi45MyA1MC43OSAyMDMuNDIgQyAzMS44OSAxOTcuMDMgMTguNDEgMTc4Ljg5IDE3LjM1IDE1OS4wMyBDIDE2LjYyIDE0Ni4wNCAyMS40NSAxMzIuNzcgMzAuMTUgMTIzLjEzIEMgMzcuMTAgMTE1LjM5IDQ2LjM5IDExMC4wMyA1Ni41MiAxMDcuNzAgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTcxLjUyIDExMC43NSBDIDE4OS4xNiAxMDYuNTIgMjA4Ljk3IDExMy42MCAyMjAuNDAgMTI3LjU3IEMgMjI2LjUzIDEzNC43NiAyMzAuMTMgMTQzLjU1IDIzMS42MyAxNTIuODIgQyAyMzMuMjUgMTY0LjE0IDIzMC40OCAxNzUuODYgMjI0LjU3IDE4NS41OCBDIDIxOC4wNCAxOTYuMTYgMjA3LjUzIDIwNC4xNyAxOTUuNTIgMjA3LjQzIEMgMTc2Ljc1IDIxMy4xNyAxNTUuNDEgMjA1LjkwIDE0My4zMiAxOTAuNjMgQyAxMzQuNjkgMTc5Ljk3IDEzMC42MSAxNjUuNTYgMTMyLjc4IDE1MS45NyBDIDEzNC4zMCAxNDMuMzQgMTM3LjczIDEzNS4xMyAxNDMuMjggMTI4LjMyIEMgMTUwLjM1IDExOS4zNyAxNjAuNDUgMTEzLjI5IDE3MS41MiAxMTAuNzUgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTU5Ljg0IDEyNy4zMSBDIDE2Ny44NyAxMjcuNDMgMTc1Ljk4IDEyNy4wMCAxODMuOTkgMTI3LjY3IEMgMTkyLjEwIDEyOC41MSAyMDAuMjcgMTMwLjgyIDIwNS41OCAxMzcuNDMgQyAyMTEuMzQgMTQ0LjYzIDIxMi4wMCAxNTUuMjAgMjExLjEwIDE2NC4wMSBDIDIxMC4yMCAxNzIuNTIgMjA2LjMzIDE4MC40NCAxOTguNDUgMTg0LjQ1IEMgMTg3LjE3IDE5MC4zNSAxNzIuMjQgMTg4LjQwIDE1OS44MyAxODguNzUgQyAxNTkuODIgMTY4LjI3IDE1OS44MSAxNDcuNzkgMTU5Ljg0IDEyNy4zMSBaIiBmaWxsPSIjMDAyMjJiIiAvPg0KPHBhdGggZD0iTSA0NS42NCAxMjcuODUgQyA1Ni40NyAxMjguMTQgNjkuMzYgMTI2LjY0IDc5LjUwIDEzMC42MyBDIDg1Ljc5IDEzMi45NiA5MC42NyAxMzcuNzcgOTIuNzkgMTQ0LjE3IEMgOTUuMjggMTUxLjc4IDk1LjMxIDE2MC41MSA5My4zMCAxNjguMjQgQyA5MS40NiAxNzUuMDcgODYuNzkgMTgwLjU5IDgwLjE2IDE4My4xOSBDIDY5Ljg4IDE4Ny41MiA1Ni43MCAxODUuOTQgNDUuNjQgMTg2LjI1IEMgNDUuNjMgMTY2Ljc4IDQ1LjYzIDE0Ny4zMSA0NS42NCAxMjcuODUgWiIgZmlsbD0iIzAwMDAwMCIgLz4NCjxwYXRoIGQ9Ik0gNzYuMjMgMTM2Ljc2IEMgODAuODUgMTM4LjgyIDgzLjk3IDE0Mi45NSA4NS4yNiAxNDcuNzcgQyA4Ni42OSAxNTMuMjggODYuNzAgMTU5LjI2IDg1LjYyIDE2NC44NCBDIDg0LjU1IDE2OS45NyA4MS43NSAxNzQuNTcgNzYuOTcgMTc2Ljk4IEMgNjkuOTcgMTgwLjYxIDYxLjIyIDE3OS41OCA1My41NyAxNzkuNzcgQyA1My40OSAxNjQuNjQgNTMuNTggMTQ5LjUwIDUzLjUzIDEzNC4zNyBDIDYwLjg4IDEzNC40NCA2OS40MyAxMzMuNTkgNzYuMjMgMTM2Ljc2IFoiIGZpbGw9IiMyYWQ0ZmYiIC8+DQo8cGF0aCBkPSJNIDE2OC4yNCAxMzQuMjYgQyAxNzUuMzEgMTM0LjExIDE4My4yNCAxMzMuNTkgMTkwLjAyIDEzNS45MCBDIDE5NS4wMiAxMzcuNTcgMTk4Ljk2IDE0MS4yMCAyMDAuODAgMTQ2LjE3IEMgMjAzLjA2IDE1Mi40MCAyMDMuMTQgMTU5LjUyIDIwMS45MiAxNjUuOTggQyAyMDAuODYgMTcxLjQzIDE5Ny45NiAxNzYuMzMgMTkyLjkxIDE3OC45MiBDIDE4NS4zMSAxODIuOTAgMTc2LjQxIDE4MS43MyAxNjguMTMgMTgxLjkwIEMgMTY4LjIyIDE2Ni4wNCAxNjcuOTggMTUwLjExIDE2OC4yNCAxMzQuMjYgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjwvc3ZnPg=="}),N.createElement(L.Gz,null,"Domain Driven Design"),N.createElement(L.P7,null,N.createElement(D.p,null,"Business, Developer and Computer friendly Ubiquitous Language for your Domain Models and Bounded Contexts."))),N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgNTEyIDUxMiINCiAgIHdpZHRoPSI1MTIuMHB0Ig0KICAgaGVpZ2h0PSI1MTIuMHB0Ig0KICAgaWQ9InN2Zzk0ODU5Ig0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogIDxkZWZzDQogICAgIGlkPSJkZWZzOTQ4NjMiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTQzLjk5IDI2Ljg2IEMgMTU5LjY5IDI1Ljc5IDE3NS42MiAzMC40MSAxODguMzIgMzkuNzAgQyAxOTkuNDcgNDcuNzUgMjA4LjA0IDU5LjI2IDIxMi42MSA3Mi4yNCBDIDIxNy4wMyA4NC44MiAyMTcuNzYgOTguNTggMjE0LjQzIDExMS41MSBDIDIxMC42OCAxMjYuNzggMjAxLjQ0IDE0MC40NiAxODguODIgMTQ5LjgyIEMgMTk5LjcwIDE2OC41NyAyMTAuNjQgMTg3LjI5IDIyMS41MyAyMDYuMDQgQyAyMzkuODcgMjAwLjM5IDI2MC4xMiAyMDUuNDYgMjczLjY5IDIxOC45NyBDIDI5Ny44OSAxOTQuNzMgMzIyLjE2IDE3MC41NiAzNDYuMzIgMTQ2LjI5IEMgMzQzLjU1IDE0MC44OCAzNDEuNjcgMTM1LjE0IDM0MS40MiAxMjkuMDIgQyAzNDAuNDYgMTEzLjY5IDM0OS4xMyA5OC43MiAzNjIuODMgOTEuODMgQyAzNzYuMDIgODQuOTMgMzkyLjc1IDg2LjM5IDQwNC41NiA5NS40NCBDIDQxNi4wOCAxMDQuMDUgNDIyLjA3IDExOC44MSA0MTkuNzYgMTMzLjAzIEMgNDE3LjUzIDE0OC4yMyA0MDUuODggMTYxLjE5IDM5MS4wMSAxNjUuMDMgQyAzODAuOTYgMTY3Ljc4IDM3MC41MyAxNjYuMTcgMzYxLjM1IDE2MS40MiBDIDMzNi4xOSAxODYuNzUgMzEwLjg0IDIxMS45MiAyODUuNjQgMjM3LjIyIEMgMjg3LjU0IDI0Mi42OCAyODguNzIgMjQ4LjA3IDI4OS4wMiAyNTMuODYgQyAzMTYuMzMgMjUzLjg5IDM0My42NSAyNTMuODUgMzcwLjk3IDI1My44NyBDIDM3My44NSAyMzUuODcgMzg0LjAxIDIxOS4zOSAzOTguOTMgMjA4Ljg5IEMgNDExLjY2IDE5OS44NCA0MjcuNDQgMTk1LjM3IDQ0My4wMyAxOTYuNDggQyA0NTguNDIgMTk3LjQzIDQ3My4zMiAyMDMuODggNDg0LjYyIDIxNC4zNSBDIDQ5NS44NyAyMjQuNzIgNTAzLjQ5IDIzOC44MyA1MDUuNzggMjUzLjk4IEMgNTA3LjY0IDI2NC45NyA1MDYuNDYgMjc2LjMxIDUwMi44OCAyODYuODIgQyA0OTcuNzQgMzAxLjczIDQ4Ny4zMyAzMTQuNjkgNDczLjgyIDMyMi44MyBDIDQ2My4zOCAzMjkuMjUgNDUxLjIzIDMzMi42MyA0MzguOTkgMzMyLjc5IEMgNDIyLjM0IDMzMi44OCA0MDUuNzcgMzI2Ljc5IDM5My4zMSAzMTUuNzAgQyAzODEuNDIgMzA1LjMyIDM3My40NyAyOTAuNzggMzcwLjk5IDI3NS4yMCBDIDM0Mi40OCAyNzUuMjEgMzEzLjk4IDI3NS4xOSAyODUuNDcgMjc1LjIxIEMgMjgwLjg1IDI4Ni4yMSAyNzMuNTAgMjk0LjkwIDI2My4yOCAzMDEuMDkgQyAyNzIuODUgMzM2LjE4IDI4Mi40NSAzNzEuMjYgMjkyLjA2IDQwNi4zNCBDIDI5Ny40NyA0MDYuNDIgMzAyLjc3IDQwNy4xMyAzMDcuODIgNDA5LjE3IEMgMzIxLjA4IDQxNC4zMSAzMzAuODEgNDI2Ljg0IDMzMi40NiA0NDAuOTggQyAzMzQuNDAgNDU1LjczIDMyNy40MiA0NzAuODIgMzE0LjkyIDQ3OC44OCBDIDMwMi4xNCA0ODcuMzYgMjg0LjgwIDQ4Ny40NCAyNzEuOTcgNDc5LjAxIEMgMjU4Ljc1IDQ3MC42MyAyNTEuNjUgNDU0LjQ1IDI1NC40OSA0MzkuMDMgQyAyNTYuMzEgNDI4LjIzIDI2Mi43MyA0MTguOTUgMjcxLjY4IDQxMi43NyBDIDI2Mi4xMyAzNzcuODIgMjUyLjU4IDM0Mi44NyAyNDMuMDEgMzA3LjkzIEMgMjI5LjU2IDMwOS4zMCAyMTcuMTggMzA2LjA2IDIwNi4xMiAyOTguMzUgQyAxODMuNDAgMzExLjE3IDE2MC43MSAzMjQuMDIgMTM4LjAyIDMzNi44OCBDIDE0My45NCAzNTMuOTEgMTQyLjkzIDM3Mi44OCAxMzUuMDQgMzg5LjEwIEMgMTI3LjUyIDQwNC44MCAxMTMuODIgNDE3LjMyIDk3LjUwIDQyMy4zOSBDIDg1LjQyIDQyNy44NiA3Mi4xNSA0MjguOTYgNTkuNTQgNDI2LjIyIEMgNDUuNzAgNDIzLjMyIDMyLjkxIDQxNi4wNCAyMy4zNyA0MDUuNjEgQyAxMi42NyAzOTQuMDYgNi4yMyAzNzguNzMgNS40OCAzNjMuMDAgQyA0LjYzIDM0Ny41NSA5LjIyIDMzMS45MCAxOC4zOCAzMTkuNDEgQyAyNi4yOCAzMDguNDYgMzcuNTIgMjk5Ljk4IDUwLjIzIDI5NS4zOCBDIDYxLjI5IDI5MS4zMiA3My4zOCAyOTAuMjQgODQuOTkgMjkyLjIxIEMgMTAxLjk3IDI5NC45NCAxMTcuNDMgMzA0LjQ2IDEyNy44NyAzMTguMDggQyAxNDkuMDcgMzA2LjA5IDE3MC4yNiAyOTQuMTEgMTkxLjQ1IDI4Mi4xMCBDIDE4Ny41OSAyNzQuOTkgMTg1LjQxIDI2OC4wNCAxODQuNjYgMjU5Ljk2IEMgMTUyLjc2IDI1MS4xMSAxMjAuNzIgMjQyLjU3IDg4Ljc4IDIzMy44MiBDIDg2LjE4IDIzOC4xMSA4My4wNiAyNDIuMDEgNzkuMTEgMjQ1LjE0IEMgNjguMzEgMjUzLjk3IDUyLjkyIDI1Ni4yOSAzOS45NyAyNTEuMDkgQyAyNS4yNiAyNDUuNDMgMTUuMDYgMjMwLjc4IDE0Ljk3IDIxNC45OSBDIDE0LjU3IDE5OS4xNCAyNC40NiAxODQuMDYgMzkuMTIgMTc4LjA0IEMgNTIuOTkgMTcyLjA5IDY5Ljc1IDE3NC45MyA4MC44NiAxODUuMTQgQyA4OC44MCAxOTIuMjYgOTMuMzkgMjAyLjQ2IDkzLjg4IDIxMy4wOCBDIDEyNS4wOCAyMjEuNTkgMTU2LjI5IDIzMC4xMCAxODcuNTIgMjM4LjU0IEMgMTkwLjcwIDIyOS44NCAxOTUuODAgMjIyLjM3IDIwMi44MiAyMTYuMzIgQyAxOTEuODUgMTk3LjQ2IDE4MC44OCAxNzguNTkgMTY5Ljg4IDE1OS43NCBDIDE1My4yMSAxNjUuMTAgMTM1LjA1IDE2NC4yMCAxMTkuMjEgMTU2LjY0IEMgMTA1LjA0IDE1MC4wMSA5My4zNCAxMzguMzcgODYuNjQgMTI0LjIyIEMgODAuNTUgMTExLjQ5IDc4LjYzIDk2Ljg4IDgxLjEwIDgyLjk5IEMgODMuNjUgNjguMjIgOTEuMzEgNTQuNDUgMTAyLjQ0IDQ0LjQxIEMgMTEzLjc5IDM0LjA1IDEyOC42NSAyNy43OCAxNDMuOTkgMjYuODYgWiINCiAgICAgZmlsbD0iIzAxMDEwMSINCiAgICAgaWQ9InBhdGg5NDg0MyINCiAgICAgc3R5bGU9ImZpbGw6IzJiOGEzZTtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSAxMzkuNDkgNDguODYgQyAxNTEuMTggNDYuNjIgMTYzLjU4IDQ4Ljk1IDE3My41OCA1NS40MyBDIDE4OS4wMCA2NS4yMSAxOTcuNTcgODMuOTYgMTk0LjYzIDEwMi4wMyBDIDE5Mi4xNSAxMTkuMTMgMTc5LjY2IDEzNC4wMCAxNjMuMjQgMTM5LjM4IEMgMTUwLjc4IDE0My42NCAxMzYuNjkgMTQyLjMzIDEyNS4yNiAxMzUuNzggQyAxMTUuNzUgMTMwLjQ3IDEwOC4yMSAxMjEuNzAgMTA0LjM4IDExMS41MSBDIDEwMC43MyAxMDEuOTAgMTAwLjQxIDkxLjA2IDEwMy4zOSA4MS4yMyBDIDEwOC4zNCA2NC43OCAxMjIuNTggNTEuOTYgMTM5LjQ5IDQ4Ljg2IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDUiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMzc1LjQ3IDEwOS42MCBDIDM4MS42OCAxMDcuNzEgMzg4LjU0IDEwOS4yNyAzOTMuMjQgMTEzLjc1IEMgMzk4LjU5IDExOC43MSA0MDAuMzcgMTI2Ljc3IDM5Ny42NyAxMzMuNTQgQyAzOTQuNzcgMTQxLjA0IDM4Ni45OSAxNDUuODMgMzc4Ljk4IDE0NC45NiBDIDM3MC42MyAxNDQuMjAgMzYzLjY4IDEzNy4zNiAzNjIuODAgMTI5LjAyIEMgMzYxLjcwIDEyMC40NiAzNjcuMjQgMTEyLjA3IDM3NS40NyAxMDkuNjAgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg0NyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA1MC40OSAxOTYuNjkgQyA1Ni43OSAxOTUuMjkgNjMuNDggMTk3LjQyIDY3LjgwIDIwMi4yMCBDIDczLjAwIDIwNy44MiA3NC4wMiAyMTYuNTcgNzAuMjIgMjIzLjIyIEMgNjYuMzUgMjMwLjI5IDU3Ljg0IDIzNC4wMiA1MC4wMSAyMzEuOTcgQyA0MS44OSAyMzAuMDQgMzYuMDAgMjIyLjMyIDM2LjI4IDIxMy45NyBDIDM2LjM4IDIwNS43NSA0Mi40NiAxOTguNDAgNTAuNDkgMTk2LjY5IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDkiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gNDI4LjQ5IDIxOC42NyBDIDQ0My4yMSAyMTUuNDggNDU5LjAwIDIxOS42OCA0NzAuMDYgMjI5LjkzIEMgNDgxLjYyIDI0MC4zOSA0ODcuMzEgMjU2LjY1IDQ4NC43MCAyNzIuMDMgQyA0ODIuODAgMjg0LjAzIDQ3Ni4wNCAyOTUuMDcgNDY2LjI1IDMwMi4yNiBDIDQ1Ni4zMCAzMDkuNzAgNDQzLjIyIDMxMi45MCA0MzAuOTcgMzEwLjgzIEMgNDE2LjcyIDMwOC42MiA0MDMuOTcgMjk5LjU0IDM5Ny4xNCAyODYuODYgQyAzOTAuNzcgMjc1LjIyIDM4OS43NSAyNjAuOTMgMzk0LjMxIDI0OC40OCBDIDM5OS43MCAyMzMuNDkgNDEyLjkyIDIyMS45OSA0MjguNDkgMjE4LjY3IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTEiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMjMwLjQ5IDIyNS43MiBDIDIzOS4yMiAyMjMuOTMgMjQ4LjUwIDIyNS45NyAyNTUuNTYgMjMxLjQzIEMgMjY2LjA0IDIzOS4zMSAyNzAuMzcgMjUzLjU2IDI2Ni4wNiAyNjUuOTcgQyAyNjEuNjMgMjc5LjMxIDI0OC4wMCAyODguMjIgMjMzLjk4IDI4Ni43NyBDIDIxOC42OSAyODUuNTggMjA2LjIwIDI3Mi4zMiAyMDUuOTEgMjU2Ljk5IEMgMjA1LjI2IDI0Mi4xOCAyMTUuOTkgMjI4LjYzIDIzMC40OSAyMjUuNzIgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg1MyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA2My40OSAzMTMuNjYgQyA3NS4zNSAzMTEuMDcgODguMTAgMzEzLjEzIDk4LjM4IDMxOS42MyBDIDEwNy45NiAzMjUuNTYgMTE1LjIwIDMzNS4wMCAxMTguNDYgMzQ1Ljc4IEMgMTIzLjUxIDM2MS45MiAxMTkuMDYgMzgwLjE3IDEwNy4xOCAzOTIuMTggQyA5NC43NyA0MDUuMTQgNzUuMTEgNDA5LjgyIDU4LjIwIDQwMy43NSBDIDQ1LjUzIDM5OS40MSAzNS4wNiAzODkuNDMgMzAuMDkgMzc2Ljk5IEMgMjYuMjEgMzY3LjQ0IDI1LjY4IDM1Ni42NyAyOC40MyAzNDYuNzQgQyAzMi45OCAzMzAuMjcgNDYuODAgMzE3LjI2IDYzLjQ5IDMxMy42NiBaIg0KICAgICBmaWxsPSIjZmZmZmZmIg0KICAgICBpZD0icGF0aDk0ODU1Ig0KICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxIiAvPg0KICA8cGF0aA0KICAgICBkPSJNIDI4Ny41MCA0MjguNzAgQyAyOTMuOTMgNDI2LjUxIDMwMS4yMyA0MjguMTQgMzA2LjA1IDQzMi45NSBDIDMxMS42OSA0MzguNDEgMzEzLjA3IDQ0Ny4zMCAzMDkuNDAgNDU0LjI0IEMgMzA1LjgxIDQ2MS4yNSAyOTcuNzcgNDY1LjE2IDI5MC4wMyA0NjMuNjkgQyAyODIuMDEgNDYyLjI3IDI3NS42NyA0NTUuMjAgMjc1LjI1IDQ0Ny4wNCBDIDI3NC42NSA0MzguOTcgMjc5LjgzIDQzMS4yNCAyODcuNTAgNDI4LjcwIFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTciDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQo8L3N2Zz4NCg=="}),N.createElement(L.Gz,null,"Event-Driven Architectures"),N.createElement(L.P7,null,N.createElement(D.p,null,"Designed for Event-Driven Architectures, mapping Event-Storming discoveries into your models."))),N.createElement(L.L0,null,N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY2NSA2NjEiIHdpZHRoPSI2NjUuMHB0IiBoZWlnaHQ9IjY2MS4wcHQiPg0KDQo8cGF0aCBkPSJNIDM5MS4yNCA1Ljg2IEMgNDUzLjUyIDE2LjkwIDUxMi4zMiA0Ni4yOCA1NTguNjIgODkuMzggQyA1ODkuODAgMTE4LjIxIDYxNS40MCAxNTMuMTIgNjMzLjQxIDE5MS41OCBDIDY1MS4zNyAyMjkuNjMgNjYxLjY0IDI3MS4xMCA2NjMuOTcgMzEzLjEwIEMgNjY3LjA1IDM3MC4xNiA2NTUuMzcgNDI3LjkxIDYzMC4yMyA0NzkuMjMgQyA2MDkuNzQgNTIxLjI3IDU4MC4yNSA1NTkuMzYgNTQzLjk0IDU4OC45MiBDIDUxNi4yNSA2MTEuNDMgNDg0LjYyIDYyOC45OCA0NTAuMDIgNjM4LjIxIEMgNDQ2LjIwIDYzOS4xNyA0NDIuMzYgNjM5LjQyIDQzOC45OSA2MzcuMDEgQyA0MzUuMjYgNjM0LjMyIDQzNC4yOCA2MjkuNTMgNDMyLjU5IDYyNS40OSBDIDQwOS42MiA1NjYuNDEgMzg2LjYyIDUwNy4zMyAzNjMuNjMgNDQ4LjI1IEMgMzYyLjA2IDQ0My45MyAzNTkuNDggNDM5Ljc5IDM2MC40NCA0MzUuMDQgQyAzNjEuMjggNDMwLjczIDM2NC41MSA0MjguMDIgMzY4LjUxIDQyNi42MyBDIDM4NS42OCA0MjAuMDggNDAxLjM2IDQxMC40MSA0MTIuMzcgMzk1LjM5IEMgNDIzLjA0IDM4MC44OCA0MjcuNzAgMzYzLjc2IDQyOS4zOSAzNDYuMDMgQyA0MzAuMDcgMzM3LjAwIDQzMC40MiAzMjguMDQgNDI5LjIzIDMxOS4wMyBDIDQyNC43NiAyODUuOTMgNDAyLjAzIDI1Ni43MiAzNzEuNDggMjQzLjUwIEMgMzQwLjg1IDIzMC4wMiAzMDMuNjcgMjM0LjI0IDI3Ni4zMyAyNTMuMzEgQyAyNTguNDYgMjY1LjczIDI0NC44OSAyODQuMDIgMjM4Ljk0IDMwNS4wMiBDIDIzNC4yNiAzMjAuOTIgMjM0Ljk0IDMzNi44MSAyMzcuMzIgMzUzLjAyIEMgMjQwLjA5IDM2OS42NSAyNDUuNzYgMzg1LjQ0IDI1NS45OSAzOTguOTggQyAyNjYuMjcgNDEyLjY0IDI4MC43OSA0MjIuNjQgMjk3LjAwIDQyNy45NSBDIDMwMC45NSA0MjkuMTcgMzA0LjM2IDQzMS4xMCAzMDUuODQgNDM1LjE5IEMgMzA3LjgyIDQ0MC4yOCAzMDUuMDMgNDQ0LjYzIDMwMy4yNSA0NDkuMjYgQyAyNzguNjggNTA5LjY4IDI1NC4xMCA1NzAuMTAgMjI5LjU1IDYzMC41MyBDIDIyOC40NyA2MzMuMDUgMjI3LjE5IDYzNS4zMiAyMjQuODAgNjM2LjgyIEMgMjIxLjg4IDYzOC43MSAyMTguNTAgNjM4LjgyIDIxNS4yMiA2MzcuOTIgQyAyMDMuODYgNjM0LjkxIDE5Mi43NSA2MzAuODUgMTgyLjAzIDYyNi4wNSBDIDE0Ny4zNSA2MTAuNDQgMTE2LjE3IDU4Ni40MCA5MC40NSA1NTguNTMgQyA1MS43NyA1MTYuNTcgMjQuMDEgNDY0LjcxIDEwLjQ3IDQwOS4yOCBDIC01LjE2IDM0NS4zNSAtMS4yMSAyNzYuNjMgMjEuODcgMjE0Ljk4IEMgMzkuMjMgMTY4LjMwIDY3LjM3IDEyNS43NSAxMDMuNDYgOTEuNDUgQyAxMzUuMTQgNjEuMjEgMTcyLjkwIDM3LjQ0IDIxMy44NiAyMS45NSBDIDI3MC4xMyAwLjYyIDMzMi4wNCAtNC44MSAzOTEuMjQgNS44NiBaIiBmaWxsPSIjMWI1MjFiIiAvPg0KPHBhdGggZD0iTSA0MTIuOTcgMzMuMDcgQyA0NDcuNzQgNDIuNDUgNDgxLjAxIDU3LjgxIDUxMC40NyA3OC41NCBDIDU0Ni4zMCAxMDMuNjEgNTc2Ljg4IDEzNi4yMiA1OTkuMjQgMTczLjgzIEMgNjIyLjk1IDIxMy4yMiA2MzcuNDIgMjU4LjIwIDY0MS4zNiAzMDMuOTkgQyA2NDYuOTUgMzY2LjgzIDYzMy4wNCA0MzEuMTAgNjAyLjAwIDQ4Ni4wMSBDIDU3Ni44NyA1MzAuNjggNTQwLjIyIDU2OS45OCA0OTUuNzEgNTk1LjczIEMgNDgxLjg2IDYwMy41OCA0NjcuMTYgNjEwLjI3IDQ1MS44OSA2MTQuODQgQyA0MjkuNzAgNTU3LjczIDQwNy41MiA1MDAuNjEgMzg1LjI0IDQ0My41NCBDIDM5MS4yMCA0NDAuNDQgMzk3LjE5IDQzNy41MyA0MDIuODEgNDMzLjgyIEMgNDE1LjExIDQyNS43MiA0MjUuOTYgNDE1LjM0IDQzMy43OSA0MDIuODIgQyA0NDQuOTEgMzg1LjUyIDQ1MC4yMyAzNjQuMTcgNDUxLjQ2IDM0My44MCBDIDQ1Mi4xMiAzMzEuNjEgNDUyLjA0IDMxOS41NyA0NDkuMzggMzA3LjYwIEMgNDQyLjU0IDI3NC44OSA0MjAuNzEgMjQ1Ljc2IDM5MS43NCAyMjkuMjggQyAzNzYuMjUgMjIwLjM4IDM1OC44MiAyMTUuMTQgMzQwLjk5IDIxMy45NSBDIDMyMC4wMyAyMTIuNzMgMjk4Ljg2IDIxNi44MSAyNzkuOTYgMjI1Ljk3IEMgMjU2LjYxIDIzNy4xOCAyMzcuMDggMjU2LjM1IDIyNS41MCAyNzkuNTIgQyAyMTcuMjEgMjk2LjA1IDIxMy4xMiAzMTQuNTIgMjEzLjY1IDMzMy4wMCBDIDIxNC4xMSAzNTQuNjQgMjE4LjQ1IDM3Ny4wNiAyMjguNjIgMzk2LjMyIEMgMjM2LjA5IDQxMS4wOCAyNDcuMDMgNDIzLjg5IDI2MC40NCA0MzMuNTggQyAyNjYuODUgNDM4LjQyIDI3My45MyA0NDEuOTEgMjgxLjA4IDQ0NS40OSBDIDI3MS45NiA0NjguNDcgMjYyLjUyIDQ5MS4zMiAyNTMuMjEgNTE0LjIzIEMgMjM5LjY3IDU0Ny41MyAyMjYuMTUgNTgwLjg0IDIxMi42MCA2MTQuMTQgQyAyMDQuNjcgNjEyLjIyIDE5Ny4wMyA2MDguNzEgMTg5LjU1IDYwNS40OSBDIDE2My44MyA1OTMuNTcgMTQwLjIyIDU3Ni43OCAxMTkuNzggNTU3LjIwIEMgMTE1LjUxIDU1My4zOSAxMTEuNjAgNTQ5LjQyIDEwNy44MiA1NDUuMTMgQyA1NS43NSA0ODkuMzYgMjQuNTkgNDE0LjM4IDIyLjk5IDMzOC4wMCBDIDIxLjUxIDI3Ni43NCAzOC41MiAyMTUuMjggNzEuODMgMTYzLjgxIEMgMTA2LjM1IDEwOS44MCAxNTguMTUgNjcuMjMgMjE3Ljg1IDQzLjg4IEMgMjc5LjQ1IDE5LjUwIDM0OS4wNSAxNS44NiA0MTIuOTcgMzMuMDcgWiIgZmlsbD0iIzNlYTUzOCIgLz4NCg0KPC9zdmc+"}),N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICBoZWlnaHQ9IjE3MDUuMDYwNyINCiAgIHZpZXdCb3g9Ii00OC41ODMxMzIgLTEzNi4yMjg1MyA1OTkuODk3NDkgNTM4LjIwODM5Ig0KICAgd2lkdGg9IjE3MDUuMjMxMiINCiAgIHZlcnNpb249IjEuMSINCiAgIGlkPSJzdmcxMDMxNjQiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMxMDMxNjgiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTA5Ljk0Njg3LDE3Ny44NjQ0MiBIIC00OC4zNDMxMzIgYyAwLjAzLDAuNzggMC4wNSwxLjU1IDAuMDksMi4zMiAwLjA2LDEuNDkgMC4xNywyLjk3IDAuMjYsNC40NiAwLjA0LDAuNjQgMC4wNywxLjI4IDAuMTIsMS45MSAwLjEyLDEuNzIgMC4yNywzLjQ0IDAuNDMsNS4xNSAwLjA0LDAuMzkgMC4wNywwLjc4IDAuMTEsMS4xNSAwLjE4LDEuOTEgMC4zOSwzLjgyIDAuNjEsNS43MSAwLjAxLDAuMTggMC4wMywwLjM3IDAuMDYsMC41NSAwLjI1LDIuMDQgMC41MSw0LjA5IDAuODEsNi4xMiAwLDAuMDMgMCwwLjA2IDAuMDEsMC4wOCBhIDI2Ni4wNSwyNjYuMDUgMCAwIDAgOC4xOCwzNy40IGMgMC4wMiwwLjA1IDAuMDQsMC4xIDAuMDUsMC4xNSAwLjU3LDEuOTQgMS4xNywzLjg2IDEuNzgsNS43NyAwLjA0LDAuMTEgMC4wOCwwLjIzIDAuMTEsMC4zNCAwLjAzLDAuMTEgMC4wNywwLjIyIDAuMTEsMC4zNCAwLjU2LDEuNzMgMS4xNSwzLjQ1IDEuNzQsNS4xOCAwLjE1LDAuNDMgMC4zLDAuODcgMC40NiwxLjMxIDAuNTMsMS40OSAxLjA3LDIuOTggMS42Myw0LjQ4IDAuMjYsMC42NyAwLjUxLDEuMzQgMC43NiwyLjAyIDAuNDksMS4yNCAwLjk2LDIuNDcgMS40NSwzLjcgMC4zNywwLjkzIDAuNzUsMS44NiAxLjE0LDIuNzggMC40LDAuOTcgMC44LDEuOTIgMS4yMSwyLjg5IDAuNSwxLjE4IDEuMDMsMi4zNSAxLjU1LDMuNTMgMC4zMSwwLjcgMC42MywxLjM5IDAuOTQsMi4wOSAwLjY0LDEuNDEgMS4zLDIuODIgMS45Nyw0LjIyIDAuMjIsMC40NSAwLjQzLDAuOSAwLjY1LDEuMzQgMC43OCwxLjYyIDEuNTcsMy4yMSAyLjM3LDQuOCAwLjE0LDAuMjQgMC4yNSwwLjQ5IDAuMzgsMC43MyAwLjksMS43NiAxLjgyLDMuNTEgMi43Nyw1LjI1IDAuMDQsMC4wOCAwLjA5LDAuMTUgMC4xMiwwLjI0IDAuMiwwLjM2IDAuNDIsMC43MSAwLjYyLDEuMDcgbCAxMzUuMTkwMDAyLC04MS40MyAwLjUsLTAuMyBjIC01LjMzLC0xMS4yNCAtOC42NSwtMjMuMiAtOS44OSwtMzUuMzUgeiINCiAgICAgZmlsbD0iIzkzZDUwMCINCiAgICAgaWQ9InBhdGgxMDMxNDQiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTQ4Ljg1Njg3LDI1MC41MzQ0MiAtMC4zOCwwLjM4IC0xMTEuNTAwMDAyLDExMS40OSBjIDAuNTcsMC41MyAxLjE0LDEuMDggMS43MywxLjU5IDEuMDQsMC45NSAyLjEsMS44OCAzLjE1LDIuODEgMC41NSwwLjQ4IDEuMDgsMC45NiAxLjYzLDEuNDQgMS4yNiwxLjA5IDIuNTQsMi4xNSAzLjgxLDMuMjIgMC4zNSwwLjI5IDAuNjgsMC41NyAxLjAzLDAuODYgYSAyNTUuNTc2LDI1NS41NzYgMCAwIDAgNC45MSwzLjk0IGMgMS41OCwxLjI1IDMuMTcsMi40NiA0Ljc5LDMuNjggMC4wNywwLjA0IDAuMTIsMC4wOCAwLjE4LDAuMTMgYSAyNjYuNDgsMjY2LjQ4IDAgMCAwIDIwLjg2LDE0LjEgYyAwLjI0LDAuMTYgMC40OSwwLjMgMC43NCwwLjQ2IDEuMzcsMC44MSAyLjczLDEuNjIgNC4xMSwyLjQyIGwgMi41MiwxLjQ0IGMgMC44LDAuNDYgMS41OSwwLjkgMi4zOSwxLjM0IDEuNDUsMC43OSAyLjksMS41OCA0LjM2LDIuMzUgMC4yLDAuMTEgMC40LDAuMjIgMC42MSwwLjMyIDQuMDUsMi4xMiA4LjE3MDAwMiw0LjA5IDEyLjMzMDAwMiw1Ljk5IGwgMy45NiwtOS42MSA1Ni4wOCwtMTM2LjE3IDAuMiwtMC41IGMgLTYuMTIsLTMuMjggLTExLjk5LC03LjE2IC0xNy41MSwtMTEuNjggeiINCiAgICAgZmlsbD0iIzRkNWEzMSINCiAgICAgaWQ9InBhdGgxMDMxNDYiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTM3LjI0Njg3LDIzOS40MjQ0MiBhIDk1LjQ5Miw5NS40OTIgMCAwIDEgLTMuNDgsLTQuMSBjIC0xLC0xLjIzIC0xLjk2LC0yLjQ3IC0yLjg5LC0zLjczIC0xLjA3LC0xLjQ0IC0yLjExLC0yLjkgLTMuMSwtNC4zOCAtMC45OSwtMS40OSAtMS45NywtMi45OSAtMi44OSwtNC41MSBsIC0xMzUuMzYwMDAyLDgxLjUzIGMgMi4wODAwMDAzLDMuNDYgNC4yNDAwMDAzLDYuODIgNi40NjAwMDAzLDEwLjE0IDAuMDcsMC4xMiAwLjE0LDAuMjQgMC4yMiwwLjM1IDAuMDIsMC4wNSAwLjA1LDAuMDggMC4wOCwwLjEzIDAuMDcsMC4xIDAuMTQsMC4yMiAwLjIxLDAuMzMgMC4wMSwwLjAxIDAuMDIsMC4wMiAwLjAyLDAuMDQgMC4xOCwwLjI2IDAuMzYsMC41MiAwLjU0LDAuNzkgMC4wMSwwLjAxIDAuMDIsMC4wMyAwLjA0LDAuMDUgMC4wMiwwLjAyIDAuMDEsMC4wMSAwLjAxLDAuMDIgMi4zNDk5OTk5NiwzLjQ3IDQuNzcsNi44OSA3LjI2LDEwLjIzIDAuMDUsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDAuMDYsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDEuMDksMS40MyAyLjE3LDIuODYgMy4yOSw0LjI4IDAuMTUsMC4xOSAwLjI5LDAuMzcgMC40NSwwLjU1IDEuMTQsMS40NyAyLjMwOTk5OTcsMi45MiAzLjQ5OTk5OTcsNC4zNSAwLjI4LDAuMzQgMC41NywwLjY4IDAuODUsMS4wMyAxLjA3LDEuMjggMi4xNCwyLjU1IDMuMjMsMy44MSAwLjQ3LDAuNTQgMC45NSwxLjA5IDEuNDMsMS42MiAwLjkzLDEuMDYgMS44NSwyLjEyIDIuOCwzLjE2IDAuNTIsMC41NyAxLjA2LDEuMTUgMS41OSwxLjcyIDAuMjQsMC4yNyAwLjQ4LDAuNTIgMC43MywwLjc5IDAuNjksMC43NSAxLjM4LDEuNSAyLjA4LDIuMjQgMC4yOCwwLjI5IDAuNTgsMC41OCAwLjg2LDAuODggMS4yMywxLjI4IDIuNDgsMi41NyAzLjc0LDMuODMgbCAxMTEuNjcwMDAyLC0xMTEuNjUgYyAtMS4yOCwtMS4yOCAtMi40OCwtMi42IC0zLjY2LC0zLjkyIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTQ4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI4NS4yNTY4NywyNTAuNDc0NDIgYyAtMS4yMywwLjk5IC0yLjQ3LDEuOTYgLTMuNzMsMi44OSBsIDAuMjcsMC40NyA4MS40MiwxMzUuMTMgYyAzLjc3LC0yLjQ2IDcuNSwtNSAxMS4xNCwtNy42NyA3Ljg4LC01LjgxIDE1LjUsLTEyLjExIDIyLjg1LC0xOC44OSBsIC0xMTEuNTEsLTExMS40OSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1MCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAzNTEuMzg2ODcsMzkwLjA3NDQyIC0yLjc2LC00LjU5IC03NiwtMTI2LjEzIGMgLTEuNTQsMC45MiAtMy4xMSwxLjc2IC00LjY4LDIuNiAtMS41OSwwLjg2IC0zLjE4LDEuNjUgLTQuOCwyLjQyIC0xNC42LDYuOTIgLTMwLjQsMTAuNDYgLTQ2LjIzLDEwLjQ2IC0xMC4zNywwIC0yMC43MywtMS41IC0zMC43NSwtNC40OSAtMS43MSwtMC41MSAtMy4zOCwtMS4xOCAtNS4wNiwtMS43OCAtMS42OSwtMC41OSAtMy40LC0xLjExIC01LjA2LC0xLjc5IGwgLTU2LjA0LDEzNi4wOCAtMi4xOSw1LjMzIC0xLjg4LDQuNTcgLTAuMDEsMC4wMiBjIDAuMTQsMC4wNiAwLjI5LDAuMTEgMC40MywwLjE3IDAuMTYsMC4wNiAwLjMxLDAuMTEgMC40NiwwLjE4IGggMC4wMiBjIDAuMDQsMC4wMiAwLjA4LDAuMDMgMC4xMSwwLjA0IDEuMzIsMC41NSAyLjY1LDEuMDEgMy45OCwxLjUzIDEuNjcsMC42NSAzLjMzLDEuMzEgNSwxLjkyIDAuODYsMC4zMSAxLjcsMC42NyAyLjU1LDAuOTcgaCAwLjAxIGEgMjY3LjQyLDI2Ny40MiAwIDAgMCA1NC4xOSwxMi45NyBjIDAuNzMsMC4wOSAxLjQ0LDAuMTkgMi4xNywwLjI5IDAuNzUsMC4wOSAxLjUxLDAuMTYgMi4yNywwLjI1IDEuNDIsMC4xNiAyLjg0LDAuMzIgNC4yNywwLjQ2IGwgMS4wNiwwLjA5IGMgMS43NSwwLjE3IDMuNSwwLjMyIDUuMjQsMC40NCAwLjYsMC4wNSAxLjIsMC4wNyAxLjc5LDAuMTIgMS41MywwLjEgMy4wNiwwLjE5IDQuNTksMC4yNiAwLjk0LDAuMDYgMS44OCwwLjA4IDIuODIsMC4xMiAxLjIyLDAuMDQgMi40MywwLjA5IDMuNjUsMC4xMyAxLjc1LDAuMDQgMy41MiwwLjA1IDUuMjgsMC4wNiAwLjQyLDAgMC44MywwLjAxIDEuMjUsMC4wMiAxNC43NSwwIDI5LjUsLTEuMjMgNDQuMDksLTMuNjggMC4yNCwtMC4wNCAwLjQ5LC0wLjA4IDAuNzQsLTAuMTEgMS41NCwtMC4yNyAzLjA4LC0wLjU2IDQuNjIsLTAuODQgMC44OCwtMC4xNyAxLjc3LC0wLjM0IDIuNjMsLTAuNTEgMC45LC0wLjE5IDEuODEsLTAuMzcgMi43MSwtMC41NyAxLjUsLTAuMzEgMywtMC42NCA0LjUxLC0wLjk5IDAuMjcsLTAuMDYgMC41NCwtMC4xMSAwLjgxLC0wLjE5IDIyLjE4LC01LjE2IDQzLjYsLTEzLjE2IDYzLjcyLC0yMy43NSB2IC0wLjAxIGMgMS4zMiwtMC42OSAyLjYxLC0xLjQ4IDMuOTIsLTIuMiAxLjU2LC0wLjg1IDMuMTEsLTEuNzQgNC42NywtMi42MyAxLjA3LC0wLjYxIDIuMTYsLTEuMTggMy4yMywtMS44MiAwLjAxLC0wLjAxIDAuMDIsLTAuMDIgMC4wMywtMC4wMiBoIDAuMDEgYyAwLjAyLC0wLjAxIDAuMDMsLTAuMDIgMC4wNSwtMC4wMyBsIDAuMDIsLTAuMDIgLTAuMiwtMC4zMyAwLjIsMC4zMyBjIDAuMDEsMCAwLjAyLC0wLjAxIDAuMDMsLTAuMDEgMC4wMiwtMC4wMSAwLjAzLC0wLjAyIDAuMDUsLTAuMDMgMC4wNiwtMC4wNCAwLjEyLC0wLjA3IDAuMTgsLTAuMTEgMC4zNCwtMC4yMSAwLjY5LC0wLjQxIDEuMDQsLTAuNjIgeiBtIC0yMDIuNDcsLTMwNi4yMjAwMDcgYyAxLjIzLC0xIDIuNDgsLTEuOTYgMy43MywtMi45IGwgLTAuMjcsLTAuNDYgLTgxLjQyMDAwMiwtMTM1LjE0IGMgLTMuNzgsMi40NyAtNy41MSw1LjAyIC0xMS4xNiw3LjY5IC03Ljg3LDUuOCAtMTUuNSwxMi4wOSAtMjIuODMsMTguODYgbCAxMTEuNTEwMDAyLDExMS41IHoiDQogICAgIGZpbGw9IiM5M2Q1MDAiDQogICAgIGlkPSJwYXRoMTAzMTUyIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI5LjIzNjg2OCwtMjAuNjY1NTg3IGMgLTEuMjcsMS4yNyAtMi40NywyLjU4IC0zLjcxLDMuODYgLTEuMjMsMS4yOSAtMi40OSwyLjU3IC0zLjcsMy44NyBhIDI2Ni4xNTYsMjY2LjE1NiAwIDAgMCAtMjIuNTU5OTk5NzQsMjcuOTYgYyAtMC4zMjk5OTk5NiwwLjQ1IC0wLjY0OTk5OTk2LDAuOTMgLTAuOTc5OTk5OTYsMS4zOSAtMC43NiwxLjEyIC0xLjUyLDIuMjMgLTIuMjYsMy4zNSAtMC43OCwxLjE2IC0xLjU1LDIuMzQgLTIuMywzLjUxIC0wLjI4LDAuNDMgLTAuNTYsMC44NyAtMC44MywxLjMgLTI1LjY1MDAwMDMsNDAuMjMgLTM5LjM5MDAwMDMsODUuODU5OTk3IC00MS4yNDAwMDAzLDEzMS44NzAwMDcgLTAuMDcsMS43OSAtMC4xMSwzLjU4IC0wLjE1LDUuMzYgLTAuMDMsMS43OCAtMC4wOSwzLjU3IC0wLjA5LDUuMzUgSCAxMDkuMzQ2ODcgYyAwLC0xLjc4IDAuMTYsLTMuNTYgMC4yNiwtNS4zNSAwLjA5LC0xLjc5IDAuMTEsLTMuNTggMC4yOSwtNS4zNiAyLjA0LC0yMC41NiA5Ljk4LC00MC42NCAyMy44MiwtNTcuNTAwMDA3IDEuMTIsLTEuMzcgMi4zOSwtMi42NiAzLjYsLTMuOTggMS4xOSwtMS4zMyAyLjMxLC0yLjcgMy41OSwtMy45OCB6IG0gMzI1Ljg1MDAwMiwtMzkuMiBjIC0wLjIxLC0wLjEzIC0wLjQ0LC0wLjI2IC0wLjY1LC0wLjM5IC0xLjM5LC0wLjg1IC0yLjc5LC0xLjY3IC00LjIsLTIuNDkgLTAuODEsLTAuNDcgLTEuNjMsLTAuOTMgLTIuNDQsLTEuMzkgLTAuODMsLTAuNDYgLTEuNjQsLTAuOTIgLTIuNDcsLTEuMzcgYSA5MDEuNCw5MDEuNCAwIDAgMCAtNC4yOSwtMi4zMiBjIC0wLjIzLC0wLjExIC0wLjQ1LC0wLjIzIC0wLjY4LC0wLjM1IC05LjI2LC00Ljg0IC0xOC43NywtOS4xIC0yOC40OCwtMTIuOCAtMC4yNSwtMC4xIC0wLjUsLTAuMiAtMC43NSwtMC4yOSAtMi4xMiwtMC43OSAtNC4yNCwtMS41OCAtNi4zOCwtMi4zMiBhIDI2Ny4wODQsMjY3LjA4NCAwIDAgMCAtNTMuMjEsLTEyLjYyOTk5NyBsIC0yLjIyLC0wLjMgYyAtMC43NSwtMC4wOSAtMS40OSwtMC4xNiAtMi4yMywtMC4yNCAtMS40MywtMC4xNyAtMi44NSwtMC4zMyAtNC4yOSwtMC40NyAtMC4zOSwtMC4wNCAtMC43OSwtMC4wNiAtMS4yLC0wLjExIC0xLjY5LC0wLjE1IC0zLjQsLTAuMyAtNS4xLC0wLjQzIGwgLTEuOTksLTAuMTIgYyAtMS40NSwtMC4wOSAtMi45MywtMC4yIC00LjM4LC0wLjI2IC0wLjc4LC0wLjA0IC0xLjU2LC0wLjA3IC0yLjMzLC0wLjA5IFYgNjAuMDU0NDEzIGMgOC4xMiwwLjg0IDE2LjE3LDIuNTcgMjMuOTgsNS4yMiBsIDExNi41MSwtMTE2LjQ5IGMgLTQuMzMsLTMgLTguNywtNS45MiAtMTMuMiwtOC42NSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1NCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAyMTEuNzM2ODcsLTk4LjM2NTU4NCBjIC0xLjc5LDAuMDQgLTMuNTgsMC4wNCAtNS4zNiwwLjExIC0xMS4xNywwLjQ1IC0yMi4zMiwxLjU5IC0zMy4zOCwzLjQ1IC0wLjI0LDAuMDQgLTAuNDgsMC4wOCAtMC43MywwLjEyIC0xLjU1LDAuMjcgLTMuMDksMC41NSAtNC42MywwLjg0IC0wLjg3LDAuMTcgLTEuNzUsMC4zMyAtMi42MywwLjUgLTAuOTEsMC4xOCAtMS44MSwwLjM3IC0yLjcyLDAuNTcgLTEuNSwwLjMxIC0zLDAuNjQgLTQuNDksMC45OSAtMC4yOCwwLjA1IC0wLjU1LDAuMTIgLTAuODIsMC4xOCBhIDI2Ny40NjUsMjY3LjQ2NSAwIDAgMCAtNjMuNzMwMDAyLDIzLjc1OTk5NyBjIC0xLjMxLDAuNyAtMi41OSwxLjQ5IC0zLjksMi4yIC0xLjU2LDAuODYgLTMuMTIsMS43NCAtNC42NywyLjYzIC0xLjE1LDAuNjcgLTIuMzIsMS4yOCAtMy40NywxLjk2IC0wLjAxLDAuMDEgLTAuMDMsMC4wMiAtMC4wNCwwLjAyIC0wLjA4LDAuMDUgLTAuMTYsMC4xIC0wLjI0LDAuMTQgLTAuMywwLjE5IC0wLjYxLDAuMzQgLTAuOTEsMC41MiBsIDAuMDEsMC4wMiAyLjc3LDQuNTkgNzguNzUwMDAyLDEzMC43MyBjIDEuNTQsLTAuOTIgMy4xMSwtMS43NyA0LjY4LC0yLjYxIDEuNTgsLTAuODUgMy4xOCwtMS42NSA0Ljc5LC0yLjQxIGEgMTA3LjI1LDEwNy4yNSAwIDAgMSAzNS4zNiwtOS45MSBjIDEuNzgsLTAuMTggMy41NiwtMC4zMyA1LjM1LC0wLjQyIDEuNzgsLTAuMDkgMy41NywtMC4xOCA1LjM2LC0wLjE4IFYgLTk4LjQ3NTU4NCBjIC0xLjc5LDAgLTMuNTcsMC4wOCAtNS4zNSwwLjExIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTU2IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDQ4Mi40MjY4NywxNTQuMTA0NDIgYyAtMC4wOCwtMS40MiAtMC4xNiwtMi44MyAtMC4yNiwtNC4yNiBhIDc1LjQsNzUuNCAwIDAgMCAtMC4xNCwtMi4xMiBjIC0wLjExLC0xLjY3IC0wLjI1LC0zLjM0IC0wLjQxLC01LjAxIC0wLjAzLC0wLjQzIC0wLjA3LC0wLjg2IC0wLjExLC0xLjI5IC0wLjE4LC0xLjg3IC0wLjM4LC0zLjczIC0wLjYsLTUuNTkgLTAuMDIsLTAuMTUgLTAuMDMsLTAuMyAtMC4wNSwtMC40NSBsIC0wLjAzLC0wLjIxIGMgLTAuMjQsLTIuMDEgLTAuNTEsLTQuMDIgLTAuNzksLTYuMDIgbCAtMC4wMywtMC4xOSBhIDI2Ni40NTQsMjY2LjQ1NCAwIDAgMCAtOC4xNiwtMzcuMzMwMDA3IGMgLTAuMDMsLTAuMDkgLTAuMDUsLTAuMTYgLTAuMDgsLTAuMjQgLTAuNTcsLTEuOTEgLTEuMTYsLTMuOCAtMS43NSwtNS42OSAtMC4wOSwtMC4yNSAtMC4xNywtMC41IC0wLjI1LC0wLjc1IC0wLjU2LC0xLjcxIC0xLjEzLC0zLjQxIC0xLjcyLC01LjExIGwgLTAuNDgsLTEuMzggYyAtMC41MiwtMS40NyAtMS4wNiwtMi45NCAtMS42LC00LjQxIC0wLjI3LC0wLjcgLTAuNTMsLTEuNCAtMC44MSwtMi4wOSAtMC40NiwtMS4yMiAtMC45MywtMi40MyAtMS40MiwtMy42MyAtMC4zOCwtMC45NyAtMC43NywtMS45MiAtMS4xNiwtMi44NiAtMC4zOSwtMC45NSAtMC43OSwtMS44OCAtMS4xOCwtMi44MiAtMC41MiwtMS4yIC0xLjA1LC0yLjQgLTEuNTgsLTMuNTkgLTAuMywtMC42NyAtMC42LC0xLjM1IC0wLjkxLC0yLjAzIC0wLjY1LC0xLjQyIC0xLjMyLC0yLjg1IC0xLjk5LC00LjI3IC0wLjIxLC0wLjQyIC0wLjQyLC0wLjg2IC0wLjYzLC0xLjI5IC0wLjc4LC0xLjYyIC0xLjU4LC0zLjI1IC0yLjQsLTQuODUgLTAuMTEsLTAuMjIgLTAuMjMsLTAuNDUgLTAuMzQsLTAuNjcgLTAuOTEsLTEuNzcgLTEuODUsLTMuNTUgLTIuNzksLTUuMyAtMC4wNCwtMC4wNiAtMC4wNywtMC4xMyAtMC4xMSwtMC4xOSBhIDI2Ni45OSwyNjYuOTkgMCAwIDAgLTE1LjExLC0yNC41MiBsIC0xMTYuNTQsMTE2LjU0MDAwNyBjIDIuNjUsNy44MSA0LjM3LDE1Ljg2IDUuMjEsMjMuOTcgaCAxNTguMzIgYyAtMC4wNCwtMC43OSAtMC4wNiwtMS41OCAtMC4xLC0yLjM1IHoiDQogICAgIGZpbGw9IiM0ZDVhMzEiDQogICAgIGlkPSJwYXRoMTAzMTU4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDMyNC44MjY4NywxNjcuMTU0NDIgYyAwLDEuNzkgLTAuMTcsMy41NyAtMC4yNiw1LjM2IC0wLjA5LDEuNzkgLTAuMTIsMy41OCAtMC4zLDUuMzUgLTIuMDQsMjAuNTcgLTkuOTcsNDAuNjUgLTIzLjgxLDU3LjUyIC0xLjEyLDEuMzcgLTIuMzksMi42NSAtMy42LDMuOTggLTEuMiwxLjMyIC0yLjMxLDIuNjkgLTMuNTksMy45NyBsIDExMS42NywxMTEuNjUgYyAxLjI3LC0xLjI3IDIuNDYsLTIuNTggMy43LC0zLjg3IDEuMjQsLTEuMjkgMi41LC0yLjU2IDMuNywtMy44NyA4LjI2LC04Ljk1IDE1LjgyLC0xOC4zMSAyMi42MiwtMjguMDQgMC4yOCwtMC4zOSAwLjUzLC0wLjc3IDAuOCwtMS4xNSAwLjgzLC0xLjE5IDEuNjMsLTIuNCAyLjQ1LC0zLjYgMC43MSwtMS4wOCAxLjQyLC0yLjE1IDIuMTEsLTMuMjQgMC4zNSwtMC41MiAwLjY5LC0xLjA2IDEuMDIsLTEuNTggMjUuNjEsLTQwLjIxIDM5LjMyLC04NS43OSA0MS4xNiwtMTMxLjc3IDAuMDcsLTEuNzggMC4xMSwtMy41NyAwLjE0LC01LjM2IDAuMDQsLTEuNzggMC4wOSwtMy41NiAwLjA5LC01LjM1IHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTYwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDUyOS42NDY4NywtMTQ1LjM3NTU4IGMgLTI4Ljg5LC0yOC44OSAtNzUuNzMsLTI4Ljg5IC0xMDQuNjIsMCAtMjMuMDUsMjMuMDQgLTI3LjY2LDU3LjQ4OTk5NiAtMTMuOTMsODUuMTQ5OTkzIGwgLTE2MS4xNiwxNjEuMTQ5OTk3IGMgLTI3LjY2LC0xMy43MTk5OTcgLTYyLjEyLC05LjExOTk5NyAtODUuMTcsMTMuOTIwMDEgLTI4Ljg5LDI4Ljg5IC0yOC44OCw3NS43MyAwLDEwNC42MiAyOC45LDI4Ljg5IDc1Ljc1LDI4Ljg4IDEwNC42NCwwIDIzLjA1LC0yMy4wNSAyNy42NSwtNTcuNSAxMy45MiwtODUuMTYgbCAxNjEuMTYsLTE2MS4xNDAwMDcgYyAyNy42NywxMy43MiA2Mi4xMSw5LjEyIDg1LjE2LC0xMy45MyAyOC44OSwtMjguODggMjguODksLTc1LjcxOTk5MyAwLC0xMDQuNjA5OTkzIHoiDQogICAgIGZpbGw9IiM0MjQxNDMiDQogICAgIGlkPSJwYXRoMTAzMTYyIiAvPg0KPC9zdmc+DQo="}),N.createElement(L.$s,{style:{display:"inline",...M.style},src:y}),N.createElement(L.Gz,null,"API-First"),N.createElement(L.P7,null,N.createElement(D.p,null,"Leveraging open standards like OpenAPI and AsyncAPI."))),N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDQyNiA0MjAiIHdpZHRoPSI0MjYuMHB0IiBoZWlnaHQ9IjQyMC4wcHQiPg0KDQo8cGF0aCBkPSJNIDE1Ny42NCA2LjEwIEMgMTYwLjIxIDYuNDIgMTYxLjQwIDguMjEgMTYzLjEyIDkuOTEgQyAxNjkuNjkgMTYuOTkgMTc2LjcyIDIzLjYyIDE4My4zNSAzMC42NCBDIDE5MS4xMyAzOS40OCAyMDAuMDQgNDcuMjAgMjA3LjgwIDU2LjA3IEMgMjAzLjU0IDYxLjA4IDE5OC42NCA2NS4zNSAxOTQuMDkgNzAuMDkgQyAxODEuNTYgODIuOTAgMTY4LjUxIDk1LjE3IDE1Ni4wNiAxMDguMDYgQyAxNTQuMTcgMTEwLjA0IDE1Mi4wOCAxMTEuNzUgMTQ5LjgyIDExMy4yOSBDIDE0OC45OCAxMDUuODQgMTUwLjk0IDk4LjY4IDE1MC40MyA5MS4yMiBDIDE0NS42MCA5Mi40MyAxNDEuMTQgOTQuNDUgMTM2Ljc2IDk2Ljc3IEMgMTEzLjY0IDEwOC40MiA5Mi4xNCAxMjcuMTggODAuNzEgMTUwLjczIEMgNzMuODMgMTY0LjE1IDcwLjI5IDE3OC45NyA2OS41OCAxOTQuMDAgQyA2OS42MCAyMDAuMzMgNjkuMzQgMjA2LjcyIDY5Ljg1IDIxMy4wMyBDIDcwLjk2IDIyMi44MyA3Mi4zNyAyMzIuNTMgNzUuMjMgMjQxLjk5IEMgNzUuODggMjQ0LjY4IDc3LjE4IDI0OC4xMyA3Ni4zNiAyNTAuODUgQyA3NC4zMyAyNTIuNDYgNzEuNTAgMjUzLjIzIDY5LjA5IDI1NC4xNiBDIDU1LjIyIDI1OS4xMyA0MS43MSAyNjUuMTYgMjcuNzcgMjY5LjkxIEMgMjUuMzMgMjYzLjI1IDIzLjkzIDI1Ni4zOSAyMi40NCAyNDkuNDggQyAyMC43MSAyNDAuNzggMTguNjcgMjMxLjgyIDE4LjI5IDIyMy4wMCBDIDE3LjIwIDIxMy42MSAxNy40OCAyMDQuNDQgMTcuNDYgMTk1LjAwIEMgMTcuMzYgMTgyLjg2IDE5LjE3IDE3MC43OSAyMS45MCAxNTguOTggQyAyOS4wNiAxMjguMDUgNDYuMTQgOTkuODkgNjkuNzcgNzguNzYgQyA4MC41NCA2OS4yOSA5Mi4yMSA2MC41NyAxMDQuODUgNTMuNzUgQyAxMjAuOTcgNDQuNjggMTM4LjM2IDM3LjQ1IDE1Ni4zMyAzMy4wMCBDIDE1Ni45OCAyMy44NSAxNTUuOTQgMTQuOTIgMTU3LjY0IDYuMTAgWiIgZmlsbD0iI2EyNDM0MiIgLz4NCjxwYXRoIGQ9Ik0gMTYxLjg2IDE1LjMxIEMgMTY4Ljc4IDIwLjc2IDE3NC4yNyAyOC4yNiAxODAuNjEgMzQuMzkgQyAxODYuODkgNDAuNDYgMTkyLjY0IDQ3LjAzIDE5OS4wNCA1Mi45OCBDIDIwMC4wMiA1NC4xMyAyMDIuMjAgNTUuNjcgMjAxLjMyIDU3LjM5IEMgMTk4Ljg4IDYwLjQ3IDE5NS4yNiA2Mi42NyAxOTIuNDkgNjUuNDkgQyAxODQuMTUgNzMuODIgMTc1Ljg3IDgyLjIwIDE2Ny40OCA5MC40OSBDIDE2My4xOSA5NC42NSAxNTkuMzkgOTkuMTMgMTU0LjY0IDEwMi44MSBDIDE1NC4yNSA5Ni45NyAxNTQuODkgOTEuMjMgMTU1LjMxIDg1LjQxIEMgMTQ4Ljg0IDg2LjA5IDE0My42MyA4OC45OSAxMzcuODIgOTEuNjQgQyAxMzEuMjYgOTQuODggMTI0LjQ5IDk4LjI1IDExOC41NyAxMDIuNTYgQyAxMTMuMDkgMTA2LjU1IDEwNy43MCAxMTAuMDYgMTAyLjkzIDExNC45MiBDIDk3LjA2IDEyMS4wMCA5MC45NSAxMjYuMjIgODYuMjcgMTMzLjM1IEMgNzIuMjQgMTUyLjg5IDY0LjgzIDE3Ni45NiA2NS40MyAyMDEuMDAgQyA2NS4wOCAyMTMuODAgNjcuMDkgMjI2LjI1IDcwLjE5IDIzOC42MyBDIDcxLjA0IDI0MS45MSA3MS41MSAyNDUuMjMgNzEuNzkgMjQ4LjU5IEMgNTkuNjAgMjUzLjQ4IDQ3LjI2IDI1Ny45MiAzNS4xMCAyNjIuODggQyAzMy44MSAyNjMuMzMgMzAuMjIgMjY0LjQ5IDI5Ljc4IDI2Mi40NSBDIDI1Ljc3IDI0OC4xNyAyMy41OCAyMzMuODUgMjIuMTQgMjE5LjEzIEMgMjEuMDcgMjExLjI3IDIxLjU2IDIwMi45OSAyMS40NCAxOTUuMDAgQyAyMS4zMiAxODcuMjUgMjIuNDcgMTc5LjkzIDIzLjUxIDE3Mi4yMSBDIDI2LjEwIDE1NC4yNCAzMi4zMSAxMzYuNzYgNDEuMTAgMTIwLjkwIEMgNDYuOTQgMTExLjA5IDUzLjYwIDEwMS42NSA2MS4xOSA5My4xMSBDIDc1LjQ5IDc3LjI3IDkzLjEzIDY1LjE3IDExMS42MyA1NC43NCBDIDExOC4yMSA1MS4xNyAxMjUuMTcgNDguMjYgMTMyLjA1IDQ1LjMwIEMgMTQxLjIyIDQxLjQ3IDE1MC43NiAzOC45OSAxNjAuMjIgMzYuMDQgQyAxNjEuMDggMjkuMTYgMTYwLjY2IDIyLjEwIDE2MS44NiAxNS4zMSBaIiBmaWxsPSIjZTdiYWI4IiAvPg0KPHBhdGggZD0iTSAyNDQuODAgMjguNTYgQyAyNDcuNDMgMjguMTAgMjUwLjA5IDI4LjY2IDI1Mi42NCAyOS4zMCBDIDI2My4wOCAzMi4xNiAyNzMuNDEgMzUuMzYgMjgzLjQ2IDM5LjM5IEMgMzAzLjQwIDQ3LjAxIDMyMi4yMiA1Ny43NiAzMzguNzkgNzEuMjMgQyAzNDUuNDggNzYuODEgMzUxLjY4IDgzLjAyIDM1Ny41MCA4OS41MCBDIDM3Mi43NCAxMDcuMDQgMzgzLjgzIDEyNy45NiAzODkuODcgMTUwLjM5IEMgMzkyLjQwIDE1OC43OCAzOTMuNzUgMTY3LjM4IDM5NS4wNyAxNzYuMDEgQyAzOTUuOTcgMTgyLjU3IDM5NS4zNyAxODkuMzcgMzk1Ljk3IDE5NS45MCBDIDM5Ni44OCAyMDMuNTYgMzk2LjYxIDIxMS4xMyAzOTUuNjggMjE4Ljc3IEMgMzk1LjQ2IDIyNS40OCAzOTQuNDIgMjMyLjA1IDM5My4zNiAyMzguNjYgQyAzOTIuNTkgMjQ0LjU2IDM5MC42MCAyNTAuMDkgMzkwLjI0IDI1Ni4wNSBDIDM5Ny40MyAyNjAuNDUgNDA0Ljc2IDI2NC41OSA0MTEuOTAgMjY5LjA3IEMgNDExLjc3IDI2OS44MyA0MTEuNjQgMjcwLjU4IDQxMS41MSAyNzEuMzQgQyA0MDYuMTcgMjcyLjY4IDQwMC44NSAyNzQuMDggMzk1LjU1IDI3NS41NyBDIDM4Mi44NCAyNzkuMzUgMzY5Ljk2IDI4Mi41MSAzNTcuMjIgMjg2LjE3IEMgMzUzLjI2IDI4Ny4yMiAzNDkuMjcgMjg4LjY4IDM0NS4yMSAyODkuMjcgQyAzNDMuNzYgMjg4LjU2IDM0My41OCAyODcuNDIgMzQzLjEwIDI4Ni4wMSBDIDMzNy45OSAyNjYuODcgMzMyLjM0IDI0Ny45MCAzMjcuMTUgMjI4Ljc3IEMgMzI1LjU0IDIyMi42MyAzMjIuODEgMjE3LjY0IDMyMy40NSAyMTEuMTEgQyAzMzAuMDEgMjE0LjMyIDMzNS4zNCAyMTkuOTQgMzQyLjIzIDIyMi4wMyBDIDM0Mi43NSAyMTcuMzUgMzQzLjUyIDIxMi43NCAzNDMuNDggMjA4LjAwIEMgMzQzLjU0IDIwMC4xMiAzNDMuODEgMTkxLjkwIDM0Mi41MCAxODQuMTcgQyAzNDEuMDUgMTc1LjA3IDMzOS40MiAxNjUuNTEgMzM2LjE0IDE1Ni44OCBDIDMzMi4zMiAxNDYuMjEgMzI2Ljg3IDEzNi4wMyAzMTkuOTYgMTI3LjA0IEMgMzA2LjQ3IDEwOS41NiAyODguMDggOTcuNTYgMjY3LjY2IDg5LjYwIEMgMjU5LjM0IDg2LjQ2IDI1MS4wMyA4My41OCAyNDIuMTkgODIuMjcgQyAyMzkuODEgODEuODEgMjM4LjA1IDgwLjgyIDIzOC40MSA3OC4wNSBDIDIzOS4wMyA2OC4yMSAyNDEuODYgNTguNzAgMjQxLjU1IDQ4LjcwIEMgMjQxLjg1IDQ4LjkyIDI0Mi4xNSA0OS4xNCAyNDIuNDUgNDkuMzYgQyAyNDIuOTkgNDIuNDAgMjQ0LjAxIDM1LjQ4IDI0NC44MCAyOC41NiBaIiBmaWxsPSIjNWI3MDM2IiAvPg0KPHBhdGggZD0iTSAyNTMuMzEgMzMuODIgQyAyNzMuMzkgMzkuMzcgMjkyLjgzIDQ2Ljg4IDMxMC45OCA1Ny4xNSBDIDMyMS4zNiA2My42NyAzMzIuMTQgNzAuNTQgMzQxLjA3IDc4LjkxIEMgMzQ1LjMwIDgyLjQyIDM0OS4yMiA4Ni4wNiAzNTIuNjEgOTAuNDIgQyAzNjEuNjMgMTAwLjQwIDM2OS4zNSAxMTEuNjkgMzc1LjE3IDEyMy44MyBDIDM4NC4yMCAxNDEuMjMgMzg5LjA5IDE2MS4xMSAzOTEuMzMgMTgwLjUxIEMgMzkzLjA4IDE5MC4wOCAzOTIuMjUgMTk5LjM0IDM5Mi40NiAyMDkuMDAgQyAzOTIuNjQgMjE1Ljc5IDM5MS4yMiAyMjIuMjEgMzkwLjUwIDIyOC45MSBDIDM4OS42MyAyMzcuMDkgMzg3LjkwIDI0NS4xMCAzODUuODQgMjUzLjA1IEMgMzg1LjY1IDI1NC40OSAzODQuNzAgMjU2Ljg0IDM4Ni4wMyAyNTcuOTUgQyAzODkuOTQgMjYxLjcyIDM5NS43NyAyNjQuMTMgNDAwLjQwIDI2Ni44NiBDIDQwMS4zMyAyNjcuMzcgNDAxLjQzIDI2OS4wMCA0MDEuODUgMjY5LjkyIEMgMzg5LjY2IDI3Mi40NSAzNzcuNzggMjc2LjQ1IDM2NS43MSAyNzkuNDkgQyAzNTkuMjIgMjgxLjA0IDM1My41MiAyODMuNjkgMzQ2LjcyIDI4My43NCBDIDM0NC4wNiAyNzMuMTkgMzQwLjkxIDI2Mi43NiAzMzguMDcgMjUyLjI1IEMgMzM1LjE3IDI0MS40OSAzMzEuNjcgMjMxLjA3IDMyOS4yMCAyMjAuMjMgQyAzMzQuNDMgMjIyLjg3IDMzOS4xNiAyMjYuMzIgMzQ0LjM5IDIyOC45NiBDIDM0Ni45MCAyMjMuNDMgMzQ2LjU4IDIxNy44NyAzNDcuMzEgMjEyLjAwIEMgMzQ4LjE4IDIwMy40NiAzNDcuOTQgMTk1LjAxIDM0Ni44NCAxODYuNTEgQyAzNDUuMTYgMTY2LjU5IDMzOC43NCAxNDcuMTggMzI3LjU2IDEzMC41NiBDIDMyMC4xMiAxMTguNzMgMzEwLjAzIDEwOS40NSAyOTguOTQgMTAxLjEwIEMgMjg1LjQ1IDkyLjEzIDI3MC40OCA4NS4yOCAyNTQuODcgODAuOTcgQyAyNTAuNjcgNzkuODcgMjQ2LjUzIDc4LjY1IDI0Mi40MCA3Ny4yOSBDIDI0NC41NCA2My4xOSAyNDYuMjYgNDkuMDYgMjQ4LjMyIDM0Ljk2IEMgMjQ4LjU1IDMyLjE5IDI1MS42MiAzMy42MSAyNTMuMzEgMzMuODIgWiIgZmlsbD0iI2MzZDg5YyIgLz4NCjxwYXRoIGQ9Ik0gNzQuOTUgMjkwLjMzIEMgODAuMTUgMjkxLjI5IDg0Ljk5IDI5My4yMSA5MC4yMCAyOTQuNTUgQyA5OS40NCAyOTYuOTEgMTA4LjQyIDMwMC4xNSAxMTcuNjYgMzAyLjUzIEMgMTI0LjcxIDMwNC44MCAxMzEuOTAgMzA2LjU1IDEzOC45NiAzMDguNzggQyAxNDMuNjMgMzEwLjMxIDE0OC4xNyAzMTAuNzMgMTUyLjE5IDMxMy44NCBDIDE0Ni4yOCAzMTcuMzcgMTM5LjkwIDMxOS44MSAxMzMuODEgMzIzLjA1IEMgMTM2LjA3IDMyNy41MSAxMzkuOTEgMzI5LjQxIDE0My43NyAzMzIuMjMgQyAxNTUuNDAgMzQwLjM4IDE2OC4zNSAzNDYuNzggMTgxLjg4IDM1MS4wNiBDIDE5MC41OCAzNTMuNDMgMTk5Ljk0IDM1NS44MyAyMDkuMDAgMzU1LjU5IEMgMjE1LjY1IDM1NS41MiAyMjIuNDEgMzU1Ljg2IDIyOS4wMiAzNTUuMTAgQyAyNDMuODIgMzUyLjk3IDI1OC4yMSAzNDcuNjMgMjcxLjAwIDMzOS45MiBDIDI4NC41NSAzMzEuOTAgMjk2LjQ3IDMyMS43NyAzMDcuMjkgMzEwLjM4IEMgMzA5LjMzIDMxMS43NyAzMTEuMzUgMzEzLjE2IDMxMy4yNCAzMTQuNzUgQyAzMTkuMTMgMzE5Ljg1IDMyNS4yMSAzMjQuNzMgMzMxLjEwIDMyOS44MyBDIDMzNi44OSAzMzQuODIgMzQzLjIyIDMzOS4zNCAzNDguNTIgMzQ0Ljg0IEMgMzQ0LjE0IDM0OS43MSAzMzkuMjYgMzU0LjAxIDMzNC4zNSAzNTguMzIgQyAzMTYuMTggMzc0LjAwIDI5NS40NiAzODguMjkgMjczLjA0IDM5Ny4xMiBDIDI2Ny43NCAzOTkuMjkgMjYyLjUyIDQwMS41MiAyNTYuOTQgNDAyLjkyIEMgMjQ1LjA3IDQwNi4wMyAyMzIuMzEgNDA5LjA1IDIyMC4wMCA0MDguNzMgQyAyMTAuMDEgNDA4LjY1IDE5OS40OCA0MDkuMzIgMTg5LjcwIDQwNy40MCBDIDE2OS41MiA0MDQuNTQgMTUxLjAwIDM5Ny4zMCAxMzMuMDEgMzg3Ljk0IEMgMTE3LjUyIDM3OS40MyAxMDMuMTUgMzY4Ljc3IDg5Ljk3IDM1Ny4wMiBDIDg2LjM3IDM1My45MiA4My4yNCAzNDkuNTggNzkuMDYgMzQ3LjM0IEMgNzAuNzggMzUwLjI2IDYzLjQyIDM1NS42NyA1NS4wMiAzNTguNDYgQyA1NS43MCAzNTEuMjUgNTguMzkgMzQ1LjI0IDYwLjI3IDMzOC4yNSBDIDYzLjI3IDMyOC41NyA2NS44OSAzMTguNzkgNjguOTggMzA5LjE0IEMgNzAuOTcgMzAyLjc2IDcyLjE2IDI5Ni40NiA3NC45NSAyOTAuMzMgWiIgZmlsbD0iIzNjNjU5NCIgLz4NCjxwYXRoIGQ9Ik0gOTIuODMgMzAwLjA4IEMgMTAyLjY1IDMwMi45MCAxMTIuNDMgMzA1Ljg1IDEyMi4yNSAzMDguNjUgQyAxMjguMzAgMzEwLjQxIDEzNC4zNiAzMTIuMDMgMTQwLjI4IDMxNC4yMiBDIDEzNS4zNyAzMTcuMzggMTI5LjkwIDMxOS4zOCAxMjQuOTEgMzIyLjQyIEMgMTI3LjA0IDMyNC44NiAxMjkuMjYgMzI3LjE5IDEzMS44NiAzMjkuMTQgQyAxNDcuNzggMzQxLjgwIDE2NS41MSAzNTEuNjEgMTg1LjMwIDM1Ni42OSBDIDE5OS45NCAzNjAuODAgMjE1LjY5IDM2MS4yNyAyMzAuNzQgMzU5LjQyIEMgMjU4LjA0IDM1NS4xNCAyODIuMzAgMzQxLjAyIDMwMi4wMiAzMjIuMDIgQyAzMDMuODEgMzIwLjM3IDMwNS43MCAzMTguMTggMzA3Ljk5IDMxNy4yNSBDIDMxMC41MiAzMTguMzEgMzEyLjgwIDMyMC4zNyAzMTQuODcgMzIyLjE0IEMgMzE4Ljk1IDMyNS43NCAzMjMuMjEgMzI5LjEyIDMyNy4zMyAzMzIuNjggQyAzMzIuMDYgMzM2LjgzIDMzNy4xOSAzNDAuMzggMzQxLjU0IDM0NC45NyBDIDMzNy4yOCAzNDkuOTkgMzMyLjE4IDM1My45NiAzMjcuMjEgMzU4LjIzIEMgMzE3Ljc2IDM2Ni4yOCAzMDcuNTggMzczLjQ5IDI5Ni45OSAzNzkuOTcgQyAyNzEuNjQgMzk1LjE1IDI0MS4xMiA0MDUuNjQgMjExLjMzIDQwNC40OSBDIDE5MC4xOCA0MDQuOTcgMTY4LjY1IDM5OS4wNyAxNDkuMzMgMzkwLjc1IEMgMTI0LjI4IDM3OS41NCAxMDEuNDggMzYzLjIzIDgyLjY4IDM0My4yNiBDIDgxLjU4IDM0Mi40NCA4MC45MyAzNDEuMjIgNzkuNDAgMzQxLjc1IEMgNzMuMzQgMzQzLjYzIDY4Ljc4IDM0OC4wMiA2Mi4zMSAzNDkuMDYgQyA2Mi44NiAzNDUuODkgNjMuNjAgMzQyLjc4IDY0LjU4IDMzOS43MSBDIDY5LjE5IDMyNS4zOSA3My4wNSAzMTAuNzYgNzcuNjIgMjk2LjM4IEMgODMuMDYgMjk2LjcxIDg3LjY1IDI5OC42NSA5Mi44MyAzMDAuMDggWiIgZmlsbD0iIzRjODFiZiIgLz4NCjwvc3ZnPg=="}),N.createElement(L.Gz,null,"API-Testing"),N.createElement(L.P7,null,N.createElement(D.p,null,"Testing as first class citizen. Helps you create complete test suites from your Models and APIs."))))),N.createElement(L.BW,null,N.createElement(L.X_,null,N.createElement(L.YZ,null,N.createElement(L.vk,{src:z,alt:"Domain Driven Design is about Business Understanding",className:"only-small"}),N.createElement(L.Mo,{className:"wide-feature-text"},N.createElement("h3",null,"Maintainable Software"),N.createElement(D.ul,null,"\n",N.createElement(D.li,null,"It is ",N.createElement("strong",null,"not a matter of code")," but a matter of ",N.createElement("strong",null,"understanding the business domain")),"\n",N.createElement(D.li,null,"Software well designed ",N.createElement("strong",null,"should be easy to understand by all")),"\n")),N.createElement(L.vk,{src:z,alt:"Domain Driven Design is about Business Understanding",className:"only-wide"})),N.createElement(L.YZ,null,N.createElement(L.vk,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB4PSIwcHgiDQogICB5PSIwcHgiDQogICB2aWV3Qm94PSIwIDAgMzAwIDMwMCINCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiDQogICBpZD0ic3ZnNjc2NDYiDQogICB3aWR0aD0iMzAwIg0KICAgaGVpZ2h0PSIzMDAiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcw0KICAgICBpZD0iZGVmczY3NjUwIiAvPjxwYXRoDQogICAgIGZpbGw9IiNiYWI5YmIiDQogICAgIGQ9Im0gMjAuNjA1MDEyLDE4MC42NjkwMiBjIC0zLjA0OTg4Myw0NC43MzcyOSAzMS44MDgzNyw4My42Nzg2NiA3Ny43MDU1MjQsODYuODA3NjMgMTUuMTcwNDY0LDEuMDM0MjEgMjkuNjMzMjI0LC0yLjAzODkxIDQyLjM2NjYyNCwtOC4xMzkzOCAxMS43ODc2NSw3Ljc3MjAyIDI1LjY5OTUzLDEyLjc3OTY1IDQwLjg2OTk5LDEzLjgxMzg3IDQ1Ljg5NzE1LDMuMTI4OTYgODUuNzE3ODcsLTMwLjcyMTMyIDg4Ljc2Nzc1LC03NS40NTg2IDIuMDYzNjYsLTMwLjI3MDk5IC0xMy4yNjI5MSwtNTcuODQ0ODcgLTM3LjU4NjQ5LC03My41MDg4NyAwLjY5Nzk0LC0zLjQyMDI1IDEuMjU1NjUsLTYuODkxNjcgMS40OTkwMiwtMTAuNDYxNTMgQyAyMzcuMjc3MzEsNjguOTg0ODYxIDIwMi40MTkwNSwzMC4wNDM0NDkgMTU2LjUyMTksMjYuOTE0NDk1IDExMC42MjQ3NSwyMy43ODU1NDEgNzAuODA0MDUyLDU3LjYzNTg1IDY3Ljc1NDE3LDEwMi4zNzMxMiBjIC0wLjI0MzM0NCwzLjU2OTUgLTAuMTYxOTIzLDcuMDg0NTQgMC4wNjUzNSwxMC41NjgxNyAtMjYuMjI0NDk4LDEyLjIxOTg2IC00NS4xNTEzMzksMzcuNDU2NyAtNDcuMjE1MDA5LDY3LjcyNzcgeiBtIDI0MS4zODYyMDgsMTYuNDU2MDYgYyAtMi43NDQ4MSw0MC4yNjI0MyAtMzguNTg0NjcsNzAuNzI4NzUgLTc5Ljg5MDk3LDY3LjkxMjc3IC0xMi4xNTMwMSwtMC44Mjg1IC0yMy40MDQxOSwtNC41MDQ4MSAtMzMuMjI0MTYsLTEwLjIyODc4IDIxLjQ0ODM4LC0xMy40MDQzMiAzNi4zODQzMSwtMzYuMTI2MDUgMzguMjAyMDksLTYyLjc5MDEgMC4yNDMzNSwtMy41Njk0OCAwLjE2MTksLTcuMDg0NTUgLTAuMDY1MywtMTAuNTY4MTggMjAuNTM3MjIsLTkuNTcxMTkgMzYuNTI0MDcsLTI3LjE0Mjk2IDQzLjUwNzUxLC00OC44NjA0NyAyMC41MDE4NiwxNC4zMzAzMSAzMy4yNTk3OSwzOC4yOTAyOCAzMS40NzA1Niw2NC41MzU2OCB6IE0gMTEyLjk2NjM1LDE4MC4yNzc1NiBjIDkuODIyMDIsNC45NTc5NiAyMC43OTE5Nyw4LjEwNTQ4IDMyLjQ5NTAzLDguOTAzMzIgMTEuNzAzMDgsMC43OTc4NCAyMi45OTkxNywtMC44MzE4OCAzMy40MDI3LC00LjQxMDg2IDAuMDU0NywyLjIwODg5IDAuMDQ1LDQuNDMzMzQgLTAuMTA4MjUsNi42ODA2NSAtMS43MjIwNCwyNS4yNTk3NCAtMTYuNDc2MzIsNDYuNjU1NzEgLTM3LjQzMDY2LDU4LjM5OTIxIC0xOS4xNjYzOCwtMTQuNDgyODYgLTMwLjg4MDU4LC0zNy42ODA0NSAtMjkuMTU4NjMsLTYyLjkzODgyIDAuMTUzMTcsLTIuMjQ3NDggMC40NDU0MSwtNC40NTI2OSAwLjc5OTQxLC02LjYzMzUzIHogbSAzNi42MzEsLTUxLjc2NTI1IGMgMTUuMjQ4NzYsMTEuNTIxMyAyNS43NjU4NywyOC41NjU5MyAyOC41NjY2Miw0Ny43NzcxNSAtOS45Mzk1MiwzLjc0NzIzIC0yMC44MjEzNyw1LjU1MjY5IC0zMi4xNDk2NCw0Ljc4MDQxIC0xMS4zMjgyNSwtMC43NzIyOSAtMjEuODY0NCwtNC4wMzc3OCAtMzEuMjAzMDUsLTkuMTA0NDggNS4zODE2NiwtMTguNjQ5NjkgMTguMTE0NzUsLTM0LjEwNzQzIDM0Ljc4NjA0LC00My40NTI2NCB6IG0gLTQyLjA0NzI2LDM4Ljk2NDA3IEMgOTEuMDgzNjAxLDE1NS45NjQ3NCA3OS42MDkwOTksMTM4LjI1ODE4IDc2LjY3MTA4MSwxMTguMTA5MyBjIDkuOTM5NjYsLTMuNzQ5MDQgMjAuODIxNTA2LC01LjU1NDUzIDMyLjE0OTc2OSwtNC43ODIyNSAxMi4xNTMwMiwwLjgyODUxIDIzLjQwNDIsNC41MDQ4IDMzLjIyNDE4LDEwLjIyODc4IC0xNi4xNjY5MSwxMC4xMDUyNiAtMjguNTczMSwyNS41MDg5IC0zNC40OTUwNCw0My45MjE5MyB6IG0gNTAuMjAyMDIsLTQyLjg1MTE2IGMgMTAuNTA1OTUsLTQuMzM4MzMgMjIuMTUyNDIsLTYuNDUzNTcgMzQuMzA0OTksLTUuNjI1MDkgMTEuMzI3NzksMC43NzIyNSAyMS44NjQ0Miw0LjAzNzc4IDMxLjIwMzA3LDkuMTA0NDkgLTUuNjQzNTMsMTkuNTYxNTEgLTE5LjQxMTM1LDM1LjU0NzIyIC0zNy4yOTMyMiw0NC43MTk1NSAtMy4zNjc3OCwtMTkuMDQ5NjIgLTEzLjU2ODg4LC0zNS45OTQ0NyAtMjguMjE0NzQsLTQ4LjIwMDM0IHogTSA3Ni4wNzk4ODcsMTAyLjk0MjU3IGMgMi43NDQ4MTcsLTQwLjI2MjQyNyAzOC41ODQ2NjMsLTcwLjcyODc0IDc5Ljg5MDk0MywtNjcuOTEyNzYgNDEuMzA2MjgsMi44MTU5NzkgNzIuNjc5NzgsMzcuODY0NDM4IDY5LjkzNDk2LDc4LjEyNjg2IC0wLjE1MzE3LDIuMjQ3NDkgLTAuNDQ1NCw0LjQ1MjcgLTAuNzk5NCw2LjYzMzU0IC05LjgyMjAyLC00Ljk1Nzk2IC0yMC43OTE5NywtOC4xMDU0OSAtMzIuNDk1MDMsLTguOTAzMzIgLTE1LjE3MDQ4LC0xLjAzNDIyIC0yOS42MzMyNSwyLjAzODk0IC00Mi4zNjY2Miw4LjEzOTM4IC0xMS43ODc2NywtNy43NzIwMyAtMjUuNjk5NTQsLTEyLjc3OTY2IC00MC44NzAwMiwtMTMuODEzODggLTExLjcwMzA1NSwtMC43OTc4NCAtMjIuOTk5MTU0LDAuODMxODggLTMzLjQwMjY4OCw0LjQxMDg2IC0wLjA1NDczLC0yLjIwODg4IC0wLjA0NDk1LC00LjQzMzM1IDAuMTA4MjUzLC02LjY4MDY2IHogbSAtNy4yMTE2NzcsMTguNjMwNjUgYyAzLjk3MTU2MywyMi40NjI0OCAxNy40MjU0OCw0Mi4wNDUwNyAzNi40NzM4NSw1NC4zMTMwNSAtMC42OTc5NSwzLjQyMDI0IC0xLjI1NTY2LDYuODkxNjggLTEuNDk5MDIsMTAuNDYxNTMgLTEuODE3ODcsMjYuNjY1NDMgOS44OTY4MSw1MS4yMDE3MSAyOS4zMjcwNSw2Ny4zOTM3OCAtMTAuNTA1OTQsNC4zMzgzNyAtMjIuMTUyNDMsNi40NTM1OCAtMzQuMzA0OTg3LDUuNjI1MSBDIDU3LjU1ODgyMiwyNTYuNTUwNyAyNi4xODUzMjQsMjIxLjUwMjI1IDI4LjkzMDE0LDE4MS4yMzk4MyAzMC43MTkyMTUsMTU0Ljk5NjcyIDQ2LjYxMDg4NywxMzIuOTg5NDQgNjguODY4MDM1LDEyMS41NzIyOCBaIg0KICAgICBpZD0icGF0aDY3NjQwIg0KICAgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjIuNjA3NDQiIC8+PC9zdmc+DQo=",alt:"Gap between Domain Experts - Technical Knwoledge"}),N.createElement(L.Mo,{className:"wide-feature-text"},N.createElement("h3",null,"Common Language (DSL)"),N.createElement(D.p,null,"A common language closes the gap between:"),N.createElement(D.ul,null,"\n",N.createElement(D.li,null,"\n",N.createElement("strong",null,"Domain Experts"),"\n"),"\n",N.createElement(D.li,null,"\n",N.createElement("strong",null,"Technical Experts"),"\n"),"\n",N.createElement(D.li,null,"Working ",N.createElement("strong",null,"Software & Tests")),"\n"))),N.createElement(L.YZ,null,N.createElement(L.vk,{src:C,alt:"",width:"300px",className:"only-small"}),N.createElement(L.Mo,{className:"wide-feature-text"},N.createElement("h3",null,"ZenWave SDK"),N.createElement(D.p,null,"Accelerate your development ",N.createElement("strong",null,"Converting your Models")," into ",N.createElement("strong",null,"Software Artifacts:")),N.createElement(D.ul,null,"\n",N.createElement(D.li,null,"API Definitions: OpenAPI, AsyncAPI..."),"\n",N.createElement(D.li,null,"SpringBoot/SpringCloud Backend..."),"\n",N.createElement(D.li,null,"API Testing: KarateDSL, Spring WebTestClient..."),"\n")),N.createElement(L.vk,{src:C,alt:"",width:"300px",className:"only-wide"})))),N.createElement(L.X_,null,N.createElement("section",null,N.createElement("div",{className:"home-links"},N.createElement("div",null,N.createElement("a",{href:"/docs/domain-modeling/business-domain-modeling"},"Domain Modeling")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/event-driven-design/zenwave-domain-language"},"ZDL Modeling Language")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/zenwave-sdk"},"ZenWave SDK"))))),N.createElement(L.X_,{className:"home-screenshots"},N.createElement("h2",null,"A Domain Language Designed for Event-Driven Architectures"),N.createElement(L.Ee,{src:T.Z,alt:"Event Storming"}),N.createElement("h2",null,"... And Bounded Context Mapping"),N.createElement(L.Ee,{src:w.Z,alt:"Bounded Context Mapping with ZDL",width:"100%"}),N.createElement("h2",null,"Can be read as documentation"),N.createElement(L.Ee,{src:i.Z}),N.createElement("h2",null,"And easily converted into working software & tests"),N.createElement(L.Ee,{src:E})),N.createElement(L.X_,null,N.createElement("section",null,N.createElement("div",{className:"home-links"},N.createElement("div",null,N.createElement("a",{href:"/docs/domain-modeling/business-domain-modeling"},"Domain Modeling")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/event-driven-design/zenwave-domain-language"},"ZDL Modeling Language")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/zenwave-sdk"},"ZenWave SDK"))))))}var O=function(M){void 0===M&&(M={});const{wrapper:D}=Object.assign({},(0,j.ah)(),M.components);return D?N.createElement(D,M,N.createElement(e,M)):e(M)};function c(M){let{children:D}=M;return D}function t(M){return N.createElement(c,M,N.createElement(O,M))}},16376:function(M,D,I){I.d(D,{d2:function(){return N.d},zx:function(){return y},L0:function(){return w},$s:function(){return O},VS:function(){return c},gT:function(){return t},P7:function(){return E},Gz:function(){return i},S:function(){return W},VM:function(){return n},sd:function(){return Y},kW:function(){return a},$D:function(){return s},DH:function(){return U},vC:function(){return S},LR:function(){return x},Ee:function(){return m},Bk:function(){return B},Nm:function(){return Z},X_:function(){return C.X},YZ:function(){return p},vk:function(){return h},BW:function(){return b},Mo:function(){return v}});var N=I(63585),j=I(27378),g=I(87573),L=I(30294);const A=M=>{let{background:D,backgroundHover:I,on:N}=M;return()=>(0,L.ivY)(["background-color:",";color:",";&:hover:not(:disabled){background-color:",";color:",";}&:active:not(:disabled){background-color:",";color:",";}"],D,N,I,N,I,N)},u=L.ZPm.buttonBox.withConfig({displayName:"Button__InnerButton",componentId:"sc-1qxez5q-0"})(["appearance:none;border-radius:base;transition:base;font-weight:500;border:0;display:inline-flex;align-items:center;cursor:pointer;font-size:16;padding:2 3;text-decoration:none !important;&:disabled{opacity:0.5;cursor:default;}&[data-variant='primary']{","}&[data-variant='success']{","}&[data-variant='danger']{","}&[data-variant='neutral']{","}"],A({background:"primary-600",backgroundHover:"primary-700",on:"white"}),A({background:"green-600",backgroundHover:"green-700",on:"white"}),A({background:"red-600",backgroundHover:"red-700",on:"white"}),A({background:"gray-300",backgroundHover:"gray-400",on:"black"})),y=j.forwardRef(((M,D)=>{let{variant:I="primary",children:N,...L}=M;return j.createElement(g.z,{ref:D,"data-variant":I},(M=>j.createElement(u,Object.assign({},M,L),N)))}));I(23824),I(31729);var z=I(63681),C=I(84234);const T=L.ZPm.box.withConfig({displayName:"Feature__InnerFeature",componentId:"sc-17n9iec-0"})(["border-left:1;border-left-style:dashed;border-left-color:layout-border;padding-left:4 !important;padding-right:5 !important;"]),w=j.forwardRef(((M,D)=>j.createElement(T,Object.assign({ref:D,col:{xs:1,md:1/3},px:2,pt:4,pb:{xs:2,md:5}},M)))),i=L.ZPm.h2.withConfig({displayName:"Feature__FeatureTitle",componentId:"sc-17n9iec-1"})(["margin:3 0;font-size:16;font-weight:500;border-left:1;border-color:primary-400;margin-left:",";padding-left:",";"],z.th.px(-9),z.th.px(9)),E=L.ZPm.p.withConfig({displayName:"Feature__FeatureText",componentId:"sc-17n9iec-2"})(["color:on-background-light;font-size:15;text-align:justify;margin:4 0;"]),e=L.ZPm.img.withConfig({displayName:"Feature__InnerFeatureImage",componentId:"sc-17n9iec-3"})(["margin-top:3;"]),O=j.forwardRef(((M,D)=>j.createElement(e,Object.assign({ref:D,width:48,height:48},M)))),c=j.forwardRef(((M,D)=>j.createElement(C.X,Object.assign({ref:D,row:!0,my:-4,px:3},M)))),t=j.forwardRef(((M,D)=>j.createElement(L.x.section,Object.assign({ref:D,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},M)))),x=L.ZPm.h1Box.withConfig({displayName:"Hero__HeroTitle",componentId:"sc-18tbum5-0"})(["font-size:38;font-weight:600;line-height:1.2;letter-spacing:-1.12px;margin:0 0 2;"," ",""],(0,z.up)("md",(0,L.ivY)(["padding-top:4;font-size:48;"])),(0,z.up)("xl",(0,L.ivY)(["font-size:60;"]))),S=L.ZPm.pBox.withConfig({displayName:"Hero__HeroTeaser",componentId:"sc-18tbum5-1"})(["font-size:18;margin:3 0;"," ",""],(0,z.up)("md",(0,L.ivY)(["font-size:20;"])),(0,z.up)("xl",(0,L.ivY)(["font-size:24;"]))),Q=(0,L.ZPm)(C.X).withConfig({displayName:"Hero__InnerHero",componentId:"sc-18tbum5-2"})(["background-repeat:no-repeat;background-position:top -5% center;background-size:100% auto;padding-top:65%;text-align:center;"," ",""],(0,z.up)("md",(0,L.ivY)(["padding-top:0;margin-top:5;background-position:center right;background-size:58% auto;min-height:400;text-align:left;"])),(0,z.up)("xl",(0,L.ivY)(["margin-top:6;"]))),n=j.forwardRef(((M,D)=>{let{backgroundImageURL:I,...N}=M;return j.createElement(Q,Object.assign({ref:D,backgroundImage:"url("+I+")"},N))})),s=j.forwardRef(((M,D)=>j.createElement(L.x.div,Object.assign({ref:D,w:{md:.5}},M)))),U=L.ZPm.sectionBox.withConfig({displayName:"Hero__HeroSection",componentId:"sc-18tbum5-3"})(["overflow:hidden;padding-top:2;padding-bottom:5;"]),a=j.forwardRef(((M,D)=>j.createElement(L.x.div,Object.assign({ref:D,row:!0,m:-2,justifyContent:{xs:"center",md:"initial"}},M)))),Y=j.forwardRef(((M,D)=>j.createElement(L.x.div,Object.assign({ref:D,col:"auto",p:2},M))));var k=I(24956);const l=L.ZPm.div.withConfig({displayName:"Image__ImageContainer",componentId:"sc-1b0134e-0"})(["text-align:",";"],(M=>M.align)),o=L.ZPm.img.withConfig({displayName:"Image__InnerImage",componentId:"sc-1b0134e-1"})(["display:inline-block;"]),r=(M,D)=>"dark"===D?M.dark||M.src:M.light||M.src,m=j.forwardRef(((M,D)=>j.createElement(l,{align:M.align||"center",className:M.visible},j.createElement(o,Object.assign({ref:D,src:r(M,(0,k.If)()[0])},M)))));I(15239),I(83160);const d=(0,L.ZPm)(L.x.cite).withConfig({displayName:"Quote__Cite",componentId:"sc-12i53kz-0"})(["display:block;text-align:right;margin-top:1rem;"]),B=j.forwardRef(((M,D)=>j.createElement(L.x.blockquote,Object.assign({ref:D,className:"quote"},M)))),Z=j.forwardRef(((M,D)=>j.createElement(d,Object.assign({ref:D},M)))),b=j.forwardRef(((M,D)=>j.createElement(L.x.section,Object.assign({ref:D,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},M)))),p=L.ZPm.divBox.withConfig({displayName:"WideFeature",componentId:"sc-1ak5yjf-0"})(["display:block;",")"],(0,z.up)("md",(0,L.ivY)(["margin:0 20px;border-top:1px dashed;border-bottom:1px dotted;border-color:var(--xstyled-colors-layout-border,#d4d4d8);display:grid;grid-template-columns:1fr 1fr 1fr;"]))),v=L.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureText",componentId:"sc-1ak5yjf-1"})(["padding:1rem;grid-column-start:span 2;font-size:18;"," ",""],(0,z.up)("md",(0,L.ivY)(["font-size:20;padding:3rem;padding-top:2rem;"])),(0,z.up)("xl",(0,L.ivY)(["font-size:24;"]))),G=L.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureImageContainer",componentId:"sc-1ak5yjf-2"})(["padding:1rem;text-align:center;"]),f=L.ZPm.imgBox.withConfig({displayName:"WideFeature__InnerImage",componentId:"sc-1ak5yjf-3"})(["display:inline-block;"]),P=(M,D)=>"dark"===D?M.dark||M.src:M.light||M.src,h=j.forwardRef(((M,D)=>j.createElement(G,{className:M.className},j.createElement(f,Object.assign({ref:D,src:P(M,(0,k.If)()[0])},M))))),W=M=>{let{gist:D,file:I}=M;const N=(0,j.useRef)(null);(0,j.useEffect)((()=>{(async()=>{const M=I?"https://gist.githubusercontent.com/"+D+"/raw/"+I:"https://gist.githubusercontent.com/"+D+"/raw";try{const D=await fetch(M);if(D.ok){const M=22*(await D.text()).split("\n").length+40;N.current&&(N.current.style.height=M+"px")}else console.error("Failed to fetch Gist content")}catch(j){console.error("Error fetching Gist content:",j)}})()}),[D,I]);const g=I?"https://gist.github.com/"+D+".pibb?file="+I:"https://gist.github.com/"+D+".pibb",L=I?"https://gist.github.com/"+D+"#file-"+I.replace(/\./g,"-").toLowerCase():"https://gist.github.com/"+D;return j.createElement("div",{style:{border:"1px solid #ccc",padding:"10px 0 0 0",borderRadius:"5px"}},I&&j.createElement("header",{style:{marginLeft:"10px",fontStyle:"oblique"}},j.createElement("span",{role:"img","aria-label":"source code"},"🗒️"),j.createElement("a",{href:L,target:"_blank",rel:"noopener noreferrer"},I)),j.createElement("iframe",{title:I,ref:N,src:g,width:"100%",frameBorder:"0",style:{margin:"0",padding:"0"}}))}},28151:function(M,D,I){D.Z=I.p+"static/bounded-context-mapping-e7606a1679b367a38b685ca1bb77ef45.svg"},29934:function(M,D,I){D.Z=I.p+"static/EventStorming-ZDL-Mapping-cb9c987d5d0aff110c5890481034ae20.png"},53468:function(M,D,I){D.Z=I.p+"static/plugin-screenshot-a27ba0713f3d33cf5b761c45e4c3debc.png"}}]); -//# sourceMappingURL=component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js.map b/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js.map deleted file mode 100644 index 4b5401b..0000000 --- a/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-19a290fe199802416e0c.js","mappings":"qMAAA,EAAe,IAA0B,8DCAzC,EAAe,IAA0B,+DCAzC,EAAe,IAA0B,4DCAzC,2sJCAA,EAAe,IAA0B,2D,iCCAzC,EAAe,IAA0B,oEC0BzC,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,EAAG,IACHC,GAAI,KACJC,GAAI,OACHC,EAAAA,EAAAA,MAAsBP,EAAMQ,YAC/B,OAAOC,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoBE,EAAAA,GAAa,KAAMF,EAAAA,cAAoBG,EAAAA,GAAM,CACjHC,mBAAoBC,GACnBL,EAAAA,cAAoBM,EAAAA,GAAU,KAAMN,EAAAA,cAAoBO,EAAAA,GAAW,KAAM,kBAAmBP,EAAAA,cAAoB,MAAO,wBAAyB,OAAQA,EAAAA,cAAoBQ,EAAAA,GAAY,KAAM,yEAA0ER,EAAAA,cAAoBS,EAAAA,GAAgB,KAAMT,EAAAA,cAAoBU,EAAAA,GAAY,KAAMV,EAAAA,cAAoBW,EAAAA,GAAQ,CACrXC,QAAS,UACTC,GAAIC,EAAAA,KACJC,GAAI,mBACJC,MAAO,CACLC,YAAa,QAEdjB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,gBAAiBK,EAAAA,cAAoBW,EAAAA,GAAQ,CACvFE,GAAIC,EAAAA,KACJC,GAAI,0BACHf,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,yBAA0BK,EAAAA,cAAoBkB,EAAAA,GAAgB,KAAMlB,EAAAA,cAAoBmB,EAAAA,GAAa,KAAMnB,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAC1NC,IC7CJ,2qHD8CMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,yBAA0BvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,gFAAiFK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAC1SL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IAAKI,IACH1B,EAAAA,cAAoBqB,EAAAA,GAAc,CACpCL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IE3DJ,+rDF4DMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,eAAgBvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,kFAAmFK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAClSC,IG7DJ,+tIH8DMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,wBAAyBvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,gHAAiHK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CACzUC,II/DJ,2gPJgEMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,8BAA+BvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,mGAAoGK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAClUL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IKtEJ,25HLuEMtB,EAAAA,cAAoBqB,EAAAA,GAAc,CACpCL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IM7EJ,u3YN8EMtB,EAAAA,cAAoBqB,EAAAA,GAAc,CACpCL,MAAO,CACLS,QAAS,YACNlC,EAAMyB,OAEXM,IAAKK,IACH3B,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,aAAcvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,0DAA2DK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CACxQC,IOrFJ,u7RPsFMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,eAAgBvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,wGAAyGK,EAAAA,cAAoB4B,EAAAA,GAAoB,KAAM5B,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoB6B,EAAAA,GAAa,KAAM7B,EAAAA,cAAoB8B,EAAAA,GAAkB,CACzZR,IAAKS,EACLC,IAAK,uDACLC,UAAW,eACTjC,EAAAA,cAAoBkC,EAAAA,GAAiB,CACvCD,UAAW,qBACVjC,EAAAA,cAAoB,KAAM,KAAM,yBAA0BA,EAAAA,cAAoBR,EAAYI,GAAI,KAAM,KAAMI,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,SAAUG,EAAAA,cAAoB,SAAU,KAAM,wBAAyB,oBAAqBA,EAAAA,cAAoB,SAAU,KAAM,sCAAuC,KAAMA,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,0BAA2BG,EAAAA,cAAoB,SAAU,KAAM,wCAAyC,OAAQA,EAAAA,cAAoB8B,EAAAA,GAAkB,CAClgBR,IAAKS,EACLC,IAAK,uDACLC,UAAW,eACRjC,EAAAA,cAAoB6B,EAAAA,GAAa,KAAM7B,EAAAA,cAAoB8B,EAAAA,GAAkB,CAChFR,IQjGJ,6xIRkGIU,IAAK,qDACHhC,EAAAA,cAAoBkC,EAAAA,GAAiB,CACvCD,UAAW,qBACVjC,EAAAA,cAAoB,KAAM,KAAM,yBAA0BA,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,6CAA8CK,EAAAA,cAAoBR,EAAYI,GAAI,KAAM,KAAMI,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,KAAMG,EAAAA,cAAoB,SAAU,KAAM,kBAAmB,MAAO,KAAMA,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,KAAMG,EAAAA,cAAoB,SAAU,KAAM,qBAAsB,MAAO,KAAMA,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,WAAYG,EAAAA,cAAoB,SAAU,KAAM,qBAAsB,QAASA,EAAAA,cAAoB6B,EAAAA,GAAa,KAAM7B,EAAAA,cAAoB8B,EAAAA,GAAkB,CACnnBR,IAAKa,EACLH,IAAK,GACLI,MAAO,QACPH,UAAW,eACTjC,EAAAA,cAAoBkC,EAAAA,GAAiB,CACvCD,UAAW,qBACVjC,EAAAA,cAAoB,KAAM,KAAM,eAAgBA,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,+BAAgCK,EAAAA,cAAoB,SAAU,KAAM,0BAA2B,SAAUA,EAAAA,cAAoB,SAAU,KAAM,wBAAyBA,EAAAA,cAAoBR,EAAYI,GAAI,KAAM,KAAMI,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,yCAA0C,KAAMG,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,qCAAsC,KAAMG,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,mDAAoD,OAAQG,EAAAA,cAAoB8B,EAAAA,GAAkB,CAC5mBR,IAAKa,EACLH,IAAK,GACLI,MAAO,QACPH,UAAW,iBACNjC,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoB,UAAW,KAAMA,EAAAA,cAAoB,MAAO,CAChHiC,UAAW,cACVjC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC3DqC,KAAM,kDACL,oBAAqB,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CACxFqC,KAAM,qDACL,0BAA2B,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC9FqC,KAAM,qBACL,mBAAoBrC,EAAAA,cAAoBC,EAAAA,GAAiB,CAC1DgC,UAAW,oBACVjC,EAAAA,cAAoB,KAAM,KAAM,6DAA8DA,EAAAA,cAAoBsC,EAAAA,GAAO,CAC1HhB,IAAKiB,EAAAA,EACLP,IAAK,mBACHhC,EAAAA,cAAoB,KAAM,KAAM,mCAAoCA,EAAAA,cAAoBsC,EAAAA,GAAO,CACjGhB,IAAKkB,EAAAA,EACLR,IAAK,mCACLI,MAAO,SACLpC,EAAAA,cAAoB,KAAM,KAAM,gCAAiCA,EAAAA,cAAoBsC,EAAAA,GAAO,CAC9FhB,IAAKmB,EAAAA,IACHzC,EAAAA,cAAoB,KAAM,KAAM,sDAAuDA,EAAAA,cAAoBsC,EAAAA,GAAO,CACpHhB,IAAKoB,KACF1C,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoB,UAAW,KAAMA,EAAAA,cAAoB,MAAO,CAC9GiC,UAAW,cACVjC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC3DqC,KAAM,kDACL,oBAAqB,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CACxFqC,KAAM,qDACL,0BAA2B,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC9FqC,KAAM,qBACL,mBACJ,CAKD,MAJA,SAAoB9C,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAOoD,QAASC,GAAanD,OAAOC,OAAO,CAAC,GAAGI,EAAAA,EAAAA,MAAsBP,EAAMQ,YAC3E,OAAO6C,EAAY5C,EAAAA,cAAoB4C,EAAWrD,EAAOS,EAAAA,cAAoBV,EAAmBC,IAAUD,EAAkBC,EAC7H,EStID,SAASsD,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiBzD,GACvC,OAAOS,EAAAA,cAAoB6C,EAActD,EAAOS,EAAAA,cAAoBiD,EAAqB1D,GAC1F,C,opBCfD,MAAMqB,EACJmC,IAAAA,IAAC,WAAEG,EAAF,gBAAcC,EAAd,GAA+BC,GAAhCL,EAAAA,MACA,KACSM,EAAAA,EAAAA,KAAP,mJACsBH,EACXE,EAGaD,EACXC,EAIWD,EACXC,EAbf,EAkBIE,EAAcC,EAAAA,IAAAA,UAAAA,WAAH,+DAAGA,CAAH,8VAmBX3C,EAAQ,CACRsC,WAAY,cACZC,gBAAiB,cACjBC,GAAI,UAKJxC,EAAQ,CACRsC,WAAY,YACZC,gBAAiB,YACjBC,GAAI,UAKJxC,EAAQ,CACRsC,WAAY,UACZC,gBAAiB,UACjBC,GAAI,UAKJxC,EAAQ,CACRsC,WAAY,WACZC,gBAAiB,WACjBC,GAAI,WAKGzC,EAASX,EAAAA,YACpB,CAAC,EAA6CwD,KAAS,IAAtD,QAAE5C,EAAU,UAAZ,SAAuBkC,KAAavD,GAAiBkE,EACpD,OACEzD,EAAAA,cAAC0D,EAAAA,EAAD,CAAeF,IAAKA,EAAK,eAAc5C,IACnC+C,GACA3D,EAAAA,cAACsD,EAAD,iBAAiBK,EAAiBpE,GAC/BuD,IAJT,I,4CCtEJ,MAAMc,EAAeL,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,kIAQLnC,EAAUpB,EAAAA,YAAiB,CAACT,EAAOiE,IAC9CxD,EAAAA,cAAC4D,EAAD,eACEJ,IAAKA,EACLK,IAAK,CAAEC,GAAI,EAAGC,GAAI,EAAI,GACtBC,GAAI,EACJC,GAAI,EACJC,GAAI,CAAEJ,GAAI,EAAGC,GAAI,IACbxE,MAIKgC,EAAegC,EAAAA,IAAAA,GAAAA,WAAH,iEAAGA,CAAH,qHAMRY,EAAAA,GAAAA,IAAO,GACNA,EAAAA,GAAAA,GAAM,IAGX3C,EAAc+B,EAAAA,IAAAA,EAAAA,WAAH,gEAAGA,CAAH,2EAOlBa,EAAoBb,EAAAA,IAAAA,IAAAA,WAAH,sEAAGA,CAAH,mBAIVlC,EAAerB,EAAAA,YAAiB,CAACT,EAAOiE,IACnDxD,EAAAA,cAACoE,EAAD,eAAmBZ,IAAKA,EAAKpB,MAAO,GAAIiC,OAAQ,IAAQ9E,MAG7C4B,EAAcnB,EAAAA,YAAiB,CAACT,EAAOiE,IAClDxD,EAAAA,cAACC,EAAAA,EAAD,eAAiBuD,IAAKA,EAAKc,KAAG,EAACC,IAAK,EAAGP,GAAI,GAAOzE,MAGvC2B,EAAiBlB,EAAAA,YAAiB,CAACT,EAAOiE,IACrDxD,EAAAA,cAACwE,EAAAA,EAAAA,QAAD,eACEhB,IAAKA,EACLiB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRrF,MCzDKgB,EAAYgD,EAAAA,IAAAA,MAAAA,WAAH,2DAAGA,CAAH,8FAOlBsB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,kCAQFwB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAQO7C,EAAa+C,EAAAA,IAAAA,KAAAA,WAAH,4DAAGA,CAAH,qCAInBsB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAOFwB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAQAyB,GAAYvB,EAAAA,EAAAA,KAAOtD,EAAAA,GAAV8E,WAAA,2DAAGxB,CAAH,wIAOXsB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,2HAYFwB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAQOlD,EAAOH,EAAAA,YAClB,CAAC,EAAkCwD,KAAS,IAA3C,mBAAEpD,KAAuBb,GAAiBwD,EACzC,OACE/C,EAAAA,cAAC8E,EAAD,eACEtB,IAAKA,EACLwB,gBAAe,OAAS5E,EAAT,KACXb,GAJR,IAUSe,EAAWN,EAAAA,YAAiB,CAACT,EAAOiE,IACxCxD,EAAAA,cAACwE,EAAAA,EAAAA,IAAD,eAAOhB,IAAKA,EAAKyB,EAAG,CAAElB,GAAI,KAAWxE,MAGjCW,EAAcqD,EAAAA,IAAAA,WAAAA,WAAH,6DAAGA,CAAH,qDAMX9C,EAAiBT,EAAAA,YAAiB,CAACT,EAAOiE,IAEnDxD,EAAAA,cAACwE,EAAAA,EAAAA,IAAD,eACEhB,IAAKA,EACLc,KAAG,EACHY,GAAI,EACJC,eAAgB,CAAErB,GAAI,SAAUC,GAAI,YAChCxE,MAKGmB,EAAaV,EAAAA,YAAiB,CAACT,EAAOiE,IAC1CxD,EAAAA,cAACwE,EAAAA,EAAAA,IAAD,eAAOhB,IAAKA,EAAKK,IAAI,OAAOlE,EAAG,GAAOJ,M,eCvG/C,MAAM6F,EAAiB7B,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,qBACHhE,GAASA,EAAM8F,QAE1BC,EAAa/B,EAAAA,IAAAA,IAAAA,WAAH,6DAAGA,CAAH,2BAGVjC,EAAM,CAAC/B,EAAOgG,IACK,SAAdA,EAAsBhG,EAAMiG,MAAQjG,EAAM+B,IAAM/B,EAAMkG,OAASlG,EAAM+B,IAEnEgB,EAAQtC,EAAAA,YAAiB,CAACT,EAAOiE,IAC1CxD,EAAAA,cAACoF,EAAD,CAAgBC,MAAO9F,EAAM8F,OAAS,SAAUpD,UAAW1C,EAAMmG,SAC7D1F,EAAAA,cAACsF,EAAD,eAAY9B,IAAKA,EAAKlC,IAAKA,EAAI/B,GAAOoG,EAAAA,EAAAA,MAAe,KAASpG,O,kBCZtE,MAAMqG,GAAOrC,EAAAA,EAAAA,KAAOiB,EAAAA,EAAAA,MAAVO,WAAA,uDAAGxB,CAAH,qDAMGsC,EAAQ7F,EAAAA,YAAiB,CAACT,EAAOiE,IACnCxD,EAAAA,cAACwE,EAAAA,EAAAA,WAAD,eAAchB,IAAKA,EAAKvB,UAAU,SAAY1C,MAG5CuG,EAAc9F,EAAAA,YAAiB,CAACT,EAAOiE,IACzCxD,EAAAA,cAAC4F,EAAD,eAAMpC,IAAKA,GAASjE,MCZlBqC,EAAqB5B,EAAAA,YAAiB,CAACT,EAAOiE,IACvDxD,EAAAA,cAACwE,EAAAA,EAAAA,QAAD,eACIhB,IAAKA,EACLiB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRrF,MAICsC,EAAc0B,EAAAA,IAAAA,OAAAA,WAAH,uDAAGA,CAAH,wBAEpBsB,EAAAA,EAAAA,IACE,MACAxB,EAAAA,EAAAA,KAFC,CAAD,4KAaOnB,EAAkBqB,EAAAA,IAAAA,OAAAA,WAAH,wEAAGA,CAAH,gEAKxBsB,EAAAA,EAAAA,IACE,MACAxB,EAAAA,EAAAA,KAFC,CAAD,kDASFwB,EAAAA,EAAAA,IACE,MACAxB,EAAAA,EAAAA,KAFC,CAAD,oBAOA0C,EAA4BxC,EAAAA,IAAAA,OAAAA,WAAH,kFAAGA,CAAH,qCAKzB+B,EAAa/B,EAAAA,IAAAA,OAAAA,WAAH,mEAAGA,CAAH,2BAKVjC,EAAM,CAAC/B,EAAOgG,IACG,SAAdA,EAAsBhG,EAAMiG,MAAQjG,EAAM+B,IAAM/B,EAAMkG,OAASlG,EAAM+B,IAEjEQ,EAAmB9B,EAAAA,YAAiB,CAACT,EAAOiE,IACrDxD,EAAAA,cAAC+F,EAAD,CAA2B9D,UAAW1C,EAAM0C,WAC1CjC,EAAAA,cAACsF,EAAD,eAAY9B,IAAKA,EAAKlC,IAAKA,EAAI/B,GAAOoG,EAAAA,EAAAA,MAAe,KAASpG,OC9D9DyG,EAAOjD,IAAqB,IAApB,KAAEkD,EAAF,KAAQC,GAAWnD,EAC/B,MAAMoD,GAAYC,EAAAA,EAAAA,QAAO,OAwBzBC,EAAAA,EAAAA,YAAU,KAtBeC,WACvB,MAAMC,EAAML,EAAI,sCAC0BD,EAD1B,QACsCC,EADtC,sCAE0BD,EAF1B,OAGhB,IACE,MAAMO,QAAiBC,MAAMF,GAC7B,GAAIC,EAASE,GAAI,CACf,MAGMrC,EADa,UAFAmC,EAASG,QACLC,MAAM,MAAMC,OAEK,GACpCV,EAAUW,UACZX,EAAUW,QAAQ9F,MAAMqD,OAAYA,EAApC,KANJ,MASE0C,QAAQC,MAAM,+BAIjB,CAFC,MAAOA,GACPD,QAAQC,MAAM,+BAAgCA,EAC/C,GAIDC,EAAkB,GACjB,CAAChB,EAAMC,IAEV,MAAM5E,EAAM4E,EAAI,2BACeD,EADf,cACiCC,EADjC,2BAEeD,EAFf,QAIViB,EAAUhB,EAAI,2BACWD,EADX,SACwBC,EAAKiB,QAAQ,MAAO,KAAKC,cADjD,2BAEWnB,EAE/B,OACEjG,EAAAA,cAAAA,MAAAA,CAAKgB,MAAO,CAAEqG,OAAQ,iBAAkBC,QAAS,aAAcC,aAAc,QAC1ErB,GACClG,EAAAA,cAAAA,SAAAA,CAAQgB,MAAO,CAAEwG,WAAY,OAAQC,UAAW,YAC9CzH,EAAAA,cAAAA,OAAAA,CAAM0H,KAAK,MAAM,aAAW,eAA5B,OACA1H,EAAAA,cAAAA,IAAAA,CAAGqC,KAAM6E,EAASS,OAAO,SAASC,IAAI,uBACnC1B,IAIPlG,EAAAA,cAAAA,SAAAA,CACE6H,MAAO3B,EACP1C,IAAK2C,EACL7E,IAAKA,EACLc,MAAM,OACN0F,YAAY,IACZ9G,MAAO,CAAE+G,OAAQ,IAAKT,QAAS,OAhBrC,C,wBCxCF,IAAe,IAA0B,qE,wBCAzC,IAAe,IAA0B,uE,wBCAzC,IAAe,IAA0B,+D","sources":["webpack://website/./images/hero-background.png","webpack://website/./static/logos/zenwave-sdk-dark.png","webpack://website/./static/logos/asyncapi-logo.png","webpack://website/./images/home/spiral.svg","webpack://website/./images/home/laptop-gears.svg","webpack://website/./pages/plugin-run-screenshot.png","webpack://website/./pages/index.mdx","webpack://website/./static/logos/conceptual-model.svg","webpack://website/./static/logos/spring-boot.svg","webpack://website/./static/logos/ddd.svg","webpack://website/./images/event-driven-architectures-logo.svg","webpack://website/./static/logos/osi.svg","webpack://website/./static/logos/openapi-logo.svg","webpack://website/./static/logos/tdd.svg","webpack://website/./images/home/common-language.svg","webpack://website/../smooth-doc/src/templates/page.js","webpack://website/../smooth-doc/src/components/Button.js","webpack://website/../smooth-doc/src/components/Feature.js","webpack://website/../smooth-doc/src/components/Hero.js","webpack://website/../smooth-doc/src/components/Image.js","webpack://website/../smooth-doc/src/components/Quote.js","webpack://website/../smooth-doc/src/components/WideFeature.js","webpack://website/../smooth-doc/src/components/Gist.js","webpack://website/./images/home/bounded-context-mapping.svg","webpack://website/./pages/docs/DDD/images/EventStorming-ZDL-Mapping.png","webpack://website/./pages/plugin-screenshot.png"],"sourcesContent":["export default __webpack_public_path__ + \"static/hero-background-b6fccd4ea5501ab264bb1bdb7fbbf8ba.png\";","export default __webpack_public_path__ + \"static/zenwave-sdk-dark-44c70567cf17d96a54e9284837feac82.png\";","export default __webpack_public_path__ + \"static/asyncapi-logo-fe1db05dd2b15b8170701f43d18710a1.png\";","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgMjYwIDI2MCINCiAgIHdpZHRoPSIyNjAiDQogICBoZWlnaHQ9IjI2MCINCiAgIGlkPSJzdmc1MjkzNiINCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICA8ZGVmcw0KICAgICBpZD0iZGVmczUyOTQwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDE0NC4wNjM1MiwyMzEuMzg5MTYgYyAxOS40NDg4NSwtNC40MzA0NyAzOC4wNzMzMiwtMTMuNjAzNjcgNTMuNjc0MjcsLTI2LjIyMDczIDE3LjA2OTI1LC0xMy43NTM0NCAzMC4yNzQ0NSwtMzEuNDIxMTUgMzguNDI0OTgsLTUwLjYyMDE2IDguMTg1MiwtMTkuMjE5MzQgMTEuMjMxMTgsLTM5Ljg0MTQ1IDguNzA2MzIsLTU5LjM1NjUyMiAtMi40NzIyOCwtMTkuNTkzNjIzIC0xMC43MjkxMSwtMzcuNjk5ODY2IC0yMy4zMzQ4OSwtNTIuNTg1ODY5IC0zLjAwMDc3LDIuMzI4NjgzIC01Ljk5MjU4LDQuNjUwNDI2IC04Ljk4NTY2LDYuOTc5NDg3IDExLjE5NzY0LDEzLjI2NTI1OSAxOC42ODkzNywyOS4yODEyNSAyMS4xMDgyNSw0Ni42ODc2MzMgMi42MDUyNSwxOC4xMzkwMjEgLTAuMTI2NzcsMzcuMzg5NDMxIC03Ljc0NDg5LDU1LjMwODkwMSAtOC4wNjg2NiwxOS4wNDA3MyAtMjEuNjA2NjUsMzYuNDE4NjIgLTM5LjE1NTYyLDQ5LjMyODcyIC0xMy4zOTkxNCw5Ljg5Mzg5IC0yOC45NDQwMSwxNy4wNTIzNyAtNDUuMDc4NzUsMjAuNjAxNyAtMjAuMTM0OTksNC40Njk3MSAtNDAuOTcwMzMsMy4zODM3NCAtNTkuMjI1NjA4LC0zLjAzMzcyIEMgNjUuMzE2OTk1LDIxMi40OTM5MiA1MC42MjA0MzYsMjAxLjgyMDExIDQwLjgzNjM4NywxODcuNjAwMTUgMzMuNDU1NzUyLDE3Ni45MzMwOSAyOC45Mjk3MTksMTY0LjQyNDQyIDI3LjgyODQ3OCwxNTEuMjU0MjQgMjYuMzAzMzQyLDEzMy43ODIxNiAzMC42OTI3NDUsMTE1LjMzODQ5IDQwLjI4MDM2Miw5OS4wOTAxNSA0Ny44MTYzMzksODYuMjgxMDc2IDU4LjU2NTg2NCw3NC45NDc0NTggNzEuNTI5MjI4LDY2LjU4ODg3NiA4My43NzMyNjIsNTguNjQ0MjY2IDk3LjgzMTc0Miw1My40OTk1NzUgMTEyLjA0OTkyLDUxLjgzMTYzOSBjIDI0LjkxNzMxLC0yLjk4OTA0IDQ5LjcxODEzLDQuNTU1MDc2IDY1LjQ0MjU2LDIxLjA1OTM5NCA4Ljk2ODI0LDkuMzgxNjggMTQuNzIxNjgsMjEuNDI4MTM2IDE2LjE0MjI1LDM0LjQ2Njc5NyAxLjY0NjY3LDE0LjU4NTE0IC0yLjAyLDMwLjE0MjYxIC0xMC4zODI1Myw0My42MjYgLTYuNDE1MjIsMTAuMzc4MzYgLTE1LjU4NjgzLDE5LjM5MjgyIC0yNi41NTQ0OSwyNS42ODIxIC0xOS45MzQ2MSwxMS42NjA4MiAtNDQuOTc3MDIsMTIuODc5NjcgLTYzLjYzOTE2OSwzLjEwNTg1IC05LjQwOTAyNiwtNC44NjUwMiAtMTYuOTIzMjA3LC0xMi40MzkxMiAtMjEuMTM2MDY5LC0yMS43NzMyNyAtNC4yNDk5MjEsLTkuMjU0NzkgLTQuOTg3NDc3LC0yMC4wODkyNiAtMi4xNjkwMTQsLTMwLjQ4NjM3IDIuOTI4NTA0LC0xMC45MDA4MiA5LjY5MTA2MiwtMjEuMjEwMDUgMTkuNDMyODY3LC0yOC40NTQwNDMgOS4wNTM2MywtNi43ODQyMDIgMjAuMzg3MjA1LC0xMC41MjM2MTkgMzEuMzM2ODA1LC0xMC4wMzEzMjggMTIuODY3OTYsMC41MDc2NzYgMjQuNjYzODYsNi42MTQ2ODIgMzAuMDkyNDMsMTcuMjM1MTMxIDUuMjE0MywxMC4wMDQ1MiAzLjU0MjE0LDIzLjIyNjkxIC00LjkwNjA1LDMyLjc1NzU0IC01LjE0ODk1LDUuODI5NDcgLTEyLjg3MzI3LDkuNzg3NTMgLTIwLjYyMDI2LDkuNzQ0MzIgLTYuMzQzMTgsMC4wMTI3IC0xMi42MTkwNiwtMi41OTExNCAtMTUuNTMxMjQsLTcuNzI2ODQgLTIuNTMwMDUsLTQuMTc5MTUgLTEuODM0NjMsLTEwLjM1ODM0IDIuMzEwNDgsLTE0LjE2NDQ3IDEuODc0MTUsLTEuNTQ0MDggMy4zNTg3NiwtMS41OTQ3OCA1LjQwNjg2LC0wLjgzNDgxIDAuNDUzMTEsLTEuNDA4OTUgMC44ODY2MiwtMS45Nzc1NSAxLjMxNjE1LC0xLjcwNTAxIDEuODQzNTcsMi42NzU5NiAzLjE5Nyw1LjY1OTI4IDQuOTM1MSw4LjQwMzcxIDIuMTI4NDcsLTEuNzk2OTQgNC4xNDM4MSwtMy4yMDg0MiA0LjgyNzMzLC01LjkxMjA4IDEuMjIxMjMsLTQuODMxNjMgLTIuMjUwMzIsLTguNjY3MDYgLTYuMzUzNDEsLTEwLjYwMDYxIC01Ljk3Mzg3LC0yLjg2MTc0IC0xNC4wNzAwNCwtMC4xNDc1NiAtMTguNzQ5MTIsNC44NTY4NiAtNy4xMjgxODYsNy41MzA1NyAtOC4xNzM0MzUsMTguMzc4NjQgLTMuMzM1NDA3LDI2LjEyMDU2IDYuMTYwODY3LDEwLjIyMTkzIDIwLjE4NjI3NywxNC4wMzUyIDMyLjkxNTU4NywxMC44NTMxNCA4Ljg4Mzk3LC0yLjIwOTU3IDE2Ljk4OTIzLC03LjU2NTQ2IDIyLjYwMTAzLC0xNC42MzM2NCA2LjI1ODYzLC03LjgzMjcxIDkuNDY4OTUsLTE3LjQyMDM0IDkuMjc5MDQsLTI2LjYyNTc2IC0wLjE3MTMsLTEwLjI2NzIgLTQuNzM5ODMsLTE5LjgwMzc0OCAtMTIuMjUzMDIsLTI2LjU2NTk1NSBDIDEzOC41NDg0Miw3Ny42NjA5NzEgMTE1Ljk1OTA1LDc1LjE5NTEyOSA5Ni43MTIwNCw4My4zMTExMiA4Ni4zNjc4MDUsODcuNjA5NTk1IDc3LjE5MTQ1MSw5NC42NTMzMDEgNzAuNDQyMjQ2LDEwMy4yOTUyNyBjIC05LjA1NzM5MywxMS41Mjk1MSAtMTMuNzcxODgxLDI1LjU1MDgxIC0xMy40NjkwMzYsMzkuMDQ5OCAwLjMzNzcxNiwyMC4yOTA1NiAxMi40NzY0MDgsMzguMTE5OTQgMzAuODUwMDgyLDQ3LjExOTA2IDE0LjExNjk2OCw3LjA1MDQ1IDMxLjM0NjYwOCw5LjAzMjQyIDQ4LjA0MDc3OCw1LjY4MDk3IDEzLjg0ODQxLC0yLjc0MTkzIDI3LjEyMzMxLC05LjE4ODA4IDM4LjA5ODIxLC0xOC4yNDQ1OSAxOS4xOTI4MSwtMTUuNzk0MjMgMzAuNDI2NjMsLTM4LjgwMTE3IDMxLjEzMzA2LC02MS4zNDkxOCAwLjUwNTgsLTE0LjQzMjQ5IC0zLjM4NDIsLTI4LjQxNDY5NCAtMTEuMDg2NzUsLTQwLjExNjQ3NSBDIDE4NS45MDE3LDYyLjk5NjgzNCAxNzMuNjk2ODgsNTMuMzYzNjE5IDE1OS4zMDc4OSw0Ny41MzE5OCAxNDMuMTE0NTksNDAuOTMwNTA2IDEyNC4zMjk5NSwzOS4xMzU5NTcgMTA1LjkzOTAxLDQyLjQwOTMyNCA5MC4xOTA0MTYsNDUuMTY2Mjc1IDc0Ljg2OTg4Myw1MS43MDEzMzkgNjEuNjk1NjQ4LDYxLjEwNDY4NiA0Ni41Mjc4MzcsNzEuODgzNzA1IDM0LjQ1OTE3NSw4Ni4zMDIyNzIgMjYuNjgxNjUzLDEwMi4yODc0OCBjIC04LjYyNjgzMSwxNy42NTQ2NyAtMTEuOTYzMjE2LDM3LjA1OTE3IC05LjQ0Nzk2OSw1NS4yNjc0MyAyLjIyMjQ5OCwxNi40NTkxOSA5LjI5NzAzMywzMS43Njc4NCAyMC4xNTI2OCw0NC4xMTU0OCAxMi4wNjE2NzUsMTMuNzgxMDggMjguNjI2NjY5LDIzLjY3MDc0IDQ3LjI5MTcyMSwyOC43OTUxNCAxOC43MDM5MjUsNS4xNzA2NSAzOS4zODM4MzUsNS41MjU1NSA1OS4zODU0MzUsMC45MjM2MyB6Ig0KICAgICBmaWxsPSIjMDAwMDAwIg0KICAgICBpZD0icGF0aDUyOTM0Ig0KICAgICBzdHlsZT0iZmlsbDojYmFiOWJiO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjc1NTkiIC8+DQo8L3N2Zz4NCg==\"","export default __webpack_public_path__ + \"static/laptop-gears-54f3eaa232e7503cd5a1cb0cea35d352.svg\";","export default __webpack_public_path__ + \"static/plugin-run-screenshot-0aea571608647046fa2f9cc31ce61bf0.png\";","/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\n/**/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nimport {Link} from 'gatsby';\nimport {ScreenContainer, Button, HeroSection, Hero, HeroBody, HeroTitle, HeroTeaser, HeroActionList, HeroAction, FeatureSection, FeatureList, Feature, FeatureImage, FeatureTitle, FeatureText, Image, WideFeatureSection, WideFeature, WideFeatureText, WideFeatureImage} from \"smooth-doc/components\";\nimport heroBackgroundImageURL from \"../images/hero-background.png\";\nimport markdownImageURL from '../images/markdown.png';\nimport zdlImageURL from '../static/logos/conceptual-model.svg';\nimport sdkImageURL from '../static/logos/zenwave-sdk-dark.png';\nimport springBootImageURL from '../static/logos/spring-boot.svg';\nimport springImageURL from '../static/logos/spring.svg';\nimport dddImageURL from '../static/logos/ddd.svg';\nimport edaImageURL from '../images/event-driven-architectures-logo.svg';\nimport osiImageURL from '../static/logos/osi.svg';\nimport openApiImageURL from '../static/logos/openapi-logo.svg';\nimport asyncApiImageURL from '../static/logos/asyncapi-logo.png';\nimport tddImageURL from '../static/logos/tdd.svg';\nimport dddLogosImage from \"../images/home/spiral.svg\";\nimport sharedUnderstandingImage from \"../images/home/common-language.svg\";\nimport gearsDarkImage from \"../images/home/laptop-gears.svg\";\nimport eventStormingZDL from '../pages/docs/DDD/images/EventStorming-ZDL-Mapping.png';\nimport boundedContextMapping from '../images/home/bounded-context-mapping.svg';\nimport pluginScreenshot from './plugin-screenshot.png';\nimport pluginRunScreenshot from './plugin-run-screenshot.png';\nimport {marginRight} from '@xstyled/styled-components';\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n p: \"p\",\n ul: \"ul\",\n li: \"li\"\n }, _provideComponents(), props.components);\n return React.createElement(ScreenContainer, null, React.createElement(HeroSection, null, React.createElement(Hero, {\n backgroundImageURL: heroBackgroundImageURL\n }, React.createElement(HeroBody, null, React.createElement(HeroTitle, null, \"Create Software\", React.createElement(\"br\"), \" Easy To Understand!\"), \"\\r\\n\", React.createElement(HeroTeaser, null, \"DDD and API-First Modeling Tools for Modern Distributed Applications.\"), React.createElement(HeroActionList, null, React.createElement(HeroAction, null, React.createElement(Button, {\n variant: \"neutral\",\n as: Link,\n to: \"/docs/zenwave360\",\n style: {\n marginRight: '6px'\n }\n }, React.createElement(_components.p, null, \"Browse Docs\")), React.createElement(Button, {\n as: Link,\n to: \"/docs/getting-started/\"\n }, React.createElement(_components.p, null, \"Getting Started\"))))))), React.createElement(FeatureSection, null, React.createElement(FeatureList, null, React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: zdlImageURL\n }), React.createElement(FeatureTitle, null, \"Domain Model Language\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Concise and complete DDD modeling language for Event-Driven Architectures.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: sdkImageURL\n }), React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: springBootImageURL\n }), React.createElement(FeatureTitle, null, \"ZenWave SDK\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"ZenWave SDK helps you create SpringBoot/SpringCloud applications in no time.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: dddImageURL\n }), React.createElement(FeatureTitle, null, \"Domain Driven Design\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Business, Developer and Computer friendly Ubiquitous Language for your Domain Models and Bounded Contexts.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: edaImageURL\n }), React.createElement(FeatureTitle, null, \"Event-Driven Architectures\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Designed for Event-Driven Architectures, mapping Event-Storming discoveries into your models.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: osiImageURL\n }), React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: openApiImageURL\n }), React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n ...props.style\n },\n src: asyncApiImageURL\n }), React.createElement(FeatureTitle, null, \"API-First\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Leveraging open standards like OpenAPI and AsyncAPI.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: tddImageURL\n }), React.createElement(FeatureTitle, null, \"API-Testing\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Testing as first class citizen. Helps you create complete test suites from your Models and APIs.\"))))), React.createElement(WideFeatureSection, null, React.createElement(ScreenContainer, null, React.createElement(WideFeature, null, React.createElement(WideFeatureImage, {\n src: dddLogosImage,\n alt: \"Domain Driven Design is about Business Understanding\",\n className: \"only-small\"\n }), React.createElement(WideFeatureText, {\n className: \"wide-feature-text\"\n }, React.createElement(\"h3\", null, \"Maintainable Software\"), React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"It is \", React.createElement(\"strong\", null, \"not a matter of code\"), \" but a matter of \", React.createElement(\"strong\", null, \"understanding the business domain\")), \"\\n\", React.createElement(_components.li, null, \"Software well designed \", React.createElement(\"strong\", null, \"should be easy to understand by all\")), \"\\n\")), React.createElement(WideFeatureImage, {\n src: dddLogosImage,\n alt: \"Domain Driven Design is about Business Understanding\",\n className: \"only-wide\"\n })), React.createElement(WideFeature, null, React.createElement(WideFeatureImage, {\n src: sharedUnderstandingImage,\n alt: \"Gap between Domain Experts - Technical Knwoledge\"\n }), React.createElement(WideFeatureText, {\n className: \"wide-feature-text\"\n }, React.createElement(\"h3\", null, \"Common Language (DSL)\"), React.createElement(_components.p, null, \"A common language closes the gap between:\"), React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"\\n\", React.createElement(\"strong\", null, \"Domain Experts\"), \"\\n\"), \"\\n\", React.createElement(_components.li, null, \"\\n\", React.createElement(\"strong\", null, \"Technical Experts\"), \"\\n\"), \"\\n\", React.createElement(_components.li, null, \"Working \", React.createElement(\"strong\", null, \"Software & Tests\")), \"\\n\"))), React.createElement(WideFeature, null, React.createElement(WideFeatureImage, {\n src: gearsDarkImage,\n alt: \"\",\n width: \"300px\",\n className: \"only-small\"\n }), React.createElement(WideFeatureText, {\n className: \"wide-feature-text\"\n }, React.createElement(\"h3\", null, \"ZenWave SDK\"), React.createElement(_components.p, null, \"Accelerate your development \", React.createElement(\"strong\", null, \"Converting your Models\"), \" into \", React.createElement(\"strong\", null, \"Software Artifacts:\")), React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"API Definitions: OpenAPI, AsyncAPI...\"), \"\\n\", React.createElement(_components.li, null, \"SpringBoot/SpringCloud Backend...\"), \"\\n\", React.createElement(_components.li, null, \"API Testing: KarateDSL, Spring WebTestClient...\"), \"\\n\")), React.createElement(WideFeatureImage, {\n src: gearsDarkImage,\n alt: \"\",\n width: \"300px\",\n className: \"only-wide\"\n })))), React.createElement(ScreenContainer, null, React.createElement(\"section\", null, React.createElement(\"div\", {\n className: \"home-links\"\n }, React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/domain-modeling/business-domain-modeling\"\n }, \"Domain Modeling\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/event-driven-design/zenwave-domain-language\"\n }, \"ZDL Modeling Language\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/zenwave-sdk\"\n }, \"ZenWave SDK\"))))), React.createElement(ScreenContainer, {\n className: \"home-screenshots\"\n }, React.createElement(\"h2\", null, \"A Domain Language Designed for Event-Driven Architectures\"), React.createElement(Image, {\n src: eventStormingZDL,\n alt: \"Event Storming\"\n }), React.createElement(\"h2\", null, \"... And Bounded Context Mapping\"), React.createElement(Image, {\n src: boundedContextMapping,\n alt: \"Bounded Context Mapping with ZDL\",\n width: \"100%\"\n }), React.createElement(\"h2\", null, \"Can be read as documentation\"), React.createElement(Image, {\n src: pluginScreenshot\n }), React.createElement(\"h2\", null, \"And easily converted into working software & tests\"), React.createElement(Image, {\n src: pluginRunScreenshot\n })), React.createElement(ScreenContainer, null, React.createElement(\"section\", null, React.createElement(\"div\", {\n className: \"home-links\"\n }, React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/domain-modeling/business-domain-modeling\"\n }, \"Domain Modeling\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/event-driven-design/zenwave-domain-language\"\n }, \"ZDL Modeling Language\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/zenwave-sdk\"\n }, \"ZenWave SDK\"))))));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTIwMHB4IiBoZWlnaHQ9IjEyMDBweCIgc3R5bGU9InNoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247IHRleHQtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgaW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTsgZmlsbC1ydWxlOmV2ZW5vZGQ7IGNsaXAtcnVsZTpldmVub2RkIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk2MiIgZmlsbD0iIzJiOGEzZSIgZD0iTSA0MjcuNSwxMzIuNSBDIDQ5MC41LDEzMi41IDU1My41LDEzMi41IDYxNi41LDEzMi41QyA2MTYuNSwxOTUuNSA2MTYuNSwyNTguNSA2MTYuNSwzMjEuNUMgNTUzLjUsMzIxLjUgNDkwLjUsMzIxLjUgNDI3LjUsMzIxLjVDIDQyNy41LDI1OC41IDQyNy41LDE5NS41IDQyNy41LDEzMi41IFogTSA0NjYuNSwxNzEuNSBDIDUwMy41LDE3MS41IDU0MC41LDE3MS41IDU3Ny41LDE3MS41QyA1NzcuNSwyMDguNSA1NzcuNSwyNDUuNSA1NzcuNSwyODIuNUMgNTQwLjUsMjgyLjUgNTAzLjUsMjgyLjUgNDY2LjUsMjgyLjVDIDQ2Ni41LDI0NS41IDQ2Ni41LDIwOC41IDQ2Ni41LDE3MS41IFoiLz48L2c+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk3NCIgZmlsbD0iIzJiOGEzZSIgZD0iTSA1MDUuNSwzNzQuNSBDIDUxOC4xNjcsMzc0LjUgNTMwLjgzMywzNzQuNSA1NDMuNSwzNzQuNUMgNTQzLjUsMzkzLjgzMyA1NDMuNSw0MTMuMTY3IDU0My41LDQzMi41QyA2OTMuNSw0MzIuNSA4NDMuNSw0MzIuNSA5OTMuNSw0MzIuNUMgOTkzLjUsNTYzLjE2NyA5OTMuNSw2OTMuODMzIDk5My41LDgyNC41QyA5ODAuODMzLDgyNC41IDk2OC4xNjcsODI0LjUgOTU1LjUsODI0LjVDIDk1NS41LDcwNi44MzMgOTU1LjUsNTg5LjE2NyA5NTUuNSw0NzEuNUMgODE4LjE2Nyw0NzEuNSA2ODAuODMzLDQ3MS41IDU0My41LDQ3MS41QyA1NDMuNSw0ODkuMTY3IDU0My41LDUwNi44MzMgNTQzLjUsNTI0LjVDIDUzMC44MzMsNTI0LjUgNTE4LjE2Nyw1MjQuNSA1MDUuNSw1MjQuNUMgNTA1LjUsNTA2LjgzMyA1MDUuNSw0ODkuMTY3IDUwNS41LDQ3MS41QyA0MTguMTY3LDQ3MS41IDMzMC44MzMsNDcxLjUgMjQzLjUsNDcxLjVDIDI0My41LDQ4OS4xNjcgMjQzLjUsNTA2LjgzMyAyNDMuNSw1MjQuNUMgMjMwLjgzMyw1MjQuNSAyMTguMTY3LDUyNC41IDIwNS41LDUyNC41QyAyMDUuNSw0OTMuODMzIDIwNS41LDQ2My4xNjcgMjA1LjUsNDMyLjVDIDMwNS41LDQzMi41IDQwNS41LDQzMi41IDUwNS41LDQzMi41QyA1MDUuNSw0MTMuMTY3IDUwNS41LDM5My44MzMgNTA1LjUsMzc0LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDEzMC41LDU4MC41IEMgMTkzLjE2Nyw1ODAuNSAyNTUuODMzLDU4MC41IDMxOC41LDU4MC41QyAzMTguNSw2NDMuMTY3IDMxOC41LDcwNS44MzMgMzE4LjUsNzY4LjVDIDI1NS44MzMsNzY4LjUgMTkzLjE2Nyw3NjguNSAxMzAuNSw3NjguNUMgMTMwLjUsNzA1LjgzMyAxMzAuNSw2NDMuMTY3IDEzMC41LDU4MC41IFogTSAxNjguNSw2MTguNSBDIDIwNS44MzMsNjE4LjUgMjQzLjE2Nyw2MTguNSAyODAuNSw2MTguNUMgMjgwLjUsNjU1LjgzMyAyODAuNSw2OTMuMTY3IDI4MC41LDczMC41QyAyNDMuMTY3LDczMC41IDIwNS44MzMsNzMwLjUgMTY4LjUsNzMwLjVDIDE2OC41LDY5My4xNjcgMTY4LjUsNjU1LjgzMyAxNjguNSw2MTguNSBaIi8+PC9nPg0KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MC45NzQiIGZpbGw9IiMyYjhhM2UiIGQ9Ik0gNDI3LjUsNTgwLjUgQyA0OTAuNSw1ODAuNSA1NTMuNSw1ODAuNSA2MTYuNSw1ODAuNUMgNjE2LjUsNjQzLjE2NyA2MTYuNSw3MDUuODMzIDYxNi41LDc2OC41QyA1NTMuNSw3NjguNSA0OTAuNSw3NjguNSA0MjcuNSw3NjguNUMgNDI3LjUsNzA1LjgzMyA0MjcuNSw2NDMuMTY3IDQyNy41LDU4MC41IFogTSA0NjYuNSw2MTguNSBDIDUwMy41LDYxOC41IDU0MC41LDYxOC41IDU3Ny41LDYxOC41QyA1NzcuNSw2NTUuODMzIDU3Ny41LDY5My4xNjcgNTc3LjUsNzMwLjVDIDU0MC41LDczMC41IDUwMy41LDczMC41IDQ2Ni41LDczMC41QyA0NjYuNSw2OTMuMTY3IDQ2Ni41LDY1NS44MzMgNDY2LjUsNjE4LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDg4MC41LDg4MC41IEMgOTQzLjE2Nyw4ODAuNSAxMDA1LjgzLDg4MC41IDEwNjguNSw4ODAuNUMgMTA2OC41LDk0My4xNjcgMTA2OC41LDEwMDUuODMgMTA2OC41LDEwNjguNUMgMTAwNS44MywxMDY4LjUgOTQzLjE2NywxMDY4LjUgODgwLjUsMTA2OC41QyA4ODAuNSwxMDA1LjgzIDg4MC41LDk0My4xNjcgODgwLjUsODgwLjUgWiBNIDkxOC41LDkxOC41IEMgOTU1LjgzMyw5MTguNSA5OTMuMTY3LDkxOC41IDEwMzAuNSw5MTguNUMgMTAzMC41LDk1NS44MzMgMTAzMC41LDk5My4xNjcgMTAzMC41LDEwMzAuNUMgOTkzLjE2NywxMDMwLjUgOTU1LjgzMywxMDMwLjUgOTE4LjUsMTAzMC41QyA5MTguNSw5OTMuMTY3IDkxOC41LDk1NS44MzMgOTE4LjUsOTE4LjUgWiIvPjwvZz4NCjwvc3ZnPg0K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MTAgNDU3LjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMCA0NTcuODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzZEQjMzRjt9DQo8L3N0eWxlPg0KPHRpdGxlPmljb24tc3ByaW5nLWJvb3Q8L3RpdGxlPg0KPGcgaWQ9IkxheWVyXzJfMV8iPg0KCTxnIGlkPSJMYXllcl8xLTIiPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTAzLjUsMjAxLjRMNDAzLDI3LjVDMzk0LjMsMTIuNCwzNzIuOSwwLDM1NS40LDBIMTU0LjZjLTE3LjQsMC0zOC45LDEyLjQtNDcuNiwyNy41TDYuNiwyMDEuNA0KCQkJYy04LjcsMTUuMS04LjcsMzkuOCwwLDU0LjlsMTAwLjQsMTc0YzguNywxNS4xLDMwLjEsMjcuNSw0Ny42LDI3LjVoMjAwLjljMTcuNCwwLDM4LjgtMTIuNCw0Ny42LTI3LjVsMTAwLjQtMTc0DQoJCQlDNTEyLjIsMjQxLjIsNTEyLjIsMjE2LjUsNTAzLjUsMjAxLjR6IE0yMzMuMyw5Ni4yYzAtMTEuNCw5LjMtMjAuNywyMC43LTIwLjdjMTEuNCwwLDIwLjcsOS4zLDIwLjcsMjAuN3YxMjMuNw0KCQkJYzAsMTEuNC05LjMsMjAuNy0yMC43LDIwLjdjLTExLjQsMC0yMC43LTkuMy0yMC43LTIwLjdsMCwwVjk2LjJ6IE0yNTQsMzYwLjNjLTc3LjQsMC0xNDAuNC02My0xNDAuNC0xNDAuNA0KCQkJYzAuMS00NC40LDIxLjEtODYuMSw1Ni43LTExMi43YzguMi02LjEsMTkuNy00LjQsMjUuOCwzLjhzNC40LDE5LjctMy44LDI1LjhsMCwwYy00NS45LDM0LjEtNTUuNSw5OS0yMS40LDE0NC45DQoJCQlzOTksNTUuNSwxNDQuOSwyMS40YzI2LjMtMTkuNSw0MS44LTUwLjQsNDEuOC04My4yYy0wLjEtMzIuOS0xNS43LTYzLjgtNDIuMi04My40Yy04LjItNi05LjktMTcuNi0zLjktMjUuOHMxNy42LTkuOSwyNS44LTMuOQ0KCQkJYzM1LjksMjYuNSw1Nyw2OC41LDU3LjEsMTEzLjFDMzk0LjQsMjk3LjQsMzMxLjQsMzYwLjMsMjU0LDM2MC4zeiIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg0K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDI0OSAyMTkiIHdpZHRoPSIyNDkuMHB0IiBoZWlnaHQ9IjIxOS4wcHQiPg0KDQo8cGF0aCBkPSJNIDExNS41MSAxMS44MiBDIDEzMi4zMyA4Ljg4IDE1MC4zOCAxNS41NyAxNjEuNDEgMjguNTYgQyAxNjcuNzMgMzUuNzMgMTcxLjUwIDQ0LjYyIDE3My4xMCA1My45OCBDIDE3NC44OSA2NS42OCAxNzEuOTcgNzcuNzkgMTY1Ljc1IDg3Ljc4IEMgMTU5LjE2IDk4LjA2IDE0OC44MyAxMDUuODMgMTM3LjAxIDEwOS4wNCBDIDExOC4yMiAxMTQuNzcgOTYuODkgMTA3LjQ1IDg0Ljc5IDkyLjE4IEMgNzYuMjggODEuNjIgNzIuMjQgNjcuNDEgNzQuMjUgNTMuOTcgQyA3NS43OSA0NC43MSA3OS41OSAzNS45MSA4NS43NiAyOC43OCBDIDkzLjMzIDE5Ljc3IDEwMy45OCAxMy45NSAxMTUuNTEgMTEuODIgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTAyLjY3IDI4LjU3IEMgMTE0LjU2IDI4Ljg5IDEyOC45MiAyNy4xNiAxMzkuOTIgMzIuMDUgQyAxNDcuMTkgMzUuMDcgMTUyLjAxIDQxLjU1IDE1My42MiA0OS4xNiBDIDE1NS40MCA1Ny43NCAxNTUuMjUgNjcuNTUgMTUxLjY1IDc1LjY0IEMgMTQ4LjYyIDgyLjQwIDE0Mi41MCA4Ni42NyAxMzUuNDkgODguNTkgQyAxMjUuMjQgOTEuNDcgMTEzLjMwIDkwLjIzIDEwMi42NyA5MC41MCBDIDEwMi42NiA2OS44NSAxMDIuNjYgNDkuMjEgMTAyLjY3IDI4LjU3IFoiIGZpbGw9IiMwMDAwMDAiIC8+DQo8cGF0aCBkPSJNIDExMS4wNCAzNS40OCBDIDExOC44MyAzNS42MSAxMjcuNzIgMzQuNjMgMTM0Ljk1IDM3Ljk0IEMgMTM5Ljg0IDQwLjA3IDE0My4yNCA0NC4zOSAxNDQuNjQgNDkuNDggQyAxNDYuMjIgNTUuNDIgMTQ2LjI1IDYxLjk3IDE0NS4wMyA2Ny45OCBDIDE0My45MCA3My40MSAxNDAuODEgNzguMjQgMTM1Ljc1IDgwLjc1IEMgMTI4LjMwIDg0LjUyIDExOS4xNiA4My40NyAxMTEuMDUgODMuNjIgQyAxMTEuMDMgNjcuNTggMTExLjA1IDUxLjUzIDExMS4wNCAzNS40OCBaIiBmaWxsPSIjMmFkNGZmIiAvPg0KPHBhdGggZD0iTSA1Ni41MiAxMDcuNzAgQyA3NC4xMiAxMDMuNTcgOTMuMzUgMTEwLjI3IDEwNS4wMCAxMjMuOTggQyAxMTEuMzUgMTMxLjE5IDExNS4wOCAxNDAuMTAgMTE2LjY2IDE0OS41MiBDIDExOC4zOCAxNjEuMjUgMTE1LjQ2IDE3My4yNiAxMDkuMjAgMTgzLjI1IEMgMTAyLjY5IDE5My4zMiA5Mi42NCAyMDAuOTkgODEuMDUgMjA0LjIzIEMgNzEuMTkgMjA3LjM1IDYwLjQ5IDIwNi45MyA1MC43OSAyMDMuNDIgQyAzMS44OSAxOTcuMDMgMTguNDEgMTc4Ljg5IDE3LjM1IDE1OS4wMyBDIDE2LjYyIDE0Ni4wNCAyMS40NSAxMzIuNzcgMzAuMTUgMTIzLjEzIEMgMzcuMTAgMTE1LjM5IDQ2LjM5IDExMC4wMyA1Ni41MiAxMDcuNzAgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTcxLjUyIDExMC43NSBDIDE4OS4xNiAxMDYuNTIgMjA4Ljk3IDExMy42MCAyMjAuNDAgMTI3LjU3IEMgMjI2LjUzIDEzNC43NiAyMzAuMTMgMTQzLjU1IDIzMS42MyAxNTIuODIgQyAyMzMuMjUgMTY0LjE0IDIzMC40OCAxNzUuODYgMjI0LjU3IDE4NS41OCBDIDIxOC4wNCAxOTYuMTYgMjA3LjUzIDIwNC4xNyAxOTUuNTIgMjA3LjQzIEMgMTc2Ljc1IDIxMy4xNyAxNTUuNDEgMjA1LjkwIDE0My4zMiAxOTAuNjMgQyAxMzQuNjkgMTc5Ljk3IDEzMC42MSAxNjUuNTYgMTMyLjc4IDE1MS45NyBDIDEzNC4zMCAxNDMuMzQgMTM3LjczIDEzNS4xMyAxNDMuMjggMTI4LjMyIEMgMTUwLjM1IDExOS4zNyAxNjAuNDUgMTEzLjI5IDE3MS41MiAxMTAuNzUgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTU5Ljg0IDEyNy4zMSBDIDE2Ny44NyAxMjcuNDMgMTc1Ljk4IDEyNy4wMCAxODMuOTkgMTI3LjY3IEMgMTkyLjEwIDEyOC41MSAyMDAuMjcgMTMwLjgyIDIwNS41OCAxMzcuNDMgQyAyMTEuMzQgMTQ0LjYzIDIxMi4wMCAxNTUuMjAgMjExLjEwIDE2NC4wMSBDIDIxMC4yMCAxNzIuNTIgMjA2LjMzIDE4MC40NCAxOTguNDUgMTg0LjQ1IEMgMTg3LjE3IDE5MC4zNSAxNzIuMjQgMTg4LjQwIDE1OS44MyAxODguNzUgQyAxNTkuODIgMTY4LjI3IDE1OS44MSAxNDcuNzkgMTU5Ljg0IDEyNy4zMSBaIiBmaWxsPSIjMDAyMjJiIiAvPg0KPHBhdGggZD0iTSA0NS42NCAxMjcuODUgQyA1Ni40NyAxMjguMTQgNjkuMzYgMTI2LjY0IDc5LjUwIDEzMC42MyBDIDg1Ljc5IDEzMi45NiA5MC42NyAxMzcuNzcgOTIuNzkgMTQ0LjE3IEMgOTUuMjggMTUxLjc4IDk1LjMxIDE2MC41MSA5My4zMCAxNjguMjQgQyA5MS40NiAxNzUuMDcgODYuNzkgMTgwLjU5IDgwLjE2IDE4My4xOSBDIDY5Ljg4IDE4Ny41MiA1Ni43MCAxODUuOTQgNDUuNjQgMTg2LjI1IEMgNDUuNjMgMTY2Ljc4IDQ1LjYzIDE0Ny4zMSA0NS42NCAxMjcuODUgWiIgZmlsbD0iIzAwMDAwMCIgLz4NCjxwYXRoIGQ9Ik0gNzYuMjMgMTM2Ljc2IEMgODAuODUgMTM4LjgyIDgzLjk3IDE0Mi45NSA4NS4yNiAxNDcuNzcgQyA4Ni42OSAxNTMuMjggODYuNzAgMTU5LjI2IDg1LjYyIDE2NC44NCBDIDg0LjU1IDE2OS45NyA4MS43NSAxNzQuNTcgNzYuOTcgMTc2Ljk4IEMgNjkuOTcgMTgwLjYxIDYxLjIyIDE3OS41OCA1My41NyAxNzkuNzcgQyA1My40OSAxNjQuNjQgNTMuNTggMTQ5LjUwIDUzLjUzIDEzNC4zNyBDIDYwLjg4IDEzNC40NCA2OS40MyAxMzMuNTkgNzYuMjMgMTM2Ljc2IFoiIGZpbGw9IiMyYWQ0ZmYiIC8+DQo8cGF0aCBkPSJNIDE2OC4yNCAxMzQuMjYgQyAxNzUuMzEgMTM0LjExIDE4My4yNCAxMzMuNTkgMTkwLjAyIDEzNS45MCBDIDE5NS4wMiAxMzcuNTcgMTk4Ljk2IDE0MS4yMCAyMDAuODAgMTQ2LjE3IEMgMjAzLjA2IDE1Mi40MCAyMDMuMTQgMTU5LjUyIDIwMS45MiAxNjUuOTggQyAyMDAuODYgMTcxLjQzIDE5Ny45NiAxNzYuMzMgMTkyLjkxIDE3OC45MiBDIDE4NS4zMSAxODIuOTAgMTc2LjQxIDE4MS43MyAxNjguMTMgMTgxLjkwIEMgMTY4LjIyIDE2Ni4wNCAxNjcuOTggMTUwLjExIDE2OC4yNCAxMzQuMjYgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgNTEyIDUxMiINCiAgIHdpZHRoPSI1MTIuMHB0Ig0KICAgaGVpZ2h0PSI1MTIuMHB0Ig0KICAgaWQ9InN2Zzk0ODU5Ig0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogIDxkZWZzDQogICAgIGlkPSJkZWZzOTQ4NjMiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTQzLjk5IDI2Ljg2IEMgMTU5LjY5IDI1Ljc5IDE3NS42MiAzMC40MSAxODguMzIgMzkuNzAgQyAxOTkuNDcgNDcuNzUgMjA4LjA0IDU5LjI2IDIxMi42MSA3Mi4yNCBDIDIxNy4wMyA4NC44MiAyMTcuNzYgOTguNTggMjE0LjQzIDExMS41MSBDIDIxMC42OCAxMjYuNzggMjAxLjQ0IDE0MC40NiAxODguODIgMTQ5LjgyIEMgMTk5LjcwIDE2OC41NyAyMTAuNjQgMTg3LjI5IDIyMS41MyAyMDYuMDQgQyAyMzkuODcgMjAwLjM5IDI2MC4xMiAyMDUuNDYgMjczLjY5IDIxOC45NyBDIDI5Ny44OSAxOTQuNzMgMzIyLjE2IDE3MC41NiAzNDYuMzIgMTQ2LjI5IEMgMzQzLjU1IDE0MC44OCAzNDEuNjcgMTM1LjE0IDM0MS40MiAxMjkuMDIgQyAzNDAuNDYgMTEzLjY5IDM0OS4xMyA5OC43MiAzNjIuODMgOTEuODMgQyAzNzYuMDIgODQuOTMgMzkyLjc1IDg2LjM5IDQwNC41NiA5NS40NCBDIDQxNi4wOCAxMDQuMDUgNDIyLjA3IDExOC44MSA0MTkuNzYgMTMzLjAzIEMgNDE3LjUzIDE0OC4yMyA0MDUuODggMTYxLjE5IDM5MS4wMSAxNjUuMDMgQyAzODAuOTYgMTY3Ljc4IDM3MC41MyAxNjYuMTcgMzYxLjM1IDE2MS40MiBDIDMzNi4xOSAxODYuNzUgMzEwLjg0IDIxMS45MiAyODUuNjQgMjM3LjIyIEMgMjg3LjU0IDI0Mi42OCAyODguNzIgMjQ4LjA3IDI4OS4wMiAyNTMuODYgQyAzMTYuMzMgMjUzLjg5IDM0My42NSAyNTMuODUgMzcwLjk3IDI1My44NyBDIDM3My44NSAyMzUuODcgMzg0LjAxIDIxOS4zOSAzOTguOTMgMjA4Ljg5IEMgNDExLjY2IDE5OS44NCA0MjcuNDQgMTk1LjM3IDQ0My4wMyAxOTYuNDggQyA0NTguNDIgMTk3LjQzIDQ3My4zMiAyMDMuODggNDg0LjYyIDIxNC4zNSBDIDQ5NS44NyAyMjQuNzIgNTAzLjQ5IDIzOC44MyA1MDUuNzggMjUzLjk4IEMgNTA3LjY0IDI2NC45NyA1MDYuNDYgMjc2LjMxIDUwMi44OCAyODYuODIgQyA0OTcuNzQgMzAxLjczIDQ4Ny4zMyAzMTQuNjkgNDczLjgyIDMyMi44MyBDIDQ2My4zOCAzMjkuMjUgNDUxLjIzIDMzMi42MyA0MzguOTkgMzMyLjc5IEMgNDIyLjM0IDMzMi44OCA0MDUuNzcgMzI2Ljc5IDM5My4zMSAzMTUuNzAgQyAzODEuNDIgMzA1LjMyIDM3My40NyAyOTAuNzggMzcwLjk5IDI3NS4yMCBDIDM0Mi40OCAyNzUuMjEgMzEzLjk4IDI3NS4xOSAyODUuNDcgMjc1LjIxIEMgMjgwLjg1IDI4Ni4yMSAyNzMuNTAgMjk0LjkwIDI2My4yOCAzMDEuMDkgQyAyNzIuODUgMzM2LjE4IDI4Mi40NSAzNzEuMjYgMjkyLjA2IDQwNi4zNCBDIDI5Ny40NyA0MDYuNDIgMzAyLjc3IDQwNy4xMyAzMDcuODIgNDA5LjE3IEMgMzIxLjA4IDQxNC4zMSAzMzAuODEgNDI2Ljg0IDMzMi40NiA0NDAuOTggQyAzMzQuNDAgNDU1LjczIDMyNy40MiA0NzAuODIgMzE0LjkyIDQ3OC44OCBDIDMwMi4xNCA0ODcuMzYgMjg0LjgwIDQ4Ny40NCAyNzEuOTcgNDc5LjAxIEMgMjU4Ljc1IDQ3MC42MyAyNTEuNjUgNDU0LjQ1IDI1NC40OSA0MzkuMDMgQyAyNTYuMzEgNDI4LjIzIDI2Mi43MyA0MTguOTUgMjcxLjY4IDQxMi43NyBDIDI2Mi4xMyAzNzcuODIgMjUyLjU4IDM0Mi44NyAyNDMuMDEgMzA3LjkzIEMgMjI5LjU2IDMwOS4zMCAyMTcuMTggMzA2LjA2IDIwNi4xMiAyOTguMzUgQyAxODMuNDAgMzExLjE3IDE2MC43MSAzMjQuMDIgMTM4LjAyIDMzNi44OCBDIDE0My45NCAzNTMuOTEgMTQyLjkzIDM3Mi44OCAxMzUuMDQgMzg5LjEwIEMgMTI3LjUyIDQwNC44MCAxMTMuODIgNDE3LjMyIDk3LjUwIDQyMy4zOSBDIDg1LjQyIDQyNy44NiA3Mi4xNSA0MjguOTYgNTkuNTQgNDI2LjIyIEMgNDUuNzAgNDIzLjMyIDMyLjkxIDQxNi4wNCAyMy4zNyA0MDUuNjEgQyAxMi42NyAzOTQuMDYgNi4yMyAzNzguNzMgNS40OCAzNjMuMDAgQyA0LjYzIDM0Ny41NSA5LjIyIDMzMS45MCAxOC4zOCAzMTkuNDEgQyAyNi4yOCAzMDguNDYgMzcuNTIgMjk5Ljk4IDUwLjIzIDI5NS4zOCBDIDYxLjI5IDI5MS4zMiA3My4zOCAyOTAuMjQgODQuOTkgMjkyLjIxIEMgMTAxLjk3IDI5NC45NCAxMTcuNDMgMzA0LjQ2IDEyNy44NyAzMTguMDggQyAxNDkuMDcgMzA2LjA5IDE3MC4yNiAyOTQuMTEgMTkxLjQ1IDI4Mi4xMCBDIDE4Ny41OSAyNzQuOTkgMTg1LjQxIDI2OC4wNCAxODQuNjYgMjU5Ljk2IEMgMTUyLjc2IDI1MS4xMSAxMjAuNzIgMjQyLjU3IDg4Ljc4IDIzMy44MiBDIDg2LjE4IDIzOC4xMSA4My4wNiAyNDIuMDEgNzkuMTEgMjQ1LjE0IEMgNjguMzEgMjUzLjk3IDUyLjkyIDI1Ni4yOSAzOS45NyAyNTEuMDkgQyAyNS4yNiAyNDUuNDMgMTUuMDYgMjMwLjc4IDE0Ljk3IDIxNC45OSBDIDE0LjU3IDE5OS4xNCAyNC40NiAxODQuMDYgMzkuMTIgMTc4LjA0IEMgNTIuOTkgMTcyLjA5IDY5Ljc1IDE3NC45MyA4MC44NiAxODUuMTQgQyA4OC44MCAxOTIuMjYgOTMuMzkgMjAyLjQ2IDkzLjg4IDIxMy4wOCBDIDEyNS4wOCAyMjEuNTkgMTU2LjI5IDIzMC4xMCAxODcuNTIgMjM4LjU0IEMgMTkwLjcwIDIyOS44NCAxOTUuODAgMjIyLjM3IDIwMi44MiAyMTYuMzIgQyAxOTEuODUgMTk3LjQ2IDE4MC44OCAxNzguNTkgMTY5Ljg4IDE1OS43NCBDIDE1My4yMSAxNjUuMTAgMTM1LjA1IDE2NC4yMCAxMTkuMjEgMTU2LjY0IEMgMTA1LjA0IDE1MC4wMSA5My4zNCAxMzguMzcgODYuNjQgMTI0LjIyIEMgODAuNTUgMTExLjQ5IDc4LjYzIDk2Ljg4IDgxLjEwIDgyLjk5IEMgODMuNjUgNjguMjIgOTEuMzEgNTQuNDUgMTAyLjQ0IDQ0LjQxIEMgMTEzLjc5IDM0LjA1IDEyOC42NSAyNy43OCAxNDMuOTkgMjYuODYgWiINCiAgICAgZmlsbD0iIzAxMDEwMSINCiAgICAgaWQ9InBhdGg5NDg0MyINCiAgICAgc3R5bGU9ImZpbGw6IzJiOGEzZTtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSAxMzkuNDkgNDguODYgQyAxNTEuMTggNDYuNjIgMTYzLjU4IDQ4Ljk1IDE3My41OCA1NS40MyBDIDE4OS4wMCA2NS4yMSAxOTcuNTcgODMuOTYgMTk0LjYzIDEwMi4wMyBDIDE5Mi4xNSAxMTkuMTMgMTc5LjY2IDEzNC4wMCAxNjMuMjQgMTM5LjM4IEMgMTUwLjc4IDE0My42NCAxMzYuNjkgMTQyLjMzIDEyNS4yNiAxMzUuNzggQyAxMTUuNzUgMTMwLjQ3IDEwOC4yMSAxMjEuNzAgMTA0LjM4IDExMS41MSBDIDEwMC43MyAxMDEuOTAgMTAwLjQxIDkxLjA2IDEwMy4zOSA4MS4yMyBDIDEwOC4zNCA2NC43OCAxMjIuNTggNTEuOTYgMTM5LjQ5IDQ4Ljg2IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDUiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMzc1LjQ3IDEwOS42MCBDIDM4MS42OCAxMDcuNzEgMzg4LjU0IDEwOS4yNyAzOTMuMjQgMTEzLjc1IEMgMzk4LjU5IDExOC43MSA0MDAuMzcgMTI2Ljc3IDM5Ny42NyAxMzMuNTQgQyAzOTQuNzcgMTQxLjA0IDM4Ni45OSAxNDUuODMgMzc4Ljk4IDE0NC45NiBDIDM3MC42MyAxNDQuMjAgMzYzLjY4IDEzNy4zNiAzNjIuODAgMTI5LjAyIEMgMzYxLjcwIDEyMC40NiAzNjcuMjQgMTEyLjA3IDM3NS40NyAxMDkuNjAgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg0NyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA1MC40OSAxOTYuNjkgQyA1Ni43OSAxOTUuMjkgNjMuNDggMTk3LjQyIDY3LjgwIDIwMi4yMCBDIDczLjAwIDIwNy44MiA3NC4wMiAyMTYuNTcgNzAuMjIgMjIzLjIyIEMgNjYuMzUgMjMwLjI5IDU3Ljg0IDIzNC4wMiA1MC4wMSAyMzEuOTcgQyA0MS44OSAyMzAuMDQgMzYuMDAgMjIyLjMyIDM2LjI4IDIxMy45NyBDIDM2LjM4IDIwNS43NSA0Mi40NiAxOTguNDAgNTAuNDkgMTk2LjY5IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDkiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gNDI4LjQ5IDIxOC42NyBDIDQ0My4yMSAyMTUuNDggNDU5LjAwIDIxOS42OCA0NzAuMDYgMjI5LjkzIEMgNDgxLjYyIDI0MC4zOSA0ODcuMzEgMjU2LjY1IDQ4NC43MCAyNzIuMDMgQyA0ODIuODAgMjg0LjAzIDQ3Ni4wNCAyOTUuMDcgNDY2LjI1IDMwMi4yNiBDIDQ1Ni4zMCAzMDkuNzAgNDQzLjIyIDMxMi45MCA0MzAuOTcgMzEwLjgzIEMgNDE2LjcyIDMwOC42MiA0MDMuOTcgMjk5LjU0IDM5Ny4xNCAyODYuODYgQyAzOTAuNzcgMjc1LjIyIDM4OS43NSAyNjAuOTMgMzk0LjMxIDI0OC40OCBDIDM5OS43MCAyMzMuNDkgNDEyLjkyIDIyMS45OSA0MjguNDkgMjE4LjY3IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTEiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMjMwLjQ5IDIyNS43MiBDIDIzOS4yMiAyMjMuOTMgMjQ4LjUwIDIyNS45NyAyNTUuNTYgMjMxLjQzIEMgMjY2LjA0IDIzOS4zMSAyNzAuMzcgMjUzLjU2IDI2Ni4wNiAyNjUuOTcgQyAyNjEuNjMgMjc5LjMxIDI0OC4wMCAyODguMjIgMjMzLjk4IDI4Ni43NyBDIDIxOC42OSAyODUuNTggMjA2LjIwIDI3Mi4zMiAyMDUuOTEgMjU2Ljk5IEMgMjA1LjI2IDI0Mi4xOCAyMTUuOTkgMjI4LjYzIDIzMC40OSAyMjUuNzIgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg1MyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA2My40OSAzMTMuNjYgQyA3NS4zNSAzMTEuMDcgODguMTAgMzEzLjEzIDk4LjM4IDMxOS42MyBDIDEwNy45NiAzMjUuNTYgMTE1LjIwIDMzNS4wMCAxMTguNDYgMzQ1Ljc4IEMgMTIzLjUxIDM2MS45MiAxMTkuMDYgMzgwLjE3IDEwNy4xOCAzOTIuMTggQyA5NC43NyA0MDUuMTQgNzUuMTEgNDA5LjgyIDU4LjIwIDQwMy43NSBDIDQ1LjUzIDM5OS40MSAzNS4wNiAzODkuNDMgMzAuMDkgMzc2Ljk5IEMgMjYuMjEgMzY3LjQ0IDI1LjY4IDM1Ni42NyAyOC40MyAzNDYuNzQgQyAzMi45OCAzMzAuMjcgNDYuODAgMzE3LjI2IDYzLjQ5IDMxMy42NiBaIg0KICAgICBmaWxsPSIjZmZmZmZmIg0KICAgICBpZD0icGF0aDk0ODU1Ig0KICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxIiAvPg0KICA8cGF0aA0KICAgICBkPSJNIDI4Ny41MCA0MjguNzAgQyAyOTMuOTMgNDI2LjUxIDMwMS4yMyA0MjguMTQgMzA2LjA1IDQzMi45NSBDIDMxMS42OSA0MzguNDEgMzEzLjA3IDQ0Ny4zMCAzMDkuNDAgNDU0LjI0IEMgMzA1LjgxIDQ2MS4yNSAyOTcuNzcgNDY1LjE2IDI5MC4wMyA0NjMuNjkgQyAyODIuMDEgNDYyLjI3IDI3NS42NyA0NTUuMjAgMjc1LjI1IDQ0Ny4wNCBDIDI3NC42NSA0MzguOTcgMjc5LjgzIDQzMS4yNCAyODcuNTAgNDI4LjcwIFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTciDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQo8L3N2Zz4NCg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY2NSA2NjEiIHdpZHRoPSI2NjUuMHB0IiBoZWlnaHQ9IjY2MS4wcHQiPg0KDQo8cGF0aCBkPSJNIDM5MS4yNCA1Ljg2IEMgNDUzLjUyIDE2LjkwIDUxMi4zMiA0Ni4yOCA1NTguNjIgODkuMzggQyA1ODkuODAgMTE4LjIxIDYxNS40MCAxNTMuMTIgNjMzLjQxIDE5MS41OCBDIDY1MS4zNyAyMjkuNjMgNjYxLjY0IDI3MS4xMCA2NjMuOTcgMzEzLjEwIEMgNjY3LjA1IDM3MC4xNiA2NTUuMzcgNDI3LjkxIDYzMC4yMyA0NzkuMjMgQyA2MDkuNzQgNTIxLjI3IDU4MC4yNSA1NTkuMzYgNTQzLjk0IDU4OC45MiBDIDUxNi4yNSA2MTEuNDMgNDg0LjYyIDYyOC45OCA0NTAuMDIgNjM4LjIxIEMgNDQ2LjIwIDYzOS4xNyA0NDIuMzYgNjM5LjQyIDQzOC45OSA2MzcuMDEgQyA0MzUuMjYgNjM0LjMyIDQzNC4yOCA2MjkuNTMgNDMyLjU5IDYyNS40OSBDIDQwOS42MiA1NjYuNDEgMzg2LjYyIDUwNy4zMyAzNjMuNjMgNDQ4LjI1IEMgMzYyLjA2IDQ0My45MyAzNTkuNDggNDM5Ljc5IDM2MC40NCA0MzUuMDQgQyAzNjEuMjggNDMwLjczIDM2NC41MSA0MjguMDIgMzY4LjUxIDQyNi42MyBDIDM4NS42OCA0MjAuMDggNDAxLjM2IDQxMC40MSA0MTIuMzcgMzk1LjM5IEMgNDIzLjA0IDM4MC44OCA0MjcuNzAgMzYzLjc2IDQyOS4zOSAzNDYuMDMgQyA0MzAuMDcgMzM3LjAwIDQzMC40MiAzMjguMDQgNDI5LjIzIDMxOS4wMyBDIDQyNC43NiAyODUuOTMgNDAyLjAzIDI1Ni43MiAzNzEuNDggMjQzLjUwIEMgMzQwLjg1IDIzMC4wMiAzMDMuNjcgMjM0LjI0IDI3Ni4zMyAyNTMuMzEgQyAyNTguNDYgMjY1LjczIDI0NC44OSAyODQuMDIgMjM4Ljk0IDMwNS4wMiBDIDIzNC4yNiAzMjAuOTIgMjM0Ljk0IDMzNi44MSAyMzcuMzIgMzUzLjAyIEMgMjQwLjA5IDM2OS42NSAyNDUuNzYgMzg1LjQ0IDI1NS45OSAzOTguOTggQyAyNjYuMjcgNDEyLjY0IDI4MC43OSA0MjIuNjQgMjk3LjAwIDQyNy45NSBDIDMwMC45NSA0MjkuMTcgMzA0LjM2IDQzMS4xMCAzMDUuODQgNDM1LjE5IEMgMzA3LjgyIDQ0MC4yOCAzMDUuMDMgNDQ0LjYzIDMwMy4yNSA0NDkuMjYgQyAyNzguNjggNTA5LjY4IDI1NC4xMCA1NzAuMTAgMjI5LjU1IDYzMC41MyBDIDIyOC40NyA2MzMuMDUgMjI3LjE5IDYzNS4zMiAyMjQuODAgNjM2LjgyIEMgMjIxLjg4IDYzOC43MSAyMTguNTAgNjM4LjgyIDIxNS4yMiA2MzcuOTIgQyAyMDMuODYgNjM0LjkxIDE5Mi43NSA2MzAuODUgMTgyLjAzIDYyNi4wNSBDIDE0Ny4zNSA2MTAuNDQgMTE2LjE3IDU4Ni40MCA5MC40NSA1NTguNTMgQyA1MS43NyA1MTYuNTcgMjQuMDEgNDY0LjcxIDEwLjQ3IDQwOS4yOCBDIC01LjE2IDM0NS4zNSAtMS4yMSAyNzYuNjMgMjEuODcgMjE0Ljk4IEMgMzkuMjMgMTY4LjMwIDY3LjM3IDEyNS43NSAxMDMuNDYgOTEuNDUgQyAxMzUuMTQgNjEuMjEgMTcyLjkwIDM3LjQ0IDIxMy44NiAyMS45NSBDIDI3MC4xMyAwLjYyIDMzMi4wNCAtNC44MSAzOTEuMjQgNS44NiBaIiBmaWxsPSIjMWI1MjFiIiAvPg0KPHBhdGggZD0iTSA0MTIuOTcgMzMuMDcgQyA0NDcuNzQgNDIuNDUgNDgxLjAxIDU3LjgxIDUxMC40NyA3OC41NCBDIDU0Ni4zMCAxMDMuNjEgNTc2Ljg4IDEzNi4yMiA1OTkuMjQgMTczLjgzIEMgNjIyLjk1IDIxMy4yMiA2MzcuNDIgMjU4LjIwIDY0MS4zNiAzMDMuOTkgQyA2NDYuOTUgMzY2LjgzIDYzMy4wNCA0MzEuMTAgNjAyLjAwIDQ4Ni4wMSBDIDU3Ni44NyA1MzAuNjggNTQwLjIyIDU2OS45OCA0OTUuNzEgNTk1LjczIEMgNDgxLjg2IDYwMy41OCA0NjcuMTYgNjEwLjI3IDQ1MS44OSA2MTQuODQgQyA0MjkuNzAgNTU3LjczIDQwNy41MiA1MDAuNjEgMzg1LjI0IDQ0My41NCBDIDM5MS4yMCA0NDAuNDQgMzk3LjE5IDQzNy41MyA0MDIuODEgNDMzLjgyIEMgNDE1LjExIDQyNS43MiA0MjUuOTYgNDE1LjM0IDQzMy43OSA0MDIuODIgQyA0NDQuOTEgMzg1LjUyIDQ1MC4yMyAzNjQuMTcgNDUxLjQ2IDM0My44MCBDIDQ1Mi4xMiAzMzEuNjEgNDUyLjA0IDMxOS41NyA0NDkuMzggMzA3LjYwIEMgNDQyLjU0IDI3NC44OSA0MjAuNzEgMjQ1Ljc2IDM5MS43NCAyMjkuMjggQyAzNzYuMjUgMjIwLjM4IDM1OC44MiAyMTUuMTQgMzQwLjk5IDIxMy45NSBDIDMyMC4wMyAyMTIuNzMgMjk4Ljg2IDIxNi44MSAyNzkuOTYgMjI1Ljk3IEMgMjU2LjYxIDIzNy4xOCAyMzcuMDggMjU2LjM1IDIyNS41MCAyNzkuNTIgQyAyMTcuMjEgMjk2LjA1IDIxMy4xMiAzMTQuNTIgMjEzLjY1IDMzMy4wMCBDIDIxNC4xMSAzNTQuNjQgMjE4LjQ1IDM3Ny4wNiAyMjguNjIgMzk2LjMyIEMgMjM2LjA5IDQxMS4wOCAyNDcuMDMgNDIzLjg5IDI2MC40NCA0MzMuNTggQyAyNjYuODUgNDM4LjQyIDI3My45MyA0NDEuOTEgMjgxLjA4IDQ0NS40OSBDIDI3MS45NiA0NjguNDcgMjYyLjUyIDQ5MS4zMiAyNTMuMjEgNTE0LjIzIEMgMjM5LjY3IDU0Ny41MyAyMjYuMTUgNTgwLjg0IDIxMi42MCA2MTQuMTQgQyAyMDQuNjcgNjEyLjIyIDE5Ny4wMyA2MDguNzEgMTg5LjU1IDYwNS40OSBDIDE2My44MyA1OTMuNTcgMTQwLjIyIDU3Ni43OCAxMTkuNzggNTU3LjIwIEMgMTE1LjUxIDU1My4zOSAxMTEuNjAgNTQ5LjQyIDEwNy44MiA1NDUuMTMgQyA1NS43NSA0ODkuMzYgMjQuNTkgNDE0LjM4IDIyLjk5IDMzOC4wMCBDIDIxLjUxIDI3Ni43NCAzOC41MiAyMTUuMjggNzEuODMgMTYzLjgxIEMgMTA2LjM1IDEwOS44MCAxNTguMTUgNjcuMjMgMjE3Ljg1IDQzLjg4IEMgMjc5LjQ1IDE5LjUwIDM0OS4wNSAxNS44NiA0MTIuOTcgMzMuMDcgWiIgZmlsbD0iIzNlYTUzOCIgLz4NCg0KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICBoZWlnaHQ9IjE3MDUuMDYwNyINCiAgIHZpZXdCb3g9Ii00OC41ODMxMzIgLTEzNi4yMjg1MyA1OTkuODk3NDkgNTM4LjIwODM5Ig0KICAgd2lkdGg9IjE3MDUuMjMxMiINCiAgIHZlcnNpb249IjEuMSINCiAgIGlkPSJzdmcxMDMxNjQiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMxMDMxNjgiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTA5Ljk0Njg3LDE3Ny44NjQ0MiBIIC00OC4zNDMxMzIgYyAwLjAzLDAuNzggMC4wNSwxLjU1IDAuMDksMi4zMiAwLjA2LDEuNDkgMC4xNywyLjk3IDAuMjYsNC40NiAwLjA0LDAuNjQgMC4wNywxLjI4IDAuMTIsMS45MSAwLjEyLDEuNzIgMC4yNywzLjQ0IDAuNDMsNS4xNSAwLjA0LDAuMzkgMC4wNywwLjc4IDAuMTEsMS4xNSAwLjE4LDEuOTEgMC4zOSwzLjgyIDAuNjEsNS43MSAwLjAxLDAuMTggMC4wMywwLjM3IDAuMDYsMC41NSAwLjI1LDIuMDQgMC41MSw0LjA5IDAuODEsNi4xMiAwLDAuMDMgMCwwLjA2IDAuMDEsMC4wOCBhIDI2Ni4wNSwyNjYuMDUgMCAwIDAgOC4xOCwzNy40IGMgMC4wMiwwLjA1IDAuMDQsMC4xIDAuMDUsMC4xNSAwLjU3LDEuOTQgMS4xNywzLjg2IDEuNzgsNS43NyAwLjA0LDAuMTEgMC4wOCwwLjIzIDAuMTEsMC4zNCAwLjAzLDAuMTEgMC4wNywwLjIyIDAuMTEsMC4zNCAwLjU2LDEuNzMgMS4xNSwzLjQ1IDEuNzQsNS4xOCAwLjE1LDAuNDMgMC4zLDAuODcgMC40NiwxLjMxIDAuNTMsMS40OSAxLjA3LDIuOTggMS42Myw0LjQ4IDAuMjYsMC42NyAwLjUxLDEuMzQgMC43NiwyLjAyIDAuNDksMS4yNCAwLjk2LDIuNDcgMS40NSwzLjcgMC4zNywwLjkzIDAuNzUsMS44NiAxLjE0LDIuNzggMC40LDAuOTcgMC44LDEuOTIgMS4yMSwyLjg5IDAuNSwxLjE4IDEuMDMsMi4zNSAxLjU1LDMuNTMgMC4zMSwwLjcgMC42MywxLjM5IDAuOTQsMi4wOSAwLjY0LDEuNDEgMS4zLDIuODIgMS45Nyw0LjIyIDAuMjIsMC40NSAwLjQzLDAuOSAwLjY1LDEuMzQgMC43OCwxLjYyIDEuNTcsMy4yMSAyLjM3LDQuOCAwLjE0LDAuMjQgMC4yNSwwLjQ5IDAuMzgsMC43MyAwLjksMS43NiAxLjgyLDMuNTEgMi43Nyw1LjI1IDAuMDQsMC4wOCAwLjA5LDAuMTUgMC4xMiwwLjI0IDAuMiwwLjM2IDAuNDIsMC43MSAwLjYyLDEuMDcgbCAxMzUuMTkwMDAyLC04MS40MyAwLjUsLTAuMyBjIC01LjMzLC0xMS4yNCAtOC42NSwtMjMuMiAtOS44OSwtMzUuMzUgeiINCiAgICAgZmlsbD0iIzkzZDUwMCINCiAgICAgaWQ9InBhdGgxMDMxNDQiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTQ4Ljg1Njg3LDI1MC41MzQ0MiAtMC4zOCwwLjM4IC0xMTEuNTAwMDAyLDExMS40OSBjIDAuNTcsMC41MyAxLjE0LDEuMDggMS43MywxLjU5IDEuMDQsMC45NSAyLjEsMS44OCAzLjE1LDIuODEgMC41NSwwLjQ4IDEuMDgsMC45NiAxLjYzLDEuNDQgMS4yNiwxLjA5IDIuNTQsMi4xNSAzLjgxLDMuMjIgMC4zNSwwLjI5IDAuNjgsMC41NyAxLjAzLDAuODYgYSAyNTUuNTc2LDI1NS41NzYgMCAwIDAgNC45MSwzLjk0IGMgMS41OCwxLjI1IDMuMTcsMi40NiA0Ljc5LDMuNjggMC4wNywwLjA0IDAuMTIsMC4wOCAwLjE4LDAuMTMgYSAyNjYuNDgsMjY2LjQ4IDAgMCAwIDIwLjg2LDE0LjEgYyAwLjI0LDAuMTYgMC40OSwwLjMgMC43NCwwLjQ2IDEuMzcsMC44MSAyLjczLDEuNjIgNC4xMSwyLjQyIGwgMi41MiwxLjQ0IGMgMC44LDAuNDYgMS41OSwwLjkgMi4zOSwxLjM0IDEuNDUsMC43OSAyLjksMS41OCA0LjM2LDIuMzUgMC4yLDAuMTEgMC40LDAuMjIgMC42MSwwLjMyIDQuMDUsMi4xMiA4LjE3MDAwMiw0LjA5IDEyLjMzMDAwMiw1Ljk5IGwgMy45NiwtOS42MSA1Ni4wOCwtMTM2LjE3IDAuMiwtMC41IGMgLTYuMTIsLTMuMjggLTExLjk5LC03LjE2IC0xNy41MSwtMTEuNjggeiINCiAgICAgZmlsbD0iIzRkNWEzMSINCiAgICAgaWQ9InBhdGgxMDMxNDYiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTM3LjI0Njg3LDIzOS40MjQ0MiBhIDk1LjQ5Miw5NS40OTIgMCAwIDEgLTMuNDgsLTQuMSBjIC0xLC0xLjIzIC0xLjk2LC0yLjQ3IC0yLjg5LC0zLjczIC0xLjA3LC0xLjQ0IC0yLjExLC0yLjkgLTMuMSwtNC4zOCAtMC45OSwtMS40OSAtMS45NywtMi45OSAtMi44OSwtNC41MSBsIC0xMzUuMzYwMDAyLDgxLjUzIGMgMi4wODAwMDAzLDMuNDYgNC4yNDAwMDAzLDYuODIgNi40NjAwMDAzLDEwLjE0IDAuMDcsMC4xMiAwLjE0LDAuMjQgMC4yMiwwLjM1IDAuMDIsMC4wNSAwLjA1LDAuMDggMC4wOCwwLjEzIDAuMDcsMC4xIDAuMTQsMC4yMiAwLjIxLDAuMzMgMC4wMSwwLjAxIDAuMDIsMC4wMiAwLjAyLDAuMDQgMC4xOCwwLjI2IDAuMzYsMC41MiAwLjU0LDAuNzkgMC4wMSwwLjAxIDAuMDIsMC4wMyAwLjA0LDAuMDUgMC4wMiwwLjAyIDAuMDEsMC4wMSAwLjAxLDAuMDIgMi4zNDk5OTk5NiwzLjQ3IDQuNzcsNi44OSA3LjI2LDEwLjIzIDAuMDUsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDAuMDYsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDEuMDksMS40MyAyLjE3LDIuODYgMy4yOSw0LjI4IDAuMTUsMC4xOSAwLjI5LDAuMzcgMC40NSwwLjU1IDEuMTQsMS40NyAyLjMwOTk5OTcsMi45MiAzLjQ5OTk5OTcsNC4zNSAwLjI4LDAuMzQgMC41NywwLjY4IDAuODUsMS4wMyAxLjA3LDEuMjggMi4xNCwyLjU1IDMuMjMsMy44MSAwLjQ3LDAuNTQgMC45NSwxLjA5IDEuNDMsMS42MiAwLjkzLDEuMDYgMS44NSwyLjEyIDIuOCwzLjE2IDAuNTIsMC41NyAxLjA2LDEuMTUgMS41OSwxLjcyIDAuMjQsMC4yNyAwLjQ4LDAuNTIgMC43MywwLjc5IDAuNjksMC43NSAxLjM4LDEuNSAyLjA4LDIuMjQgMC4yOCwwLjI5IDAuNTgsMC41OCAwLjg2LDAuODggMS4yMywxLjI4IDIuNDgsMi41NyAzLjc0LDMuODMgbCAxMTEuNjcwMDAyLC0xMTEuNjUgYyAtMS4yOCwtMS4yOCAtMi40OCwtMi42IC0zLjY2LC0zLjkyIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTQ4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI4NS4yNTY4NywyNTAuNDc0NDIgYyAtMS4yMywwLjk5IC0yLjQ3LDEuOTYgLTMuNzMsMi44OSBsIDAuMjcsMC40NyA4MS40MiwxMzUuMTMgYyAzLjc3LC0yLjQ2IDcuNSwtNSAxMS4xNCwtNy42NyA3Ljg4LC01LjgxIDE1LjUsLTEyLjExIDIyLjg1LC0xOC44OSBsIC0xMTEuNTEsLTExMS40OSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1MCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAzNTEuMzg2ODcsMzkwLjA3NDQyIC0yLjc2LC00LjU5IC03NiwtMTI2LjEzIGMgLTEuNTQsMC45MiAtMy4xMSwxLjc2IC00LjY4LDIuNiAtMS41OSwwLjg2IC0zLjE4LDEuNjUgLTQuOCwyLjQyIC0xNC42LDYuOTIgLTMwLjQsMTAuNDYgLTQ2LjIzLDEwLjQ2IC0xMC4zNywwIC0yMC43MywtMS41IC0zMC43NSwtNC40OSAtMS43MSwtMC41MSAtMy4zOCwtMS4xOCAtNS4wNiwtMS43OCAtMS42OSwtMC41OSAtMy40LC0xLjExIC01LjA2LC0xLjc5IGwgLTU2LjA0LDEzNi4wOCAtMi4xOSw1LjMzIC0xLjg4LDQuNTcgLTAuMDEsMC4wMiBjIDAuMTQsMC4wNiAwLjI5LDAuMTEgMC40MywwLjE3IDAuMTYsMC4wNiAwLjMxLDAuMTEgMC40NiwwLjE4IGggMC4wMiBjIDAuMDQsMC4wMiAwLjA4LDAuMDMgMC4xMSwwLjA0IDEuMzIsMC41NSAyLjY1LDEuMDEgMy45OCwxLjUzIDEuNjcsMC42NSAzLjMzLDEuMzEgNSwxLjkyIDAuODYsMC4zMSAxLjcsMC42NyAyLjU1LDAuOTcgaCAwLjAxIGEgMjY3LjQyLDI2Ny40MiAwIDAgMCA1NC4xOSwxMi45NyBjIDAuNzMsMC4wOSAxLjQ0LDAuMTkgMi4xNywwLjI5IDAuNzUsMC4wOSAxLjUxLDAuMTYgMi4yNywwLjI1IDEuNDIsMC4xNiAyLjg0LDAuMzIgNC4yNywwLjQ2IGwgMS4wNiwwLjA5IGMgMS43NSwwLjE3IDMuNSwwLjMyIDUuMjQsMC40NCAwLjYsMC4wNSAxLjIsMC4wNyAxLjc5LDAuMTIgMS41MywwLjEgMy4wNiwwLjE5IDQuNTksMC4yNiAwLjk0LDAuMDYgMS44OCwwLjA4IDIuODIsMC4xMiAxLjIyLDAuMDQgMi40MywwLjA5IDMuNjUsMC4xMyAxLjc1LDAuMDQgMy41MiwwLjA1IDUuMjgsMC4wNiAwLjQyLDAgMC44MywwLjAxIDEuMjUsMC4wMiAxNC43NSwwIDI5LjUsLTEuMjMgNDQuMDksLTMuNjggMC4yNCwtMC4wNCAwLjQ5LC0wLjA4IDAuNzQsLTAuMTEgMS41NCwtMC4yNyAzLjA4LC0wLjU2IDQuNjIsLTAuODQgMC44OCwtMC4xNyAxLjc3LC0wLjM0IDIuNjMsLTAuNTEgMC45LC0wLjE5IDEuODEsLTAuMzcgMi43MSwtMC41NyAxLjUsLTAuMzEgMywtMC42NCA0LjUxLC0wLjk5IDAuMjcsLTAuMDYgMC41NCwtMC4xMSAwLjgxLC0wLjE5IDIyLjE4LC01LjE2IDQzLjYsLTEzLjE2IDYzLjcyLC0yMy43NSB2IC0wLjAxIGMgMS4zMiwtMC42OSAyLjYxLC0xLjQ4IDMuOTIsLTIuMiAxLjU2LC0wLjg1IDMuMTEsLTEuNzQgNC42NywtMi42MyAxLjA3LC0wLjYxIDIuMTYsLTEuMTggMy4yMywtMS44MiAwLjAxLC0wLjAxIDAuMDIsLTAuMDIgMC4wMywtMC4wMiBoIDAuMDEgYyAwLjAyLC0wLjAxIDAuMDMsLTAuMDIgMC4wNSwtMC4wMyBsIDAuMDIsLTAuMDIgLTAuMiwtMC4zMyAwLjIsMC4zMyBjIDAuMDEsMCAwLjAyLC0wLjAxIDAuMDMsLTAuMDEgMC4wMiwtMC4wMSAwLjAzLC0wLjAyIDAuMDUsLTAuMDMgMC4wNiwtMC4wNCAwLjEyLC0wLjA3IDAuMTgsLTAuMTEgMC4zNCwtMC4yMSAwLjY5LC0wLjQxIDEuMDQsLTAuNjIgeiBtIC0yMDIuNDcsLTMwNi4yMjAwMDcgYyAxLjIzLC0xIDIuNDgsLTEuOTYgMy43MywtMi45IGwgLTAuMjcsLTAuNDYgLTgxLjQyMDAwMiwtMTM1LjE0IGMgLTMuNzgsMi40NyAtNy41MSw1LjAyIC0xMS4xNiw3LjY5IC03Ljg3LDUuOCAtMTUuNSwxMi4wOSAtMjIuODMsMTguODYgbCAxMTEuNTEwMDAyLDExMS41IHoiDQogICAgIGZpbGw9IiM5M2Q1MDAiDQogICAgIGlkPSJwYXRoMTAzMTUyIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI5LjIzNjg2OCwtMjAuNjY1NTg3IGMgLTEuMjcsMS4yNyAtMi40NywyLjU4IC0zLjcxLDMuODYgLTEuMjMsMS4yOSAtMi40OSwyLjU3IC0zLjcsMy44NyBhIDI2Ni4xNTYsMjY2LjE1NiAwIDAgMCAtMjIuNTU5OTk5NzQsMjcuOTYgYyAtMC4zMjk5OTk5NiwwLjQ1IC0wLjY0OTk5OTk2LDAuOTMgLTAuOTc5OTk5OTYsMS4zOSAtMC43NiwxLjEyIC0xLjUyLDIuMjMgLTIuMjYsMy4zNSAtMC43OCwxLjE2IC0xLjU1LDIuMzQgLTIuMywzLjUxIC0wLjI4LDAuNDMgLTAuNTYsMC44NyAtMC44MywxLjMgLTI1LjY1MDAwMDMsNDAuMjMgLTM5LjM5MDAwMDMsODUuODU5OTk3IC00MS4yNDAwMDAzLDEzMS44NzAwMDcgLTAuMDcsMS43OSAtMC4xMSwzLjU4IC0wLjE1LDUuMzYgLTAuMDMsMS43OCAtMC4wOSwzLjU3IC0wLjA5LDUuMzUgSCAxMDkuMzQ2ODcgYyAwLC0xLjc4IDAuMTYsLTMuNTYgMC4yNiwtNS4zNSAwLjA5LC0xLjc5IDAuMTEsLTMuNTggMC4yOSwtNS4zNiAyLjA0LC0yMC41NiA5Ljk4LC00MC42NCAyMy44MiwtNTcuNTAwMDA3IDEuMTIsLTEuMzcgMi4zOSwtMi42NiAzLjYsLTMuOTggMS4xOSwtMS4zMyAyLjMxLC0yLjcgMy41OSwtMy45OCB6IG0gMzI1Ljg1MDAwMiwtMzkuMiBjIC0wLjIxLC0wLjEzIC0wLjQ0LC0wLjI2IC0wLjY1LC0wLjM5IC0xLjM5LC0wLjg1IC0yLjc5LC0xLjY3IC00LjIsLTIuNDkgLTAuODEsLTAuNDcgLTEuNjMsLTAuOTMgLTIuNDQsLTEuMzkgLTAuODMsLTAuNDYgLTEuNjQsLTAuOTIgLTIuNDcsLTEuMzcgYSA5MDEuNCw5MDEuNCAwIDAgMCAtNC4yOSwtMi4zMiBjIC0wLjIzLC0wLjExIC0wLjQ1LC0wLjIzIC0wLjY4LC0wLjM1IC05LjI2LC00Ljg0IC0xOC43NywtOS4xIC0yOC40OCwtMTIuOCAtMC4yNSwtMC4xIC0wLjUsLTAuMiAtMC43NSwtMC4yOSAtMi4xMiwtMC43OSAtNC4yNCwtMS41OCAtNi4zOCwtMi4zMiBhIDI2Ny4wODQsMjY3LjA4NCAwIDAgMCAtNTMuMjEsLTEyLjYyOTk5NyBsIC0yLjIyLC0wLjMgYyAtMC43NSwtMC4wOSAtMS40OSwtMC4xNiAtMi4yMywtMC4yNCAtMS40MywtMC4xNyAtMi44NSwtMC4zMyAtNC4yOSwtMC40NyAtMC4zOSwtMC4wNCAtMC43OSwtMC4wNiAtMS4yLC0wLjExIC0xLjY5LC0wLjE1IC0zLjQsLTAuMyAtNS4xLC0wLjQzIGwgLTEuOTksLTAuMTIgYyAtMS40NSwtMC4wOSAtMi45MywtMC4yIC00LjM4LC0wLjI2IC0wLjc4LC0wLjA0IC0xLjU2LC0wLjA3IC0yLjMzLC0wLjA5IFYgNjAuMDU0NDEzIGMgOC4xMiwwLjg0IDE2LjE3LDIuNTcgMjMuOTgsNS4yMiBsIDExNi41MSwtMTE2LjQ5IGMgLTQuMzMsLTMgLTguNywtNS45MiAtMTMuMiwtOC42NSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1NCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAyMTEuNzM2ODcsLTk4LjM2NTU4NCBjIC0xLjc5LDAuMDQgLTMuNTgsMC4wNCAtNS4zNiwwLjExIC0xMS4xNywwLjQ1IC0yMi4zMiwxLjU5IC0zMy4zOCwzLjQ1IC0wLjI0LDAuMDQgLTAuNDgsMC4wOCAtMC43MywwLjEyIC0xLjU1LDAuMjcgLTMuMDksMC41NSAtNC42MywwLjg0IC0wLjg3LDAuMTcgLTEuNzUsMC4zMyAtMi42MywwLjUgLTAuOTEsMC4xOCAtMS44MSwwLjM3IC0yLjcyLDAuNTcgLTEuNSwwLjMxIC0zLDAuNjQgLTQuNDksMC45OSAtMC4yOCwwLjA1IC0wLjU1LDAuMTIgLTAuODIsMC4xOCBhIDI2Ny40NjUsMjY3LjQ2NSAwIDAgMCAtNjMuNzMwMDAyLDIzLjc1OTk5NyBjIC0xLjMxLDAuNyAtMi41OSwxLjQ5IC0zLjksMi4yIC0xLjU2LDAuODYgLTMuMTIsMS43NCAtNC42NywyLjYzIC0xLjE1LDAuNjcgLTIuMzIsMS4yOCAtMy40NywxLjk2IC0wLjAxLDAuMDEgLTAuMDMsMC4wMiAtMC4wNCwwLjAyIC0wLjA4LDAuMDUgLTAuMTYsMC4xIC0wLjI0LDAuMTQgLTAuMywwLjE5IC0wLjYxLDAuMzQgLTAuOTEsMC41MiBsIDAuMDEsMC4wMiAyLjc3LDQuNTkgNzguNzUwMDAyLDEzMC43MyBjIDEuNTQsLTAuOTIgMy4xMSwtMS43NyA0LjY4LC0yLjYxIDEuNTgsLTAuODUgMy4xOCwtMS42NSA0Ljc5LC0yLjQxIGEgMTA3LjI1LDEwNy4yNSAwIDAgMSAzNS4zNiwtOS45MSBjIDEuNzgsLTAuMTggMy41NiwtMC4zMyA1LjM1LC0wLjQyIDEuNzgsLTAuMDkgMy41NywtMC4xOCA1LjM2LC0wLjE4IFYgLTk4LjQ3NTU4NCBjIC0xLjc5LDAgLTMuNTcsMC4wOCAtNS4zNSwwLjExIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTU2IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDQ4Mi40MjY4NywxNTQuMTA0NDIgYyAtMC4wOCwtMS40MiAtMC4xNiwtMi44MyAtMC4yNiwtNC4yNiBhIDc1LjQsNzUuNCAwIDAgMCAtMC4xNCwtMi4xMiBjIC0wLjExLC0xLjY3IC0wLjI1LC0zLjM0IC0wLjQxLC01LjAxIC0wLjAzLC0wLjQzIC0wLjA3LC0wLjg2IC0wLjExLC0xLjI5IC0wLjE4LC0xLjg3IC0wLjM4LC0zLjczIC0wLjYsLTUuNTkgLTAuMDIsLTAuMTUgLTAuMDMsLTAuMyAtMC4wNSwtMC40NSBsIC0wLjAzLC0wLjIxIGMgLTAuMjQsLTIuMDEgLTAuNTEsLTQuMDIgLTAuNzksLTYuMDIgbCAtMC4wMywtMC4xOSBhIDI2Ni40NTQsMjY2LjQ1NCAwIDAgMCAtOC4xNiwtMzcuMzMwMDA3IGMgLTAuMDMsLTAuMDkgLTAuMDUsLTAuMTYgLTAuMDgsLTAuMjQgLTAuNTcsLTEuOTEgLTEuMTYsLTMuOCAtMS43NSwtNS42OSAtMC4wOSwtMC4yNSAtMC4xNywtMC41IC0wLjI1LC0wLjc1IC0wLjU2LC0xLjcxIC0xLjEzLC0zLjQxIC0xLjcyLC01LjExIGwgLTAuNDgsLTEuMzggYyAtMC41MiwtMS40NyAtMS4wNiwtMi45NCAtMS42LC00LjQxIC0wLjI3LC0wLjcgLTAuNTMsLTEuNCAtMC44MSwtMi4wOSAtMC40NiwtMS4yMiAtMC45MywtMi40MyAtMS40MiwtMy42MyAtMC4zOCwtMC45NyAtMC43NywtMS45MiAtMS4xNiwtMi44NiAtMC4zOSwtMC45NSAtMC43OSwtMS44OCAtMS4xOCwtMi44MiAtMC41MiwtMS4yIC0xLjA1LC0yLjQgLTEuNTgsLTMuNTkgLTAuMywtMC42NyAtMC42LC0xLjM1IC0wLjkxLC0yLjAzIC0wLjY1LC0xLjQyIC0xLjMyLC0yLjg1IC0xLjk5LC00LjI3IC0wLjIxLC0wLjQyIC0wLjQyLC0wLjg2IC0wLjYzLC0xLjI5IC0wLjc4LC0xLjYyIC0xLjU4LC0zLjI1IC0yLjQsLTQuODUgLTAuMTEsLTAuMjIgLTAuMjMsLTAuNDUgLTAuMzQsLTAuNjcgLTAuOTEsLTEuNzcgLTEuODUsLTMuNTUgLTIuNzksLTUuMyAtMC4wNCwtMC4wNiAtMC4wNywtMC4xMyAtMC4xMSwtMC4xOSBhIDI2Ni45OSwyNjYuOTkgMCAwIDAgLTE1LjExLC0yNC41MiBsIC0xMTYuNTQsMTE2LjU0MDAwNyBjIDIuNjUsNy44MSA0LjM3LDE1Ljg2IDUuMjEsMjMuOTcgaCAxNTguMzIgYyAtMC4wNCwtMC43OSAtMC4wNiwtMS41OCAtMC4xLC0yLjM1IHoiDQogICAgIGZpbGw9IiM0ZDVhMzEiDQogICAgIGlkPSJwYXRoMTAzMTU4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDMyNC44MjY4NywxNjcuMTU0NDIgYyAwLDEuNzkgLTAuMTcsMy41NyAtMC4yNiw1LjM2IC0wLjA5LDEuNzkgLTAuMTIsMy41OCAtMC4zLDUuMzUgLTIuMDQsMjAuNTcgLTkuOTcsNDAuNjUgLTIzLjgxLDU3LjUyIC0xLjEyLDEuMzcgLTIuMzksMi42NSAtMy42LDMuOTggLTEuMiwxLjMyIC0yLjMxLDIuNjkgLTMuNTksMy45NyBsIDExMS42NywxMTEuNjUgYyAxLjI3LC0xLjI3IDIuNDYsLTIuNTggMy43LC0zLjg3IDEuMjQsLTEuMjkgMi41LC0yLjU2IDMuNywtMy44NyA4LjI2LC04Ljk1IDE1LjgyLC0xOC4zMSAyMi42MiwtMjguMDQgMC4yOCwtMC4zOSAwLjUzLC0wLjc3IDAuOCwtMS4xNSAwLjgzLC0xLjE5IDEuNjMsLTIuNCAyLjQ1LC0zLjYgMC43MSwtMS4wOCAxLjQyLC0yLjE1IDIuMTEsLTMuMjQgMC4zNSwtMC41MiAwLjY5LC0xLjA2IDEuMDIsLTEuNTggMjUuNjEsLTQwLjIxIDM5LjMyLC04NS43OSA0MS4xNiwtMTMxLjc3IDAuMDcsLTEuNzggMC4xMSwtMy41NyAwLjE0LC01LjM2IDAuMDQsLTEuNzggMC4wOSwtMy41NiAwLjA5LC01LjM1IHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTYwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDUyOS42NDY4NywtMTQ1LjM3NTU4IGMgLTI4Ljg5LC0yOC44OSAtNzUuNzMsLTI4Ljg5IC0xMDQuNjIsMCAtMjMuMDUsMjMuMDQgLTI3LjY2LDU3LjQ4OTk5NiAtMTMuOTMsODUuMTQ5OTkzIGwgLTE2MS4xNiwxNjEuMTQ5OTk3IGMgLTI3LjY2LC0xMy43MTk5OTcgLTYyLjEyLC05LjExOTk5NyAtODUuMTcsMTMuOTIwMDEgLTI4Ljg5LDI4Ljg5IC0yOC44OCw3NS43MyAwLDEwNC42MiAyOC45LDI4Ljg5IDc1Ljc1LDI4Ljg4IDEwNC42NCwwIDIzLjA1LC0yMy4wNSAyNy42NSwtNTcuNSAxMy45MiwtODUuMTYgbCAxNjEuMTYsLTE2MS4xNDAwMDcgYyAyNy42NywxMy43MiA2Mi4xMSw5LjEyIDg1LjE2LC0xMy45MyAyOC44OSwtMjguODggMjguODksLTc1LjcxOTk5MyAwLC0xMDQuNjA5OTkzIHoiDQogICAgIGZpbGw9IiM0MjQxNDMiDQogICAgIGlkPSJwYXRoMTAzMTYyIiAvPg0KPC9zdmc+DQo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDQyNiA0MjAiIHdpZHRoPSI0MjYuMHB0IiBoZWlnaHQ9IjQyMC4wcHQiPg0KDQo8cGF0aCBkPSJNIDE1Ny42NCA2LjEwIEMgMTYwLjIxIDYuNDIgMTYxLjQwIDguMjEgMTYzLjEyIDkuOTEgQyAxNjkuNjkgMTYuOTkgMTc2LjcyIDIzLjYyIDE4My4zNSAzMC42NCBDIDE5MS4xMyAzOS40OCAyMDAuMDQgNDcuMjAgMjA3LjgwIDU2LjA3IEMgMjAzLjU0IDYxLjA4IDE5OC42NCA2NS4zNSAxOTQuMDkgNzAuMDkgQyAxODEuNTYgODIuOTAgMTY4LjUxIDk1LjE3IDE1Ni4wNiAxMDguMDYgQyAxNTQuMTcgMTEwLjA0IDE1Mi4wOCAxMTEuNzUgMTQ5LjgyIDExMy4yOSBDIDE0OC45OCAxMDUuODQgMTUwLjk0IDk4LjY4IDE1MC40MyA5MS4yMiBDIDE0NS42MCA5Mi40MyAxNDEuMTQgOTQuNDUgMTM2Ljc2IDk2Ljc3IEMgMTEzLjY0IDEwOC40MiA5Mi4xNCAxMjcuMTggODAuNzEgMTUwLjczIEMgNzMuODMgMTY0LjE1IDcwLjI5IDE3OC45NyA2OS41OCAxOTQuMDAgQyA2OS42MCAyMDAuMzMgNjkuMzQgMjA2LjcyIDY5Ljg1IDIxMy4wMyBDIDcwLjk2IDIyMi44MyA3Mi4zNyAyMzIuNTMgNzUuMjMgMjQxLjk5IEMgNzUuODggMjQ0LjY4IDc3LjE4IDI0OC4xMyA3Ni4zNiAyNTAuODUgQyA3NC4zMyAyNTIuNDYgNzEuNTAgMjUzLjIzIDY5LjA5IDI1NC4xNiBDIDU1LjIyIDI1OS4xMyA0MS43MSAyNjUuMTYgMjcuNzcgMjY5LjkxIEMgMjUuMzMgMjYzLjI1IDIzLjkzIDI1Ni4zOSAyMi40NCAyNDkuNDggQyAyMC43MSAyNDAuNzggMTguNjcgMjMxLjgyIDE4LjI5IDIyMy4wMCBDIDE3LjIwIDIxMy42MSAxNy40OCAyMDQuNDQgMTcuNDYgMTk1LjAwIEMgMTcuMzYgMTgyLjg2IDE5LjE3IDE3MC43OSAyMS45MCAxNTguOTggQyAyOS4wNiAxMjguMDUgNDYuMTQgOTkuODkgNjkuNzcgNzguNzYgQyA4MC41NCA2OS4yOSA5Mi4yMSA2MC41NyAxMDQuODUgNTMuNzUgQyAxMjAuOTcgNDQuNjggMTM4LjM2IDM3LjQ1IDE1Ni4zMyAzMy4wMCBDIDE1Ni45OCAyMy44NSAxNTUuOTQgMTQuOTIgMTU3LjY0IDYuMTAgWiIgZmlsbD0iI2EyNDM0MiIgLz4NCjxwYXRoIGQ9Ik0gMTYxLjg2IDE1LjMxIEMgMTY4Ljc4IDIwLjc2IDE3NC4yNyAyOC4yNiAxODAuNjEgMzQuMzkgQyAxODYuODkgNDAuNDYgMTkyLjY0IDQ3LjAzIDE5OS4wNCA1Mi45OCBDIDIwMC4wMiA1NC4xMyAyMDIuMjAgNTUuNjcgMjAxLjMyIDU3LjM5IEMgMTk4Ljg4IDYwLjQ3IDE5NS4yNiA2Mi42NyAxOTIuNDkgNjUuNDkgQyAxODQuMTUgNzMuODIgMTc1Ljg3IDgyLjIwIDE2Ny40OCA5MC40OSBDIDE2My4xOSA5NC42NSAxNTkuMzkgOTkuMTMgMTU0LjY0IDEwMi44MSBDIDE1NC4yNSA5Ni45NyAxNTQuODkgOTEuMjMgMTU1LjMxIDg1LjQxIEMgMTQ4Ljg0IDg2LjA5IDE0My42MyA4OC45OSAxMzcuODIgOTEuNjQgQyAxMzEuMjYgOTQuODggMTI0LjQ5IDk4LjI1IDExOC41NyAxMDIuNTYgQyAxMTMuMDkgMTA2LjU1IDEwNy43MCAxMTAuMDYgMTAyLjkzIDExNC45MiBDIDk3LjA2IDEyMS4wMCA5MC45NSAxMjYuMjIgODYuMjcgMTMzLjM1IEMgNzIuMjQgMTUyLjg5IDY0LjgzIDE3Ni45NiA2NS40MyAyMDEuMDAgQyA2NS4wOCAyMTMuODAgNjcuMDkgMjI2LjI1IDcwLjE5IDIzOC42MyBDIDcxLjA0IDI0MS45MSA3MS41MSAyNDUuMjMgNzEuNzkgMjQ4LjU5IEMgNTkuNjAgMjUzLjQ4IDQ3LjI2IDI1Ny45MiAzNS4xMCAyNjIuODggQyAzMy44MSAyNjMuMzMgMzAuMjIgMjY0LjQ5IDI5Ljc4IDI2Mi40NSBDIDI1Ljc3IDI0OC4xNyAyMy41OCAyMzMuODUgMjIuMTQgMjE5LjEzIEMgMjEuMDcgMjExLjI3IDIxLjU2IDIwMi45OSAyMS40NCAxOTUuMDAgQyAyMS4zMiAxODcuMjUgMjIuNDcgMTc5LjkzIDIzLjUxIDE3Mi4yMSBDIDI2LjEwIDE1NC4yNCAzMi4zMSAxMzYuNzYgNDEuMTAgMTIwLjkwIEMgNDYuOTQgMTExLjA5IDUzLjYwIDEwMS42NSA2MS4xOSA5My4xMSBDIDc1LjQ5IDc3LjI3IDkzLjEzIDY1LjE3IDExMS42MyA1NC43NCBDIDExOC4yMSA1MS4xNyAxMjUuMTcgNDguMjYgMTMyLjA1IDQ1LjMwIEMgMTQxLjIyIDQxLjQ3IDE1MC43NiAzOC45OSAxNjAuMjIgMzYuMDQgQyAxNjEuMDggMjkuMTYgMTYwLjY2IDIyLjEwIDE2MS44NiAxNS4zMSBaIiBmaWxsPSIjZTdiYWI4IiAvPg0KPHBhdGggZD0iTSAyNDQuODAgMjguNTYgQyAyNDcuNDMgMjguMTAgMjUwLjA5IDI4LjY2IDI1Mi42NCAyOS4zMCBDIDI2My4wOCAzMi4xNiAyNzMuNDEgMzUuMzYgMjgzLjQ2IDM5LjM5IEMgMzAzLjQwIDQ3LjAxIDMyMi4yMiA1Ny43NiAzMzguNzkgNzEuMjMgQyAzNDUuNDggNzYuODEgMzUxLjY4IDgzLjAyIDM1Ny41MCA4OS41MCBDIDM3Mi43NCAxMDcuMDQgMzgzLjgzIDEyNy45NiAzODkuODcgMTUwLjM5IEMgMzkyLjQwIDE1OC43OCAzOTMuNzUgMTY3LjM4IDM5NS4wNyAxNzYuMDEgQyAzOTUuOTcgMTgyLjU3IDM5NS4zNyAxODkuMzcgMzk1Ljk3IDE5NS45MCBDIDM5Ni44OCAyMDMuNTYgMzk2LjYxIDIxMS4xMyAzOTUuNjggMjE4Ljc3IEMgMzk1LjQ2IDIyNS40OCAzOTQuNDIgMjMyLjA1IDM5My4zNiAyMzguNjYgQyAzOTIuNTkgMjQ0LjU2IDM5MC42MCAyNTAuMDkgMzkwLjI0IDI1Ni4wNSBDIDM5Ny40MyAyNjAuNDUgNDA0Ljc2IDI2NC41OSA0MTEuOTAgMjY5LjA3IEMgNDExLjc3IDI2OS44MyA0MTEuNjQgMjcwLjU4IDQxMS41MSAyNzEuMzQgQyA0MDYuMTcgMjcyLjY4IDQwMC44NSAyNzQuMDggMzk1LjU1IDI3NS41NyBDIDM4Mi44NCAyNzkuMzUgMzY5Ljk2IDI4Mi41MSAzNTcuMjIgMjg2LjE3IEMgMzUzLjI2IDI4Ny4yMiAzNDkuMjcgMjg4LjY4IDM0NS4yMSAyODkuMjcgQyAzNDMuNzYgMjg4LjU2IDM0My41OCAyODcuNDIgMzQzLjEwIDI4Ni4wMSBDIDMzNy45OSAyNjYuODcgMzMyLjM0IDI0Ny45MCAzMjcuMTUgMjI4Ljc3IEMgMzI1LjU0IDIyMi42MyAzMjIuODEgMjE3LjY0IDMyMy40NSAyMTEuMTEgQyAzMzAuMDEgMjE0LjMyIDMzNS4zNCAyMTkuOTQgMzQyLjIzIDIyMi4wMyBDIDM0Mi43NSAyMTcuMzUgMzQzLjUyIDIxMi43NCAzNDMuNDggMjA4LjAwIEMgMzQzLjU0IDIwMC4xMiAzNDMuODEgMTkxLjkwIDM0Mi41MCAxODQuMTcgQyAzNDEuMDUgMTc1LjA3IDMzOS40MiAxNjUuNTEgMzM2LjE0IDE1Ni44OCBDIDMzMi4zMiAxNDYuMjEgMzI2Ljg3IDEzNi4wMyAzMTkuOTYgMTI3LjA0IEMgMzA2LjQ3IDEwOS41NiAyODguMDggOTcuNTYgMjY3LjY2IDg5LjYwIEMgMjU5LjM0IDg2LjQ2IDI1MS4wMyA4My41OCAyNDIuMTkgODIuMjcgQyAyMzkuODEgODEuODEgMjM4LjA1IDgwLjgyIDIzOC40MSA3OC4wNSBDIDIzOS4wMyA2OC4yMSAyNDEuODYgNTguNzAgMjQxLjU1IDQ4LjcwIEMgMjQxLjg1IDQ4LjkyIDI0Mi4xNSA0OS4xNCAyNDIuNDUgNDkuMzYgQyAyNDIuOTkgNDIuNDAgMjQ0LjAxIDM1LjQ4IDI0NC44MCAyOC41NiBaIiBmaWxsPSIjNWI3MDM2IiAvPg0KPHBhdGggZD0iTSAyNTMuMzEgMzMuODIgQyAyNzMuMzkgMzkuMzcgMjkyLjgzIDQ2Ljg4IDMxMC45OCA1Ny4xNSBDIDMyMS4zNiA2My42NyAzMzIuMTQgNzAuNTQgMzQxLjA3IDc4LjkxIEMgMzQ1LjMwIDgyLjQyIDM0OS4yMiA4Ni4wNiAzNTIuNjEgOTAuNDIgQyAzNjEuNjMgMTAwLjQwIDM2OS4zNSAxMTEuNjkgMzc1LjE3IDEyMy44MyBDIDM4NC4yMCAxNDEuMjMgMzg5LjA5IDE2MS4xMSAzOTEuMzMgMTgwLjUxIEMgMzkzLjA4IDE5MC4wOCAzOTIuMjUgMTk5LjM0IDM5Mi40NiAyMDkuMDAgQyAzOTIuNjQgMjE1Ljc5IDM5MS4yMiAyMjIuMjEgMzkwLjUwIDIyOC45MSBDIDM4OS42MyAyMzcuMDkgMzg3LjkwIDI0NS4xMCAzODUuODQgMjUzLjA1IEMgMzg1LjY1IDI1NC40OSAzODQuNzAgMjU2Ljg0IDM4Ni4wMyAyNTcuOTUgQyAzODkuOTQgMjYxLjcyIDM5NS43NyAyNjQuMTMgNDAwLjQwIDI2Ni44NiBDIDQwMS4zMyAyNjcuMzcgNDAxLjQzIDI2OS4wMCA0MDEuODUgMjY5LjkyIEMgMzg5LjY2IDI3Mi40NSAzNzcuNzggMjc2LjQ1IDM2NS43MSAyNzkuNDkgQyAzNTkuMjIgMjgxLjA0IDM1My41MiAyODMuNjkgMzQ2LjcyIDI4My43NCBDIDM0NC4wNiAyNzMuMTkgMzQwLjkxIDI2Mi43NiAzMzguMDcgMjUyLjI1IEMgMzM1LjE3IDI0MS40OSAzMzEuNjcgMjMxLjA3IDMyOS4yMCAyMjAuMjMgQyAzMzQuNDMgMjIyLjg3IDMzOS4xNiAyMjYuMzIgMzQ0LjM5IDIyOC45NiBDIDM0Ni45MCAyMjMuNDMgMzQ2LjU4IDIxNy44NyAzNDcuMzEgMjEyLjAwIEMgMzQ4LjE4IDIwMy40NiAzNDcuOTQgMTk1LjAxIDM0Ni44NCAxODYuNTEgQyAzNDUuMTYgMTY2LjU5IDMzOC43NCAxNDcuMTggMzI3LjU2IDEzMC41NiBDIDMyMC4xMiAxMTguNzMgMzEwLjAzIDEwOS40NSAyOTguOTQgMTAxLjEwIEMgMjg1LjQ1IDkyLjEzIDI3MC40OCA4NS4yOCAyNTQuODcgODAuOTcgQyAyNTAuNjcgNzkuODcgMjQ2LjUzIDc4LjY1IDI0Mi40MCA3Ny4yOSBDIDI0NC41NCA2My4xOSAyNDYuMjYgNDkuMDYgMjQ4LjMyIDM0Ljk2IEMgMjQ4LjU1IDMyLjE5IDI1MS42MiAzMy42MSAyNTMuMzEgMzMuODIgWiIgZmlsbD0iI2MzZDg5YyIgLz4NCjxwYXRoIGQ9Ik0gNzQuOTUgMjkwLjMzIEMgODAuMTUgMjkxLjI5IDg0Ljk5IDI5My4yMSA5MC4yMCAyOTQuNTUgQyA5OS40NCAyOTYuOTEgMTA4LjQyIDMwMC4xNSAxMTcuNjYgMzAyLjUzIEMgMTI0LjcxIDMwNC44MCAxMzEuOTAgMzA2LjU1IDEzOC45NiAzMDguNzggQyAxNDMuNjMgMzEwLjMxIDE0OC4xNyAzMTAuNzMgMTUyLjE5IDMxMy44NCBDIDE0Ni4yOCAzMTcuMzcgMTM5LjkwIDMxOS44MSAxMzMuODEgMzIzLjA1IEMgMTM2LjA3IDMyNy41MSAxMzkuOTEgMzI5LjQxIDE0My43NyAzMzIuMjMgQyAxNTUuNDAgMzQwLjM4IDE2OC4zNSAzNDYuNzggMTgxLjg4IDM1MS4wNiBDIDE5MC41OCAzNTMuNDMgMTk5Ljk0IDM1NS44MyAyMDkuMDAgMzU1LjU5IEMgMjE1LjY1IDM1NS41MiAyMjIuNDEgMzU1Ljg2IDIyOS4wMiAzNTUuMTAgQyAyNDMuODIgMzUyLjk3IDI1OC4yMSAzNDcuNjMgMjcxLjAwIDMzOS45MiBDIDI4NC41NSAzMzEuOTAgMjk2LjQ3IDMyMS43NyAzMDcuMjkgMzEwLjM4IEMgMzA5LjMzIDMxMS43NyAzMTEuMzUgMzEzLjE2IDMxMy4yNCAzMTQuNzUgQyAzMTkuMTMgMzE5Ljg1IDMyNS4yMSAzMjQuNzMgMzMxLjEwIDMyOS44MyBDIDMzNi44OSAzMzQuODIgMzQzLjIyIDMzOS4zNCAzNDguNTIgMzQ0Ljg0IEMgMzQ0LjE0IDM0OS43MSAzMzkuMjYgMzU0LjAxIDMzNC4zNSAzNTguMzIgQyAzMTYuMTggMzc0LjAwIDI5NS40NiAzODguMjkgMjczLjA0IDM5Ny4xMiBDIDI2Ny43NCAzOTkuMjkgMjYyLjUyIDQwMS41MiAyNTYuOTQgNDAyLjkyIEMgMjQ1LjA3IDQwNi4wMyAyMzIuMzEgNDA5LjA1IDIyMC4wMCA0MDguNzMgQyAyMTAuMDEgNDA4LjY1IDE5OS40OCA0MDkuMzIgMTg5LjcwIDQwNy40MCBDIDE2OS41MiA0MDQuNTQgMTUxLjAwIDM5Ny4zMCAxMzMuMDEgMzg3Ljk0IEMgMTE3LjUyIDM3OS40MyAxMDMuMTUgMzY4Ljc3IDg5Ljk3IDM1Ny4wMiBDIDg2LjM3IDM1My45MiA4My4yNCAzNDkuNTggNzkuMDYgMzQ3LjM0IEMgNzAuNzggMzUwLjI2IDYzLjQyIDM1NS42NyA1NS4wMiAzNTguNDYgQyA1NS43MCAzNTEuMjUgNTguMzkgMzQ1LjI0IDYwLjI3IDMzOC4yNSBDIDYzLjI3IDMyOC41NyA2NS44OSAzMTguNzkgNjguOTggMzA5LjE0IEMgNzAuOTcgMzAyLjc2IDcyLjE2IDI5Ni40NiA3NC45NSAyOTAuMzMgWiIgZmlsbD0iIzNjNjU5NCIgLz4NCjxwYXRoIGQ9Ik0gOTIuODMgMzAwLjA4IEMgMTAyLjY1IDMwMi45MCAxMTIuNDMgMzA1Ljg1IDEyMi4yNSAzMDguNjUgQyAxMjguMzAgMzEwLjQxIDEzNC4zNiAzMTIuMDMgMTQwLjI4IDMxNC4yMiBDIDEzNS4zNyAzMTcuMzggMTI5LjkwIDMxOS4zOCAxMjQuOTEgMzIyLjQyIEMgMTI3LjA0IDMyNC44NiAxMjkuMjYgMzI3LjE5IDEzMS44NiAzMjkuMTQgQyAxNDcuNzggMzQxLjgwIDE2NS41MSAzNTEuNjEgMTg1LjMwIDM1Ni42OSBDIDE5OS45NCAzNjAuODAgMjE1LjY5IDM2MS4yNyAyMzAuNzQgMzU5LjQyIEMgMjU4LjA0IDM1NS4xNCAyODIuMzAgMzQxLjAyIDMwMi4wMiAzMjIuMDIgQyAzMDMuODEgMzIwLjM3IDMwNS43MCAzMTguMTggMzA3Ljk5IDMxNy4yNSBDIDMxMC41MiAzMTguMzEgMzEyLjgwIDMyMC4zNyAzMTQuODcgMzIyLjE0IEMgMzE4Ljk1IDMyNS43NCAzMjMuMjEgMzI5LjEyIDMyNy4zMyAzMzIuNjggQyAzMzIuMDYgMzM2LjgzIDMzNy4xOSAzNDAuMzggMzQxLjU0IDM0NC45NyBDIDMzNy4yOCAzNDkuOTkgMzMyLjE4IDM1My45NiAzMjcuMjEgMzU4LjIzIEMgMzE3Ljc2IDM2Ni4yOCAzMDcuNTggMzczLjQ5IDI5Ni45OSAzNzkuOTcgQyAyNzEuNjQgMzk1LjE1IDI0MS4xMiA0MDUuNjQgMjExLjMzIDQwNC40OSBDIDE5MC4xOCA0MDQuOTcgMTY4LjY1IDM5OS4wNyAxNDkuMzMgMzkwLjc1IEMgMTI0LjI4IDM3OS41NCAxMDEuNDggMzYzLjIzIDgyLjY4IDM0My4yNiBDIDgxLjU4IDM0Mi40NCA4MC45MyAzNDEuMjIgNzkuNDAgMzQxLjc1IEMgNzMuMzQgMzQzLjYzIDY4Ljc4IDM0OC4wMiA2Mi4zMSAzNDkuMDYgQyA2Mi44NiAzNDUuODkgNjMuNjAgMzQyLjc4IDY0LjU4IDMzOS43MSBDIDY5LjE5IDMyNS4zOSA3My4wNSAzMTAuNzYgNzcuNjIgMjk2LjM4IEMgODMuMDYgMjk2LjcxIDg3LjY1IDI5OC42NSA5Mi44MyAzMDAuMDggWiIgZmlsbD0iIzRjODFiZiIgLz4NCjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB4PSIwcHgiDQogICB5PSIwcHgiDQogICB2aWV3Qm94PSIwIDAgMzAwIDMwMCINCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiDQogICBpZD0ic3ZnNjc2NDYiDQogICB3aWR0aD0iMzAwIg0KICAgaGVpZ2h0PSIzMDAiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcw0KICAgICBpZD0iZGVmczY3NjUwIiAvPjxwYXRoDQogICAgIGZpbGw9IiNiYWI5YmIiDQogICAgIGQ9Im0gMjAuNjA1MDEyLDE4MC42NjkwMiBjIC0zLjA0OTg4Myw0NC43MzcyOSAzMS44MDgzNyw4My42Nzg2NiA3Ny43MDU1MjQsODYuODA3NjMgMTUuMTcwNDY0LDEuMDM0MjEgMjkuNjMzMjI0LC0yLjAzODkxIDQyLjM2NjYyNCwtOC4xMzkzOCAxMS43ODc2NSw3Ljc3MjAyIDI1LjY5OTUzLDEyLjc3OTY1IDQwLjg2OTk5LDEzLjgxMzg3IDQ1Ljg5NzE1LDMuMTI4OTYgODUuNzE3ODcsLTMwLjcyMTMyIDg4Ljc2Nzc1LC03NS40NTg2IDIuMDYzNjYsLTMwLjI3MDk5IC0xMy4yNjI5MSwtNTcuODQ0ODcgLTM3LjU4NjQ5LC03My41MDg4NyAwLjY5Nzk0LC0zLjQyMDI1IDEuMjU1NjUsLTYuODkxNjcgMS40OTkwMiwtMTAuNDYxNTMgQyAyMzcuMjc3MzEsNjguOTg0ODYxIDIwMi40MTkwNSwzMC4wNDM0NDkgMTU2LjUyMTksMjYuOTE0NDk1IDExMC42MjQ3NSwyMy43ODU1NDEgNzAuODA0MDUyLDU3LjYzNTg1IDY3Ljc1NDE3LDEwMi4zNzMxMiBjIC0wLjI0MzM0NCwzLjU2OTUgLTAuMTYxOTIzLDcuMDg0NTQgMC4wNjUzNSwxMC41NjgxNyAtMjYuMjI0NDk4LDEyLjIxOTg2IC00NS4xNTEzMzksMzcuNDU2NyAtNDcuMjE1MDA5LDY3LjcyNzcgeiBtIDI0MS4zODYyMDgsMTYuNDU2MDYgYyAtMi43NDQ4MSw0MC4yNjI0MyAtMzguNTg0NjcsNzAuNzI4NzUgLTc5Ljg5MDk3LDY3LjkxMjc3IC0xMi4xNTMwMSwtMC44Mjg1IC0yMy40MDQxOSwtNC41MDQ4MSAtMzMuMjI0MTYsLTEwLjIyODc4IDIxLjQ0ODM4LC0xMy40MDQzMiAzNi4zODQzMSwtMzYuMTI2MDUgMzguMjAyMDksLTYyLjc5MDEgMC4yNDMzNSwtMy41Njk0OCAwLjE2MTksLTcuMDg0NTUgLTAuMDY1MywtMTAuNTY4MTggMjAuNTM3MjIsLTkuNTcxMTkgMzYuNTI0MDcsLTI3LjE0Mjk2IDQzLjUwNzUxLC00OC44NjA0NyAyMC41MDE4NiwxNC4zMzAzMSAzMy4yNTk3OSwzOC4yOTAyOCAzMS40NzA1Niw2NC41MzU2OCB6IE0gMTEyLjk2NjM1LDE4MC4yNzc1NiBjIDkuODIyMDIsNC45NTc5NiAyMC43OTE5Nyw4LjEwNTQ4IDMyLjQ5NTAzLDguOTAzMzIgMTEuNzAzMDgsMC43OTc4NCAyMi45OTkxNywtMC44MzE4OCAzMy40MDI3LC00LjQxMDg2IDAuMDU0NywyLjIwODg5IDAuMDQ1LDQuNDMzMzQgLTAuMTA4MjUsNi42ODA2NSAtMS43MjIwNCwyNS4yNTk3NCAtMTYuNDc2MzIsNDYuNjU1NzEgLTM3LjQzMDY2LDU4LjM5OTIxIC0xOS4xNjYzOCwtMTQuNDgyODYgLTMwLjg4MDU4LC0zNy42ODA0NSAtMjkuMTU4NjMsLTYyLjkzODgyIDAuMTUzMTcsLTIuMjQ3NDggMC40NDU0MSwtNC40NTI2OSAwLjc5OTQxLC02LjYzMzUzIHogbSAzNi42MzEsLTUxLjc2NTI1IGMgMTUuMjQ4NzYsMTEuNTIxMyAyNS43NjU4NywyOC41NjU5MyAyOC41NjY2Miw0Ny43NzcxNSAtOS45Mzk1MiwzLjc0NzIzIC0yMC44MjEzNyw1LjU1MjY5IC0zMi4xNDk2NCw0Ljc4MDQxIC0xMS4zMjgyNSwtMC43NzIyOSAtMjEuODY0NCwtNC4wMzc3OCAtMzEuMjAzMDUsLTkuMTA0NDggNS4zODE2NiwtMTguNjQ5NjkgMTguMTE0NzUsLTM0LjEwNzQzIDM0Ljc4NjA0LC00My40NTI2NCB6IG0gLTQyLjA0NzI2LDM4Ljk2NDA3IEMgOTEuMDgzNjAxLDE1NS45NjQ3NCA3OS42MDkwOTksMTM4LjI1ODE4IDc2LjY3MTA4MSwxMTguMTA5MyBjIDkuOTM5NjYsLTMuNzQ5MDQgMjAuODIxNTA2LC01LjU1NDUzIDMyLjE0OTc2OSwtNC43ODIyNSAxMi4xNTMwMiwwLjgyODUxIDIzLjQwNDIsNC41MDQ4IDMzLjIyNDE4LDEwLjIyODc4IC0xNi4xNjY5MSwxMC4xMDUyNiAtMjguNTczMSwyNS41MDg5IC0zNC40OTUwNCw0My45MjE5MyB6IG0gNTAuMjAyMDIsLTQyLjg1MTE2IGMgMTAuNTA1OTUsLTQuMzM4MzMgMjIuMTUyNDIsLTYuNDUzNTcgMzQuMzA0OTksLTUuNjI1MDkgMTEuMzI3NzksMC43NzIyNSAyMS44NjQ0Miw0LjAzNzc4IDMxLjIwMzA3LDkuMTA0NDkgLTUuNjQzNTMsMTkuNTYxNTEgLTE5LjQxMTM1LDM1LjU0NzIyIC0zNy4yOTMyMiw0NC43MTk1NSAtMy4zNjc3OCwtMTkuMDQ5NjIgLTEzLjU2ODg4LC0zNS45OTQ0NyAtMjguMjE0NzQsLTQ4LjIwMDM0IHogTSA3Ni4wNzk4ODcsMTAyLjk0MjU3IGMgMi43NDQ4MTcsLTQwLjI2MjQyNyAzOC41ODQ2NjMsLTcwLjcyODc0IDc5Ljg5MDk0MywtNjcuOTEyNzYgNDEuMzA2MjgsMi44MTU5NzkgNzIuNjc5NzgsMzcuODY0NDM4IDY5LjkzNDk2LDc4LjEyNjg2IC0wLjE1MzE3LDIuMjQ3NDkgLTAuNDQ1NCw0LjQ1MjcgLTAuNzk5NCw2LjYzMzU0IC05LjgyMjAyLC00Ljk1Nzk2IC0yMC43OTE5NywtOC4xMDU0OSAtMzIuNDk1MDMsLTguOTAzMzIgLTE1LjE3MDQ4LC0xLjAzNDIyIC0yOS42MzMyNSwyLjAzODk0IC00Mi4zNjY2Miw4LjEzOTM4IC0xMS43ODc2NywtNy43NzIwMyAtMjUuNjk5NTQsLTEyLjc3OTY2IC00MC44NzAwMiwtMTMuODEzODggLTExLjcwMzA1NSwtMC43OTc4NCAtMjIuOTk5MTU0LDAuODMxODggLTMzLjQwMjY4OCw0LjQxMDg2IC0wLjA1NDczLC0yLjIwODg4IC0wLjA0NDk1LC00LjQzMzM1IDAuMTA4MjUzLC02LjY4MDY2IHogbSAtNy4yMTE2NzcsMTguNjMwNjUgYyAzLjk3MTU2MywyMi40NjI0OCAxNy40MjU0OCw0Mi4wNDUwNyAzNi40NzM4NSw1NC4zMTMwNSAtMC42OTc5NSwzLjQyMDI0IC0xLjI1NTY2LDYuODkxNjggLTEuNDk5MDIsMTAuNDYxNTMgLTEuODE3ODcsMjYuNjY1NDMgOS44OTY4MSw1MS4yMDE3MSAyOS4zMjcwNSw2Ny4zOTM3OCAtMTAuNTA1OTQsNC4zMzgzNyAtMjIuMTUyNDMsNi40NTM1OCAtMzQuMzA0OTg3LDUuNjI1MSBDIDU3LjU1ODgyMiwyNTYuNTUwNyAyNi4xODUzMjQsMjIxLjUwMjI1IDI4LjkzMDE0LDE4MS4yMzk4MyAzMC43MTkyMTUsMTU0Ljk5NjcyIDQ2LjYxMDg4NywxMzIuOTg5NDQgNjguODY4MDM1LDEyMS41NzIyOCBaIg0KICAgICBpZD0icGF0aDY3NjQwIg0KICAgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjIuNjA3NDQiIC8+PC9zdmc+DQo=\"","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/index.mdx\";\nimport {graphql} from 'gatsby';\nexport const pageQuery = graphql`\n query PageTemplate($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PageTemplate({children}) {\n return children;\n}\nPageTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PageTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n","import * as React from 'react'\r\nimport { Button as AriakitButton } from 'ariakit/button'\r\nimport styled, { css } from '@xstyled/styled-components'\r\n\r\nconst variant =\r\n ({ background, backgroundHover, on }) =>\r\n () => {\r\n return css`\r\n background-color: ${background};\r\n color: ${on};\r\n\r\n &:hover:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n\r\n &:active:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n `\r\n }\r\n\r\nconst InnerButton = styled.buttonBox`\r\n appearance: none;\r\n border-radius: base;\r\n transition: base;\r\n font-weight: 500;\r\n border: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font-size: 16;\r\n padding: 2 3;\r\n text-decoration: none !important;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: default;\r\n }\r\n\r\n &[data-variant='primary'] {\r\n ${variant({\r\n background: 'primary-600',\r\n backgroundHover: 'primary-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='success'] {\r\n ${variant({\r\n background: 'green-600',\r\n backgroundHover: 'green-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='danger'] {\r\n ${variant({\r\n background: 'red-600',\r\n backgroundHover: 'red-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='neutral'] {\r\n ${variant({\r\n background: 'gray-300',\r\n backgroundHover: 'gray-400',\r\n on: 'black',\r\n })}\r\n }\r\n`\r\n\r\nexport const Button = React.forwardRef(\r\n ({ variant = 'primary', children, ...props }, ref) => {\r\n return (\r\n \r\n {(buttonProps) => (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n )\r\n },\r\n)\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { th, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst InnerFeature = styled.box`\r\n border-left: 1;\r\n border-left-style: dashed;\r\n border-left-color: layout-border;\r\n padding-left: 4 !important;\r\n padding-right: 5 !important;\r\n`\r\n\r\nexport const Feature = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureTitle = styled.h2`\r\n margin: 3 0;\r\n font-size: 16;\r\n font-weight: 500;\r\n border-left: 1;\r\n border-color: primary-400;\r\n margin-left: ${th.px(-9)};\r\n padding-left: ${th.px(9)};\r\n`\r\n\r\nexport const FeatureText = styled.p`\r\n color: on-background-light;\r\n font-size: 15;\r\n text-align: justify;\r\n margin: 4 0;\r\n`\r\n\r\nconst InnerFeatureImage = styled.img`\r\n margin-top: 3;\r\n`\r\n\r\nexport const FeatureImage = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureList = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nexport const HeroTitle = styled.h1Box`\r\n font-size: 38;\r\n font-weight: 600;\r\n line-height: 1.2;\r\n letter-spacing: -1.12px;\r\n margin: 0 0 2;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 4;\r\n font-size: 48;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 60;\r\n `,\r\n )}\r\n`\r\n\r\nexport const HeroTeaser = styled.pBox`\r\n font-size: 18;\r\n margin: 3 0;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\n\r\nconst InnerHero = styled(ScreenContainer)`\r\n background-repeat: no-repeat;\r\n background-position: top -5% center;\r\n background-size: 100% auto;\r\n padding-top: 65%;\r\n text-align: center;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 0;\r\n margin-top: 5;\r\n background-position: center right;\r\n background-size: 58% auto;\r\n min-height: 400;\r\n text-align: left;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n margin-top: 6;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Hero = React.forwardRef(\r\n ({ backgroundImageURL, ...props }, ref) => {\r\n return (\r\n \r\n )\r\n },\r\n)\r\n\r\nexport const HeroBody = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const HeroSection = styled.sectionBox`\r\n overflow: hidden;\r\n padding-top: 2;\r\n padding-bottom: 5;\r\n`\r\n\r\nexport const HeroActionList = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport const HeroAction = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { useColorMode, th, x } from '@xstyled/styled-components'\r\n\r\nconst ImageContainer = styled.div`\r\n text-align: ${props => props.align};\r\n`\r\nconst InnerImage = styled.img`\r\n display: inline-block;\r\n`\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const Image = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst Cite = styled(x.cite)`\r\n display: block;\r\n text-align: right;\r\n margin-top: 1rem;\r\n`\r\n\r\nexport const Quote = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const QuoteAuthor = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","import styled, {up, css, x, useColorMode} from '@xstyled/styled-components'\r\nimport React from \"react\";\r\n\r\nexport const WideFeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const WideFeature = styled.divBox`\r\n display: block;\r\n ${up(\r\n 'md',\r\n css`\r\n margin: 0 20px;\r\n border-top: 1px dashed;\r\n border-bottom: 1px dotted;\r\n border-color: var(--xstyled-colors-layout-border,#d4d4d8);\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n `,\r\n )})\r\n`\r\n\r\nexport const WideFeatureText = styled.divBox`\r\n padding: 1rem;\r\n grid-column-start: span 2;\r\n\r\n font-size: 18;\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n padding: 3rem;\r\n padding-top: 2rem;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\nconst WideFeatureImageContainer = styled.divBox`\r\n padding: 1rem;\r\n text-align: center;\r\n`\r\n\r\nconst InnerImage = styled.imgBox`\r\n display: inline-block;\r\n //max-width: 300px;\r\n`\r\n\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const WideFeatureImage = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React, { useRef, useEffect } from 'react';\r\nimport { marginLeft } from '@xstyled/styled-components'\r\n\r\nconst Gist = ({ gist, file }) => {\r\n const iframeRef = useRef(null);\r\n\r\n const fetchGistContent = async () => {\r\n const url = file\r\n ? `https://gist.githubusercontent.com/${gist}/raw/${file}`\r\n : `https://gist.githubusercontent.com/${gist}/raw`;\r\n try {\r\n const response = await fetch(url);\r\n if (response.ok) {\r\n const text = await response.text();\r\n const lineCount = text.split('\\n').length;\r\n const lineHeight = 22; // Approximate line height in pixels\r\n const height = lineCount * lineHeight + 40;\r\n if (iframeRef.current) {\r\n iframeRef.current.style.height = `${height}px`;\r\n }\r\n } else {\r\n console.error('Failed to fetch Gist content');\r\n }\r\n } catch (error) {\r\n console.error('Error fetching Gist content:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchGistContent();\r\n }, [gist, file]);\r\n\r\n const src = file\r\n ? `https://gist.github.com/${gist}.pibb?file=${file}`\r\n : `https://gist.github.com/${gist}.pibb`;\r\n\r\n const gistUrl = file\r\n ? `https://gist.github.com/${gist}#file-${file.replace(/\\./g, '-').toLowerCase()}`\r\n : `https://gist.github.com/${gist}`;\r\n\r\n return (\r\n
\r\n {file && (\r\n
\r\n 🗒️\r\n \r\n {file}\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport { Gist };\r\n","export default __webpack_public_path__ + \"static/bounded-context-mapping-e7606a1679b367a38b685ca1bb77ef45.svg\";","export default __webpack_public_path__ + \"static/EventStorming-ZDL-Mapping-cb9c987d5d0aff110c5890481034ae20.png\";","export default __webpack_public_path__ + \"static/plugin-screenshot-a27ba0713f3d33cf5b761c45e4c3debc.png\";"],"names":["_createMdxContent","props","_components","Object","assign","p","ul","li","_provideComponents","components","React","ScreenContainer","HeroSection","Hero","backgroundImageURL","heroBackgroundImageURL","HeroBody","HeroTitle","HeroTeaser","HeroActionList","HeroAction","Button","variant","as","Link","to","style","marginRight","FeatureSection","FeatureList","Feature","FeatureImage","src","FeatureTitle","FeatureText","display","sdkImageURL","asyncApiImageURL","WideFeatureSection","WideFeature","WideFeatureImage","dddLogosImage","alt","className","WideFeatureText","gearsDarkImage","width","href","Image","eventStormingZDL","boundedContextMapping","pluginScreenshot","pluginRunScreenshot","wrapper","MDXLayout","PageTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX","background","backgroundHover","on","css","InnerButton","styled","ref","_ref2","AriakitButton","buttonProps","InnerFeature","col","xs","md","px","pt","pb","th","InnerFeatureImage","height","row","my","x","py","borderTop","borderBottom","borderColor","up","InnerHero","withConfig","backgroundImage","w","m","justifyContent","ImageContainer","align","InnerImage","colorMode","dark","light","visible","useColorMode","Cite","Quote","QuoteAuthor","WideFeatureImageContainer","Gist","gist","file","iframeRef","useRef","useEffect","async","url","response","fetch","ok","text","split","length","current","console","error","fetchGistContent","gistUrl","replace","toLowerCase","border","padding","borderRadius","marginLeft","fontStyle","role","target","rel","title","frameBorder","margin"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js b/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js new file mode 100644 index 0000000..1264a6c --- /dev/null +++ b/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[261],{43635:function(M,D,I){I.r(D),I.d(D,{default:function(){return t}});var N=I(27378),j=I(20951),g=I(80858),L=I(16376),A=I.p+"static/hero-background-b6fccd4ea5501ab264bb1bdb7fbbf8ba.png",u=I.p+"static/zenwave-sdk-dark-44c70567cf17d96a54e9284837feac82.png",y=I.p+"static/asyncapi-logo-fe1db05dd2b15b8170701f43d18710a1.png",z="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgMjYwIDI2MCINCiAgIHdpZHRoPSIyNjAiDQogICBoZWlnaHQ9IjI2MCINCiAgIGlkPSJzdmc1MjkzNiINCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICA8ZGVmcw0KICAgICBpZD0iZGVmczUyOTQwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDE0NC4wNjM1MiwyMzEuMzg5MTYgYyAxOS40NDg4NSwtNC40MzA0NyAzOC4wNzMzMiwtMTMuNjAzNjcgNTMuNjc0MjcsLTI2LjIyMDczIDE3LjA2OTI1LC0xMy43NTM0NCAzMC4yNzQ0NSwtMzEuNDIxMTUgMzguNDI0OTgsLTUwLjYyMDE2IDguMTg1MiwtMTkuMjE5MzQgMTEuMjMxMTgsLTM5Ljg0MTQ1IDguNzA2MzIsLTU5LjM1NjUyMiAtMi40NzIyOCwtMTkuNTkzNjIzIC0xMC43MjkxMSwtMzcuNjk5ODY2IC0yMy4zMzQ4OSwtNTIuNTg1ODY5IC0zLjAwMDc3LDIuMzI4NjgzIC01Ljk5MjU4LDQuNjUwNDI2IC04Ljk4NTY2LDYuOTc5NDg3IDExLjE5NzY0LDEzLjI2NTI1OSAxOC42ODkzNywyOS4yODEyNSAyMS4xMDgyNSw0Ni42ODc2MzMgMi42MDUyNSwxOC4xMzkwMjEgLTAuMTI2NzcsMzcuMzg5NDMxIC03Ljc0NDg5LDU1LjMwODkwMSAtOC4wNjg2NiwxOS4wNDA3MyAtMjEuNjA2NjUsMzYuNDE4NjIgLTM5LjE1NTYyLDQ5LjMyODcyIC0xMy4zOTkxNCw5Ljg5Mzg5IC0yOC45NDQwMSwxNy4wNTIzNyAtNDUuMDc4NzUsMjAuNjAxNyAtMjAuMTM0OTksNC40Njk3MSAtNDAuOTcwMzMsMy4zODM3NCAtNTkuMjI1NjA4LC0zLjAzMzcyIEMgNjUuMzE2OTk1LDIxMi40OTM5MiA1MC42MjA0MzYsMjAxLjgyMDExIDQwLjgzNjM4NywxODcuNjAwMTUgMzMuNDU1NzUyLDE3Ni45MzMwOSAyOC45Mjk3MTksMTY0LjQyNDQyIDI3LjgyODQ3OCwxNTEuMjU0MjQgMjYuMzAzMzQyLDEzMy43ODIxNiAzMC42OTI3NDUsMTE1LjMzODQ5IDQwLjI4MDM2Miw5OS4wOTAxNSA0Ny44MTYzMzksODYuMjgxMDc2IDU4LjU2NTg2NCw3NC45NDc0NTggNzEuNTI5MjI4LDY2LjU4ODg3NiA4My43NzMyNjIsNTguNjQ0MjY2IDk3LjgzMTc0Miw1My40OTk1NzUgMTEyLjA0OTkyLDUxLjgzMTYzOSBjIDI0LjkxNzMxLC0yLjk4OTA0IDQ5LjcxODEzLDQuNTU1MDc2IDY1LjQ0MjU2LDIxLjA1OTM5NCA4Ljk2ODI0LDkuMzgxNjggMTQuNzIxNjgsMjEuNDI4MTM2IDE2LjE0MjI1LDM0LjQ2Njc5NyAxLjY0NjY3LDE0LjU4NTE0IC0yLjAyLDMwLjE0MjYxIC0xMC4zODI1Myw0My42MjYgLTYuNDE1MjIsMTAuMzc4MzYgLTE1LjU4NjgzLDE5LjM5MjgyIC0yNi41NTQ0OSwyNS42ODIxIC0xOS45MzQ2MSwxMS42NjA4MiAtNDQuOTc3MDIsMTIuODc5NjcgLTYzLjYzOTE2OSwzLjEwNTg1IC05LjQwOTAyNiwtNC44NjUwMiAtMTYuOTIzMjA3LC0xMi40MzkxMiAtMjEuMTM2MDY5LC0yMS43NzMyNyAtNC4yNDk5MjEsLTkuMjU0NzkgLTQuOTg3NDc3LC0yMC4wODkyNiAtMi4xNjkwMTQsLTMwLjQ4NjM3IDIuOTI4NTA0LC0xMC45MDA4MiA5LjY5MTA2MiwtMjEuMjEwMDUgMTkuNDMyODY3LC0yOC40NTQwNDMgOS4wNTM2MywtNi43ODQyMDIgMjAuMzg3MjA1LC0xMC41MjM2MTkgMzEuMzM2ODA1LC0xMC4wMzEzMjggMTIuODY3OTYsMC41MDc2NzYgMjQuNjYzODYsNi42MTQ2ODIgMzAuMDkyNDMsMTcuMjM1MTMxIDUuMjE0MywxMC4wMDQ1MiAzLjU0MjE0LDIzLjIyNjkxIC00LjkwNjA1LDMyLjc1NzU0IC01LjE0ODk1LDUuODI5NDcgLTEyLjg3MzI3LDkuNzg3NTMgLTIwLjYyMDI2LDkuNzQ0MzIgLTYuMzQzMTgsMC4wMTI3IC0xMi42MTkwNiwtMi41OTExNCAtMTUuNTMxMjQsLTcuNzI2ODQgLTIuNTMwMDUsLTQuMTc5MTUgLTEuODM0NjMsLTEwLjM1ODM0IDIuMzEwNDgsLTE0LjE2NDQ3IDEuODc0MTUsLTEuNTQ0MDggMy4zNTg3NiwtMS41OTQ3OCA1LjQwNjg2LC0wLjgzNDgxIDAuNDUzMTEsLTEuNDA4OTUgMC44ODY2MiwtMS45Nzc1NSAxLjMxNjE1LC0xLjcwNTAxIDEuODQzNTcsMi42NzU5NiAzLjE5Nyw1LjY1OTI4IDQuOTM1MSw4LjQwMzcxIDIuMTI4NDcsLTEuNzk2OTQgNC4xNDM4MSwtMy4yMDg0MiA0LjgyNzMzLC01LjkxMjA4IDEuMjIxMjMsLTQuODMxNjMgLTIuMjUwMzIsLTguNjY3MDYgLTYuMzUzNDEsLTEwLjYwMDYxIC01Ljk3Mzg3LC0yLjg2MTc0IC0xNC4wNzAwNCwtMC4xNDc1NiAtMTguNzQ5MTIsNC44NTY4NiAtNy4xMjgxODYsNy41MzA1NyAtOC4xNzM0MzUsMTguMzc4NjQgLTMuMzM1NDA3LDI2LjEyMDU2IDYuMTYwODY3LDEwLjIyMTkzIDIwLjE4NjI3NywxNC4wMzUyIDMyLjkxNTU4NywxMC44NTMxNCA4Ljg4Mzk3LC0yLjIwOTU3IDE2Ljk4OTIzLC03LjU2NTQ2IDIyLjYwMTAzLC0xNC42MzM2NCA2LjI1ODYzLC03LjgzMjcxIDkuNDY4OTUsLTE3LjQyMDM0IDkuMjc5MDQsLTI2LjYyNTc2IC0wLjE3MTMsLTEwLjI2NzIgLTQuNzM5ODMsLTE5LjgwMzc0OCAtMTIuMjUzMDIsLTI2LjU2NTk1NSBDIDEzOC41NDg0Miw3Ny42NjA5NzEgMTE1Ljk1OTA1LDc1LjE5NTEyOSA5Ni43MTIwNCw4My4zMTExMiA4Ni4zNjc4MDUsODcuNjA5NTk1IDc3LjE5MTQ1MSw5NC42NTMzMDEgNzAuNDQyMjQ2LDEwMy4yOTUyNyBjIC05LjA1NzM5MywxMS41Mjk1MSAtMTMuNzcxODgxLDI1LjU1MDgxIC0xMy40NjkwMzYsMzkuMDQ5OCAwLjMzNzcxNiwyMC4yOTA1NiAxMi40NzY0MDgsMzguMTE5OTQgMzAuODUwMDgyLDQ3LjExOTA2IDE0LjExNjk2OCw3LjA1MDQ1IDMxLjM0NjYwOCw5LjAzMjQyIDQ4LjA0MDc3OCw1LjY4MDk3IDEzLjg0ODQxLC0yLjc0MTkzIDI3LjEyMzMxLC05LjE4ODA4IDM4LjA5ODIxLC0xOC4yNDQ1OSAxOS4xOTI4MSwtMTUuNzk0MjMgMzAuNDI2NjMsLTM4LjgwMTE3IDMxLjEzMzA2LC02MS4zNDkxOCAwLjUwNTgsLTE0LjQzMjQ5IC0zLjM4NDIsLTI4LjQxNDY5NCAtMTEuMDg2NzUsLTQwLjExNjQ3NSBDIDE4NS45MDE3LDYyLjk5NjgzNCAxNzMuNjk2ODgsNTMuMzYzNjE5IDE1OS4zMDc4OSw0Ny41MzE5OCAxNDMuMTE0NTksNDAuOTMwNTA2IDEyNC4zMjk5NSwzOS4xMzU5NTcgMTA1LjkzOTAxLDQyLjQwOTMyNCA5MC4xOTA0MTYsNDUuMTY2Mjc1IDc0Ljg2OTg4Myw1MS43MDEzMzkgNjEuNjk1NjQ4LDYxLjEwNDY4NiA0Ni41Mjc4MzcsNzEuODgzNzA1IDM0LjQ1OTE3NSw4Ni4zMDIyNzIgMjYuNjgxNjUzLDEwMi4yODc0OCBjIC04LjYyNjgzMSwxNy42NTQ2NyAtMTEuOTYzMjE2LDM3LjA1OTE3IC05LjQ0Nzk2OSw1NS4yNjc0MyAyLjIyMjQ5OCwxNi40NTkxOSA5LjI5NzAzMywzMS43Njc4NCAyMC4xNTI2OCw0NC4xMTU0OCAxMi4wNjE2NzUsMTMuNzgxMDggMjguNjI2NjY5LDIzLjY3MDc0IDQ3LjI5MTcyMSwyOC43OTUxNCAxOC43MDM5MjUsNS4xNzA2NSAzOS4zODM4MzUsNS41MjU1NSA1OS4zODU0MzUsMC45MjM2MyB6Ig0KICAgICBmaWxsPSIjMDAwMDAwIg0KICAgICBpZD0icGF0aDUyOTM0Ig0KICAgICBzdHlsZT0iZmlsbDojYmFiOWJiO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjc1NTkiIC8+DQo8L3N2Zz4NCg==",C=I.p+"static/laptop-gears-54f3eaa232e7503cd5a1cb0cea35d352.svg",T=I(29934),w=I(28151),i=I(53468),E=I.p+"static/plugin-run-screenshot-0aea571608647046fa2f9cc31ce61bf0.png";function e(M){const D=Object.assign({p:"p",ul:"ul",li:"li"},(0,j.ah)(),M.components);return N.createElement(L.X_,null,N.createElement(L.DH,null,N.createElement(L.VM,{backgroundImageURL:A},N.createElement(L.$D,null,N.createElement(L.LR,null,"Create Software",N.createElement("br")," Easy To Understand!"),"\r\n",N.createElement(L.vC,null,"DDD and API-First Modeling Tools for Modern Distributed Applications."),N.createElement(L.kW,null,N.createElement(L.sd,null,N.createElement(L.zx,{variant:"neutral",as:g.Link,to:"/docs/zenwave360/",style:{marginRight:"6px"}},N.createElement(D.p,null,"Browse Docs")),N.createElement(L.zx,{as:g.Link,to:"/docs/getting-started/"},N.createElement(D.p,null,"Getting Started"))))))),N.createElement(L.gT,null,N.createElement(L.VS,null,N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTIwMHB4IiBoZWlnaHQ9IjEyMDBweCIgc3R5bGU9InNoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247IHRleHQtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgaW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTsgZmlsbC1ydWxlOmV2ZW5vZGQ7IGNsaXAtcnVsZTpldmVub2RkIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk2MiIgZmlsbD0iIzJiOGEzZSIgZD0iTSA0MjcuNSwxMzIuNSBDIDQ5MC41LDEzMi41IDU1My41LDEzMi41IDYxNi41LDEzMi41QyA2MTYuNSwxOTUuNSA2MTYuNSwyNTguNSA2MTYuNSwzMjEuNUMgNTUzLjUsMzIxLjUgNDkwLjUsMzIxLjUgNDI3LjUsMzIxLjVDIDQyNy41LDI1OC41IDQyNy41LDE5NS41IDQyNy41LDEzMi41IFogTSA0NjYuNSwxNzEuNSBDIDUwMy41LDE3MS41IDU0MC41LDE3MS41IDU3Ny41LDE3MS41QyA1NzcuNSwyMDguNSA1NzcuNSwyNDUuNSA1NzcuNSwyODIuNUMgNTQwLjUsMjgyLjUgNTAzLjUsMjgyLjUgNDY2LjUsMjgyLjVDIDQ2Ni41LDI0NS41IDQ2Ni41LDIwOC41IDQ2Ni41LDE3MS41IFoiLz48L2c+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk3NCIgZmlsbD0iIzJiOGEzZSIgZD0iTSA1MDUuNSwzNzQuNSBDIDUxOC4xNjcsMzc0LjUgNTMwLjgzMywzNzQuNSA1NDMuNSwzNzQuNUMgNTQzLjUsMzkzLjgzMyA1NDMuNSw0MTMuMTY3IDU0My41LDQzMi41QyA2OTMuNSw0MzIuNSA4NDMuNSw0MzIuNSA5OTMuNSw0MzIuNUMgOTkzLjUsNTYzLjE2NyA5OTMuNSw2OTMuODMzIDk5My41LDgyNC41QyA5ODAuODMzLDgyNC41IDk2OC4xNjcsODI0LjUgOTU1LjUsODI0LjVDIDk1NS41LDcwNi44MzMgOTU1LjUsNTg5LjE2NyA5NTUuNSw0NzEuNUMgODE4LjE2Nyw0NzEuNSA2ODAuODMzLDQ3MS41IDU0My41LDQ3MS41QyA1NDMuNSw0ODkuMTY3IDU0My41LDUwNi44MzMgNTQzLjUsNTI0LjVDIDUzMC44MzMsNTI0LjUgNTE4LjE2Nyw1MjQuNSA1MDUuNSw1MjQuNUMgNTA1LjUsNTA2LjgzMyA1MDUuNSw0ODkuMTY3IDUwNS41LDQ3MS41QyA0MTguMTY3LDQ3MS41IDMzMC44MzMsNDcxLjUgMjQzLjUsNDcxLjVDIDI0My41LDQ4OS4xNjcgMjQzLjUsNTA2LjgzMyAyNDMuNSw1MjQuNUMgMjMwLjgzMyw1MjQuNSAyMTguMTY3LDUyNC41IDIwNS41LDUyNC41QyAyMDUuNSw0OTMuODMzIDIwNS41LDQ2My4xNjcgMjA1LjUsNDMyLjVDIDMwNS41LDQzMi41IDQwNS41LDQzMi41IDUwNS41LDQzMi41QyA1MDUuNSw0MTMuMTY3IDUwNS41LDM5My44MzMgNTA1LjUsMzc0LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDEzMC41LDU4MC41IEMgMTkzLjE2Nyw1ODAuNSAyNTUuODMzLDU4MC41IDMxOC41LDU4MC41QyAzMTguNSw2NDMuMTY3IDMxOC41LDcwNS44MzMgMzE4LjUsNzY4LjVDIDI1NS44MzMsNzY4LjUgMTkzLjE2Nyw3NjguNSAxMzAuNSw3NjguNUMgMTMwLjUsNzA1LjgzMyAxMzAuNSw2NDMuMTY3IDEzMC41LDU4MC41IFogTSAxNjguNSw2MTguNSBDIDIwNS44MzMsNjE4LjUgMjQzLjE2Nyw2MTguNSAyODAuNSw2MTguNUMgMjgwLjUsNjU1LjgzMyAyODAuNSw2OTMuMTY3IDI4MC41LDczMC41QyAyNDMuMTY3LDczMC41IDIwNS44MzMsNzMwLjUgMTY4LjUsNzMwLjVDIDE2OC41LDY5My4xNjcgMTY4LjUsNjU1LjgzMyAxNjguNSw2MTguNSBaIi8+PC9nPg0KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MC45NzQiIGZpbGw9IiMyYjhhM2UiIGQ9Ik0gNDI3LjUsNTgwLjUgQyA0OTAuNSw1ODAuNSA1NTMuNSw1ODAuNSA2MTYuNSw1ODAuNUMgNjE2LjUsNjQzLjE2NyA2MTYuNSw3MDUuODMzIDYxNi41LDc2OC41QyA1NTMuNSw3NjguNSA0OTAuNSw3NjguNSA0MjcuNSw3NjguNUMgNDI3LjUsNzA1LjgzMyA0MjcuNSw2NDMuMTY3IDQyNy41LDU4MC41IFogTSA0NjYuNSw2MTguNSBDIDUwMy41LDYxOC41IDU0MC41LDYxOC41IDU3Ny41LDYxOC41QyA1NzcuNSw2NTUuODMzIDU3Ny41LDY5My4xNjcgNTc3LjUsNzMwLjVDIDU0MC41LDczMC41IDUwMy41LDczMC41IDQ2Ni41LDczMC41QyA0NjYuNSw2OTMuMTY3IDQ2Ni41LDY1NS44MzMgNDY2LjUsNjE4LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDg4MC41LDg4MC41IEMgOTQzLjE2Nyw4ODAuNSAxMDA1LjgzLDg4MC41IDEwNjguNSw4ODAuNUMgMTA2OC41LDk0My4xNjcgMTA2OC41LDEwMDUuODMgMTA2OC41LDEwNjguNUMgMTAwNS44MywxMDY4LjUgOTQzLjE2NywxMDY4LjUgODgwLjUsMTA2OC41QyA4ODAuNSwxMDA1LjgzIDg4MC41LDk0My4xNjcgODgwLjUsODgwLjUgWiBNIDkxOC41LDkxOC41IEMgOTU1LjgzMyw5MTguNSA5OTMuMTY3LDkxOC41IDEwMzAuNSw5MTguNUMgMTAzMC41LDk1NS44MzMgMTAzMC41LDk5My4xNjcgMTAzMC41LDEwMzAuNUMgOTkzLjE2NywxMDMwLjUgOTU1LjgzMywxMDMwLjUgOTE4LjUsMTAzMC41QyA5MTguNSw5OTMuMTY3IDkxOC41LDk1NS44MzMgOTE4LjUsOTE4LjUgWiIvPjwvZz4NCjwvc3ZnPg0K"}),N.createElement(L.Gz,null,"Domain Model Language"),N.createElement(L.P7,null,N.createElement(D.p,null,"Concise and complete DDD modeling language for Event-Driven Architectures."))),N.createElement(L.L0,null,N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:u}),N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MTAgNDU3LjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMCA0NTcuODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzZEQjMzRjt9DQo8L3N0eWxlPg0KPHRpdGxlPmljb24tc3ByaW5nLWJvb3Q8L3RpdGxlPg0KPGcgaWQ9IkxheWVyXzJfMV8iPg0KCTxnIGlkPSJMYXllcl8xLTIiPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTAzLjUsMjAxLjRMNDAzLDI3LjVDMzk0LjMsMTIuNCwzNzIuOSwwLDM1NS40LDBIMTU0LjZjLTE3LjQsMC0zOC45LDEyLjQtNDcuNiwyNy41TDYuNiwyMDEuNA0KCQkJYy04LjcsMTUuMS04LjcsMzkuOCwwLDU0LjlsMTAwLjQsMTc0YzguNywxNS4xLDMwLjEsMjcuNSw0Ny42LDI3LjVoMjAwLjljMTcuNCwwLDM4LjgtMTIuNCw0Ny42LTI3LjVsMTAwLjQtMTc0DQoJCQlDNTEyLjIsMjQxLjIsNTEyLjIsMjE2LjUsNTAzLjUsMjAxLjR6IE0yMzMuMyw5Ni4yYzAtMTEuNCw5LjMtMjAuNywyMC43LTIwLjdjMTEuNCwwLDIwLjcsOS4zLDIwLjcsMjAuN3YxMjMuNw0KCQkJYzAsMTEuNC05LjMsMjAuNy0yMC43LDIwLjdjLTExLjQsMC0yMC43LTkuMy0yMC43LTIwLjdsMCwwVjk2LjJ6IE0yNTQsMzYwLjNjLTc3LjQsMC0xNDAuNC02My0xNDAuNC0xNDAuNA0KCQkJYzAuMS00NC40LDIxLjEtODYuMSw1Ni43LTExMi43YzguMi02LjEsMTkuNy00LjQsMjUuOCwzLjhzNC40LDE5LjctMy44LDI1LjhsMCwwYy00NS45LDM0LjEtNTUuNSw5OS0yMS40LDE0NC45DQoJCQlzOTksNTUuNSwxNDQuOSwyMS40YzI2LjMtMTkuNSw0MS44LTUwLjQsNDEuOC04My4yYy0wLjEtMzIuOS0xNS43LTYzLjgtNDIuMi04My40Yy04LjItNi05LjktMTcuNi0zLjktMjUuOHMxNy42LTkuOSwyNS44LTMuOQ0KCQkJYzM1LjksMjYuNSw1Nyw2OC41LDU3LjEsMTEzLjFDMzk0LjQsMjk3LjQsMzMxLjQsMzYwLjMsMjU0LDM2MC4zeiIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg0K"}),N.createElement(L.Gz,null,"ZenWave SDK"),N.createElement(L.P7,null,N.createElement(D.p,null,"ZenWave SDK helps you create SpringBoot/SpringCloud applications in no time."))),N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDI0OSAyMTkiIHdpZHRoPSIyNDkuMHB0IiBoZWlnaHQ9IjIxOS4wcHQiPg0KDQo8cGF0aCBkPSJNIDExNS41MSAxMS44MiBDIDEzMi4zMyA4Ljg4IDE1MC4zOCAxNS41NyAxNjEuNDEgMjguNTYgQyAxNjcuNzMgMzUuNzMgMTcxLjUwIDQ0LjYyIDE3My4xMCA1My45OCBDIDE3NC44OSA2NS42OCAxNzEuOTcgNzcuNzkgMTY1Ljc1IDg3Ljc4IEMgMTU5LjE2IDk4LjA2IDE0OC44MyAxMDUuODMgMTM3LjAxIDEwOS4wNCBDIDExOC4yMiAxMTQuNzcgOTYuODkgMTA3LjQ1IDg0Ljc5IDkyLjE4IEMgNzYuMjggODEuNjIgNzIuMjQgNjcuNDEgNzQuMjUgNTMuOTcgQyA3NS43OSA0NC43MSA3OS41OSAzNS45MSA4NS43NiAyOC43OCBDIDkzLjMzIDE5Ljc3IDEwMy45OCAxMy45NSAxMTUuNTEgMTEuODIgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTAyLjY3IDI4LjU3IEMgMTE0LjU2IDI4Ljg5IDEyOC45MiAyNy4xNiAxMzkuOTIgMzIuMDUgQyAxNDcuMTkgMzUuMDcgMTUyLjAxIDQxLjU1IDE1My42MiA0OS4xNiBDIDE1NS40MCA1Ny43NCAxNTUuMjUgNjcuNTUgMTUxLjY1IDc1LjY0IEMgMTQ4LjYyIDgyLjQwIDE0Mi41MCA4Ni42NyAxMzUuNDkgODguNTkgQyAxMjUuMjQgOTEuNDcgMTEzLjMwIDkwLjIzIDEwMi42NyA5MC41MCBDIDEwMi42NiA2OS44NSAxMDIuNjYgNDkuMjEgMTAyLjY3IDI4LjU3IFoiIGZpbGw9IiMwMDAwMDAiIC8+DQo8cGF0aCBkPSJNIDExMS4wNCAzNS40OCBDIDExOC44MyAzNS42MSAxMjcuNzIgMzQuNjMgMTM0Ljk1IDM3Ljk0IEMgMTM5Ljg0IDQwLjA3IDE0My4yNCA0NC4zOSAxNDQuNjQgNDkuNDggQyAxNDYuMjIgNTUuNDIgMTQ2LjI1IDYxLjk3IDE0NS4wMyA2Ny45OCBDIDE0My45MCA3My40MSAxNDAuODEgNzguMjQgMTM1Ljc1IDgwLjc1IEMgMTI4LjMwIDg0LjUyIDExOS4xNiA4My40NyAxMTEuMDUgODMuNjIgQyAxMTEuMDMgNjcuNTggMTExLjA1IDUxLjUzIDExMS4wNCAzNS40OCBaIiBmaWxsPSIjMmFkNGZmIiAvPg0KPHBhdGggZD0iTSA1Ni41MiAxMDcuNzAgQyA3NC4xMiAxMDMuNTcgOTMuMzUgMTEwLjI3IDEwNS4wMCAxMjMuOTggQyAxMTEuMzUgMTMxLjE5IDExNS4wOCAxNDAuMTAgMTE2LjY2IDE0OS41MiBDIDExOC4zOCAxNjEuMjUgMTE1LjQ2IDE3My4yNiAxMDkuMjAgMTgzLjI1IEMgMTAyLjY5IDE5My4zMiA5Mi42NCAyMDAuOTkgODEuMDUgMjA0LjIzIEMgNzEuMTkgMjA3LjM1IDYwLjQ5IDIwNi45MyA1MC43OSAyMDMuNDIgQyAzMS44OSAxOTcuMDMgMTguNDEgMTc4Ljg5IDE3LjM1IDE1OS4wMyBDIDE2LjYyIDE0Ni4wNCAyMS40NSAxMzIuNzcgMzAuMTUgMTIzLjEzIEMgMzcuMTAgMTE1LjM5IDQ2LjM5IDExMC4wMyA1Ni41MiAxMDcuNzAgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTcxLjUyIDExMC43NSBDIDE4OS4xNiAxMDYuNTIgMjA4Ljk3IDExMy42MCAyMjAuNDAgMTI3LjU3IEMgMjI2LjUzIDEzNC43NiAyMzAuMTMgMTQzLjU1IDIzMS42MyAxNTIuODIgQyAyMzMuMjUgMTY0LjE0IDIzMC40OCAxNzUuODYgMjI0LjU3IDE4NS41OCBDIDIxOC4wNCAxOTYuMTYgMjA3LjUzIDIwNC4xNyAxOTUuNTIgMjA3LjQzIEMgMTc2Ljc1IDIxMy4xNyAxNTUuNDEgMjA1LjkwIDE0My4zMiAxOTAuNjMgQyAxMzQuNjkgMTc5Ljk3IDEzMC42MSAxNjUuNTYgMTMyLjc4IDE1MS45NyBDIDEzNC4zMCAxNDMuMzQgMTM3LjczIDEzNS4xMyAxNDMuMjggMTI4LjMyIEMgMTUwLjM1IDExOS4zNyAxNjAuNDUgMTEzLjI5IDE3MS41MiAxMTAuNzUgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTU5Ljg0IDEyNy4zMSBDIDE2Ny44NyAxMjcuNDMgMTc1Ljk4IDEyNy4wMCAxODMuOTkgMTI3LjY3IEMgMTkyLjEwIDEyOC41MSAyMDAuMjcgMTMwLjgyIDIwNS41OCAxMzcuNDMgQyAyMTEuMzQgMTQ0LjYzIDIxMi4wMCAxNTUuMjAgMjExLjEwIDE2NC4wMSBDIDIxMC4yMCAxNzIuNTIgMjA2LjMzIDE4MC40NCAxOTguNDUgMTg0LjQ1IEMgMTg3LjE3IDE5MC4zNSAxNzIuMjQgMTg4LjQwIDE1OS44MyAxODguNzUgQyAxNTkuODIgMTY4LjI3IDE1OS44MSAxNDcuNzkgMTU5Ljg0IDEyNy4zMSBaIiBmaWxsPSIjMDAyMjJiIiAvPg0KPHBhdGggZD0iTSA0NS42NCAxMjcuODUgQyA1Ni40NyAxMjguMTQgNjkuMzYgMTI2LjY0IDc5LjUwIDEzMC42MyBDIDg1Ljc5IDEzMi45NiA5MC42NyAxMzcuNzcgOTIuNzkgMTQ0LjE3IEMgOTUuMjggMTUxLjc4IDk1LjMxIDE2MC41MSA5My4zMCAxNjguMjQgQyA5MS40NiAxNzUuMDcgODYuNzkgMTgwLjU5IDgwLjE2IDE4My4xOSBDIDY5Ljg4IDE4Ny41MiA1Ni43MCAxODUuOTQgNDUuNjQgMTg2LjI1IEMgNDUuNjMgMTY2Ljc4IDQ1LjYzIDE0Ny4zMSA0NS42NCAxMjcuODUgWiIgZmlsbD0iIzAwMDAwMCIgLz4NCjxwYXRoIGQ9Ik0gNzYuMjMgMTM2Ljc2IEMgODAuODUgMTM4LjgyIDgzLjk3IDE0Mi45NSA4NS4yNiAxNDcuNzcgQyA4Ni42OSAxNTMuMjggODYuNzAgMTU5LjI2IDg1LjYyIDE2NC44NCBDIDg0LjU1IDE2OS45NyA4MS43NSAxNzQuNTcgNzYuOTcgMTc2Ljk4IEMgNjkuOTcgMTgwLjYxIDYxLjIyIDE3OS41OCA1My41NyAxNzkuNzcgQyA1My40OSAxNjQuNjQgNTMuNTggMTQ5LjUwIDUzLjUzIDEzNC4zNyBDIDYwLjg4IDEzNC40NCA2OS40MyAxMzMuNTkgNzYuMjMgMTM2Ljc2IFoiIGZpbGw9IiMyYWQ0ZmYiIC8+DQo8cGF0aCBkPSJNIDE2OC4yNCAxMzQuMjYgQyAxNzUuMzEgMTM0LjExIDE4My4yNCAxMzMuNTkgMTkwLjAyIDEzNS45MCBDIDE5NS4wMiAxMzcuNTcgMTk4Ljk2IDE0MS4yMCAyMDAuODAgMTQ2LjE3IEMgMjAzLjA2IDE1Mi40MCAyMDMuMTQgMTU5LjUyIDIwMS45MiAxNjUuOTggQyAyMDAuODYgMTcxLjQzIDE5Ny45NiAxNzYuMzMgMTkyLjkxIDE3OC45MiBDIDE4NS4zMSAxODIuOTAgMTc2LjQxIDE4MS43MyAxNjguMTMgMTgxLjkwIEMgMTY4LjIyIDE2Ni4wNCAxNjcuOTggMTUwLjExIDE2OC4yNCAxMzQuMjYgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjwvc3ZnPg=="}),N.createElement(L.Gz,null,"Domain Driven Design"),N.createElement(L.P7,null,N.createElement(D.p,null,"Business, Developer and Computer friendly Ubiquitous Language for your Domain Models and Bounded Contexts."))),N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgNTEyIDUxMiINCiAgIHdpZHRoPSI1MTIuMHB0Ig0KICAgaGVpZ2h0PSI1MTIuMHB0Ig0KICAgaWQ9InN2Zzk0ODU5Ig0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogIDxkZWZzDQogICAgIGlkPSJkZWZzOTQ4NjMiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTQzLjk5IDI2Ljg2IEMgMTU5LjY5IDI1Ljc5IDE3NS42MiAzMC40MSAxODguMzIgMzkuNzAgQyAxOTkuNDcgNDcuNzUgMjA4LjA0IDU5LjI2IDIxMi42MSA3Mi4yNCBDIDIxNy4wMyA4NC44MiAyMTcuNzYgOTguNTggMjE0LjQzIDExMS41MSBDIDIxMC42OCAxMjYuNzggMjAxLjQ0IDE0MC40NiAxODguODIgMTQ5LjgyIEMgMTk5LjcwIDE2OC41NyAyMTAuNjQgMTg3LjI5IDIyMS41MyAyMDYuMDQgQyAyMzkuODcgMjAwLjM5IDI2MC4xMiAyMDUuNDYgMjczLjY5IDIxOC45NyBDIDI5Ny44OSAxOTQuNzMgMzIyLjE2IDE3MC41NiAzNDYuMzIgMTQ2LjI5IEMgMzQzLjU1IDE0MC44OCAzNDEuNjcgMTM1LjE0IDM0MS40MiAxMjkuMDIgQyAzNDAuNDYgMTEzLjY5IDM0OS4xMyA5OC43MiAzNjIuODMgOTEuODMgQyAzNzYuMDIgODQuOTMgMzkyLjc1IDg2LjM5IDQwNC41NiA5NS40NCBDIDQxNi4wOCAxMDQuMDUgNDIyLjA3IDExOC44MSA0MTkuNzYgMTMzLjAzIEMgNDE3LjUzIDE0OC4yMyA0MDUuODggMTYxLjE5IDM5MS4wMSAxNjUuMDMgQyAzODAuOTYgMTY3Ljc4IDM3MC41MyAxNjYuMTcgMzYxLjM1IDE2MS40MiBDIDMzNi4xOSAxODYuNzUgMzEwLjg0IDIxMS45MiAyODUuNjQgMjM3LjIyIEMgMjg3LjU0IDI0Mi42OCAyODguNzIgMjQ4LjA3IDI4OS4wMiAyNTMuODYgQyAzMTYuMzMgMjUzLjg5IDM0My42NSAyNTMuODUgMzcwLjk3IDI1My44NyBDIDM3My44NSAyMzUuODcgMzg0LjAxIDIxOS4zOSAzOTguOTMgMjA4Ljg5IEMgNDExLjY2IDE5OS44NCA0MjcuNDQgMTk1LjM3IDQ0My4wMyAxOTYuNDggQyA0NTguNDIgMTk3LjQzIDQ3My4zMiAyMDMuODggNDg0LjYyIDIxNC4zNSBDIDQ5NS44NyAyMjQuNzIgNTAzLjQ5IDIzOC44MyA1MDUuNzggMjUzLjk4IEMgNTA3LjY0IDI2NC45NyA1MDYuNDYgMjc2LjMxIDUwMi44OCAyODYuODIgQyA0OTcuNzQgMzAxLjczIDQ4Ny4zMyAzMTQuNjkgNDczLjgyIDMyMi44MyBDIDQ2My4zOCAzMjkuMjUgNDUxLjIzIDMzMi42MyA0MzguOTkgMzMyLjc5IEMgNDIyLjM0IDMzMi44OCA0MDUuNzcgMzI2Ljc5IDM5My4zMSAzMTUuNzAgQyAzODEuNDIgMzA1LjMyIDM3My40NyAyOTAuNzggMzcwLjk5IDI3NS4yMCBDIDM0Mi40OCAyNzUuMjEgMzEzLjk4IDI3NS4xOSAyODUuNDcgMjc1LjIxIEMgMjgwLjg1IDI4Ni4yMSAyNzMuNTAgMjk0LjkwIDI2My4yOCAzMDEuMDkgQyAyNzIuODUgMzM2LjE4IDI4Mi40NSAzNzEuMjYgMjkyLjA2IDQwNi4zNCBDIDI5Ny40NyA0MDYuNDIgMzAyLjc3IDQwNy4xMyAzMDcuODIgNDA5LjE3IEMgMzIxLjA4IDQxNC4zMSAzMzAuODEgNDI2Ljg0IDMzMi40NiA0NDAuOTggQyAzMzQuNDAgNDU1LjczIDMyNy40MiA0NzAuODIgMzE0LjkyIDQ3OC44OCBDIDMwMi4xNCA0ODcuMzYgMjg0LjgwIDQ4Ny40NCAyNzEuOTcgNDc5LjAxIEMgMjU4Ljc1IDQ3MC42MyAyNTEuNjUgNDU0LjQ1IDI1NC40OSA0MzkuMDMgQyAyNTYuMzEgNDI4LjIzIDI2Mi43MyA0MTguOTUgMjcxLjY4IDQxMi43NyBDIDI2Mi4xMyAzNzcuODIgMjUyLjU4IDM0Mi44NyAyNDMuMDEgMzA3LjkzIEMgMjI5LjU2IDMwOS4zMCAyMTcuMTggMzA2LjA2IDIwNi4xMiAyOTguMzUgQyAxODMuNDAgMzExLjE3IDE2MC43MSAzMjQuMDIgMTM4LjAyIDMzNi44OCBDIDE0My45NCAzNTMuOTEgMTQyLjkzIDM3Mi44OCAxMzUuMDQgMzg5LjEwIEMgMTI3LjUyIDQwNC44MCAxMTMuODIgNDE3LjMyIDk3LjUwIDQyMy4zOSBDIDg1LjQyIDQyNy44NiA3Mi4xNSA0MjguOTYgNTkuNTQgNDI2LjIyIEMgNDUuNzAgNDIzLjMyIDMyLjkxIDQxNi4wNCAyMy4zNyA0MDUuNjEgQyAxMi42NyAzOTQuMDYgNi4yMyAzNzguNzMgNS40OCAzNjMuMDAgQyA0LjYzIDM0Ny41NSA5LjIyIDMzMS45MCAxOC4zOCAzMTkuNDEgQyAyNi4yOCAzMDguNDYgMzcuNTIgMjk5Ljk4IDUwLjIzIDI5NS4zOCBDIDYxLjI5IDI5MS4zMiA3My4zOCAyOTAuMjQgODQuOTkgMjkyLjIxIEMgMTAxLjk3IDI5NC45NCAxMTcuNDMgMzA0LjQ2IDEyNy44NyAzMTguMDggQyAxNDkuMDcgMzA2LjA5IDE3MC4yNiAyOTQuMTEgMTkxLjQ1IDI4Mi4xMCBDIDE4Ny41OSAyNzQuOTkgMTg1LjQxIDI2OC4wNCAxODQuNjYgMjU5Ljk2IEMgMTUyLjc2IDI1MS4xMSAxMjAuNzIgMjQyLjU3IDg4Ljc4IDIzMy44MiBDIDg2LjE4IDIzOC4xMSA4My4wNiAyNDIuMDEgNzkuMTEgMjQ1LjE0IEMgNjguMzEgMjUzLjk3IDUyLjkyIDI1Ni4yOSAzOS45NyAyNTEuMDkgQyAyNS4yNiAyNDUuNDMgMTUuMDYgMjMwLjc4IDE0Ljk3IDIxNC45OSBDIDE0LjU3IDE5OS4xNCAyNC40NiAxODQuMDYgMzkuMTIgMTc4LjA0IEMgNTIuOTkgMTcyLjA5IDY5Ljc1IDE3NC45MyA4MC44NiAxODUuMTQgQyA4OC44MCAxOTIuMjYgOTMuMzkgMjAyLjQ2IDkzLjg4IDIxMy4wOCBDIDEyNS4wOCAyMjEuNTkgMTU2LjI5IDIzMC4xMCAxODcuNTIgMjM4LjU0IEMgMTkwLjcwIDIyOS44NCAxOTUuODAgMjIyLjM3IDIwMi44MiAyMTYuMzIgQyAxOTEuODUgMTk3LjQ2IDE4MC44OCAxNzguNTkgMTY5Ljg4IDE1OS43NCBDIDE1My4yMSAxNjUuMTAgMTM1LjA1IDE2NC4yMCAxMTkuMjEgMTU2LjY0IEMgMTA1LjA0IDE1MC4wMSA5My4zNCAxMzguMzcgODYuNjQgMTI0LjIyIEMgODAuNTUgMTExLjQ5IDc4LjYzIDk2Ljg4IDgxLjEwIDgyLjk5IEMgODMuNjUgNjguMjIgOTEuMzEgNTQuNDUgMTAyLjQ0IDQ0LjQxIEMgMTEzLjc5IDM0LjA1IDEyOC42NSAyNy43OCAxNDMuOTkgMjYuODYgWiINCiAgICAgZmlsbD0iIzAxMDEwMSINCiAgICAgaWQ9InBhdGg5NDg0MyINCiAgICAgc3R5bGU9ImZpbGw6IzJiOGEzZTtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSAxMzkuNDkgNDguODYgQyAxNTEuMTggNDYuNjIgMTYzLjU4IDQ4Ljk1IDE3My41OCA1NS40MyBDIDE4OS4wMCA2NS4yMSAxOTcuNTcgODMuOTYgMTk0LjYzIDEwMi4wMyBDIDE5Mi4xNSAxMTkuMTMgMTc5LjY2IDEzNC4wMCAxNjMuMjQgMTM5LjM4IEMgMTUwLjc4IDE0My42NCAxMzYuNjkgMTQyLjMzIDEyNS4yNiAxMzUuNzggQyAxMTUuNzUgMTMwLjQ3IDEwOC4yMSAxMjEuNzAgMTA0LjM4IDExMS41MSBDIDEwMC43MyAxMDEuOTAgMTAwLjQxIDkxLjA2IDEwMy4zOSA4MS4yMyBDIDEwOC4zNCA2NC43OCAxMjIuNTggNTEuOTYgMTM5LjQ5IDQ4Ljg2IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDUiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMzc1LjQ3IDEwOS42MCBDIDM4MS42OCAxMDcuNzEgMzg4LjU0IDEwOS4yNyAzOTMuMjQgMTEzLjc1IEMgMzk4LjU5IDExOC43MSA0MDAuMzcgMTI2Ljc3IDM5Ny42NyAxMzMuNTQgQyAzOTQuNzcgMTQxLjA0IDM4Ni45OSAxNDUuODMgMzc4Ljk4IDE0NC45NiBDIDM3MC42MyAxNDQuMjAgMzYzLjY4IDEzNy4zNiAzNjIuODAgMTI5LjAyIEMgMzYxLjcwIDEyMC40NiAzNjcuMjQgMTEyLjA3IDM3NS40NyAxMDkuNjAgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg0NyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA1MC40OSAxOTYuNjkgQyA1Ni43OSAxOTUuMjkgNjMuNDggMTk3LjQyIDY3LjgwIDIwMi4yMCBDIDczLjAwIDIwNy44MiA3NC4wMiAyMTYuNTcgNzAuMjIgMjIzLjIyIEMgNjYuMzUgMjMwLjI5IDU3Ljg0IDIzNC4wMiA1MC4wMSAyMzEuOTcgQyA0MS44OSAyMzAuMDQgMzYuMDAgMjIyLjMyIDM2LjI4IDIxMy45NyBDIDM2LjM4IDIwNS43NSA0Mi40NiAxOTguNDAgNTAuNDkgMTk2LjY5IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDkiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gNDI4LjQ5IDIxOC42NyBDIDQ0My4yMSAyMTUuNDggNDU5LjAwIDIxOS42OCA0NzAuMDYgMjI5LjkzIEMgNDgxLjYyIDI0MC4zOSA0ODcuMzEgMjU2LjY1IDQ4NC43MCAyNzIuMDMgQyA0ODIuODAgMjg0LjAzIDQ3Ni4wNCAyOTUuMDcgNDY2LjI1IDMwMi4yNiBDIDQ1Ni4zMCAzMDkuNzAgNDQzLjIyIDMxMi45MCA0MzAuOTcgMzEwLjgzIEMgNDE2LjcyIDMwOC42MiA0MDMuOTcgMjk5LjU0IDM5Ny4xNCAyODYuODYgQyAzOTAuNzcgMjc1LjIyIDM4OS43NSAyNjAuOTMgMzk0LjMxIDI0OC40OCBDIDM5OS43MCAyMzMuNDkgNDEyLjkyIDIyMS45OSA0MjguNDkgMjE4LjY3IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTEiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMjMwLjQ5IDIyNS43MiBDIDIzOS4yMiAyMjMuOTMgMjQ4LjUwIDIyNS45NyAyNTUuNTYgMjMxLjQzIEMgMjY2LjA0IDIzOS4zMSAyNzAuMzcgMjUzLjU2IDI2Ni4wNiAyNjUuOTcgQyAyNjEuNjMgMjc5LjMxIDI0OC4wMCAyODguMjIgMjMzLjk4IDI4Ni43NyBDIDIxOC42OSAyODUuNTggMjA2LjIwIDI3Mi4zMiAyMDUuOTEgMjU2Ljk5IEMgMjA1LjI2IDI0Mi4xOCAyMTUuOTkgMjI4LjYzIDIzMC40OSAyMjUuNzIgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg1MyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA2My40OSAzMTMuNjYgQyA3NS4zNSAzMTEuMDcgODguMTAgMzEzLjEzIDk4LjM4IDMxOS42MyBDIDEwNy45NiAzMjUuNTYgMTE1LjIwIDMzNS4wMCAxMTguNDYgMzQ1Ljc4IEMgMTIzLjUxIDM2MS45MiAxMTkuMDYgMzgwLjE3IDEwNy4xOCAzOTIuMTggQyA5NC43NyA0MDUuMTQgNzUuMTEgNDA5LjgyIDU4LjIwIDQwMy43NSBDIDQ1LjUzIDM5OS40MSAzNS4wNiAzODkuNDMgMzAuMDkgMzc2Ljk5IEMgMjYuMjEgMzY3LjQ0IDI1LjY4IDM1Ni42NyAyOC40MyAzNDYuNzQgQyAzMi45OCAzMzAuMjcgNDYuODAgMzE3LjI2IDYzLjQ5IDMxMy42NiBaIg0KICAgICBmaWxsPSIjZmZmZmZmIg0KICAgICBpZD0icGF0aDk0ODU1Ig0KICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxIiAvPg0KICA8cGF0aA0KICAgICBkPSJNIDI4Ny41MCA0MjguNzAgQyAyOTMuOTMgNDI2LjUxIDMwMS4yMyA0MjguMTQgMzA2LjA1IDQzMi45NSBDIDMxMS42OSA0MzguNDEgMzEzLjA3IDQ0Ny4zMCAzMDkuNDAgNDU0LjI0IEMgMzA1LjgxIDQ2MS4yNSAyOTcuNzcgNDY1LjE2IDI5MC4wMyA0NjMuNjkgQyAyODIuMDEgNDYyLjI3IDI3NS42NyA0NTUuMjAgMjc1LjI1IDQ0Ny4wNCBDIDI3NC42NSA0MzguOTcgMjc5LjgzIDQzMS4yNCAyODcuNTAgNDI4LjcwIFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTciDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQo8L3N2Zz4NCg=="}),N.createElement(L.Gz,null,"Event-Driven Architectures"),N.createElement(L.P7,null,N.createElement(D.p,null,"Designed for Event-Driven Architectures, mapping Event-Storming discoveries into your models."))),N.createElement(L.L0,null,N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY2NSA2NjEiIHdpZHRoPSI2NjUuMHB0IiBoZWlnaHQ9IjY2MS4wcHQiPg0KDQo8cGF0aCBkPSJNIDM5MS4yNCA1Ljg2IEMgNDUzLjUyIDE2LjkwIDUxMi4zMiA0Ni4yOCA1NTguNjIgODkuMzggQyA1ODkuODAgMTE4LjIxIDYxNS40MCAxNTMuMTIgNjMzLjQxIDE5MS41OCBDIDY1MS4zNyAyMjkuNjMgNjYxLjY0IDI3MS4xMCA2NjMuOTcgMzEzLjEwIEMgNjY3LjA1IDM3MC4xNiA2NTUuMzcgNDI3LjkxIDYzMC4yMyA0NzkuMjMgQyA2MDkuNzQgNTIxLjI3IDU4MC4yNSA1NTkuMzYgNTQzLjk0IDU4OC45MiBDIDUxNi4yNSA2MTEuNDMgNDg0LjYyIDYyOC45OCA0NTAuMDIgNjM4LjIxIEMgNDQ2LjIwIDYzOS4xNyA0NDIuMzYgNjM5LjQyIDQzOC45OSA2MzcuMDEgQyA0MzUuMjYgNjM0LjMyIDQzNC4yOCA2MjkuNTMgNDMyLjU5IDYyNS40OSBDIDQwOS42MiA1NjYuNDEgMzg2LjYyIDUwNy4zMyAzNjMuNjMgNDQ4LjI1IEMgMzYyLjA2IDQ0My45MyAzNTkuNDggNDM5Ljc5IDM2MC40NCA0MzUuMDQgQyAzNjEuMjggNDMwLjczIDM2NC41MSA0MjguMDIgMzY4LjUxIDQyNi42MyBDIDM4NS42OCA0MjAuMDggNDAxLjM2IDQxMC40MSA0MTIuMzcgMzk1LjM5IEMgNDIzLjA0IDM4MC44OCA0MjcuNzAgMzYzLjc2IDQyOS4zOSAzNDYuMDMgQyA0MzAuMDcgMzM3LjAwIDQzMC40MiAzMjguMDQgNDI5LjIzIDMxOS4wMyBDIDQyNC43NiAyODUuOTMgNDAyLjAzIDI1Ni43MiAzNzEuNDggMjQzLjUwIEMgMzQwLjg1IDIzMC4wMiAzMDMuNjcgMjM0LjI0IDI3Ni4zMyAyNTMuMzEgQyAyNTguNDYgMjY1LjczIDI0NC44OSAyODQuMDIgMjM4Ljk0IDMwNS4wMiBDIDIzNC4yNiAzMjAuOTIgMjM0Ljk0IDMzNi44MSAyMzcuMzIgMzUzLjAyIEMgMjQwLjA5IDM2OS42NSAyNDUuNzYgMzg1LjQ0IDI1NS45OSAzOTguOTggQyAyNjYuMjcgNDEyLjY0IDI4MC43OSA0MjIuNjQgMjk3LjAwIDQyNy45NSBDIDMwMC45NSA0MjkuMTcgMzA0LjM2IDQzMS4xMCAzMDUuODQgNDM1LjE5IEMgMzA3LjgyIDQ0MC4yOCAzMDUuMDMgNDQ0LjYzIDMwMy4yNSA0NDkuMjYgQyAyNzguNjggNTA5LjY4IDI1NC4xMCA1NzAuMTAgMjI5LjU1IDYzMC41MyBDIDIyOC40NyA2MzMuMDUgMjI3LjE5IDYzNS4zMiAyMjQuODAgNjM2LjgyIEMgMjIxLjg4IDYzOC43MSAyMTguNTAgNjM4LjgyIDIxNS4yMiA2MzcuOTIgQyAyMDMuODYgNjM0LjkxIDE5Mi43NSA2MzAuODUgMTgyLjAzIDYyNi4wNSBDIDE0Ny4zNSA2MTAuNDQgMTE2LjE3IDU4Ni40MCA5MC40NSA1NTguNTMgQyA1MS43NyA1MTYuNTcgMjQuMDEgNDY0LjcxIDEwLjQ3IDQwOS4yOCBDIC01LjE2IDM0NS4zNSAtMS4yMSAyNzYuNjMgMjEuODcgMjE0Ljk4IEMgMzkuMjMgMTY4LjMwIDY3LjM3IDEyNS43NSAxMDMuNDYgOTEuNDUgQyAxMzUuMTQgNjEuMjEgMTcyLjkwIDM3LjQ0IDIxMy44NiAyMS45NSBDIDI3MC4xMyAwLjYyIDMzMi4wNCAtNC44MSAzOTEuMjQgNS44NiBaIiBmaWxsPSIjMWI1MjFiIiAvPg0KPHBhdGggZD0iTSA0MTIuOTcgMzMuMDcgQyA0NDcuNzQgNDIuNDUgNDgxLjAxIDU3LjgxIDUxMC40NyA3OC41NCBDIDU0Ni4zMCAxMDMuNjEgNTc2Ljg4IDEzNi4yMiA1OTkuMjQgMTczLjgzIEMgNjIyLjk1IDIxMy4yMiA2MzcuNDIgMjU4LjIwIDY0MS4zNiAzMDMuOTkgQyA2NDYuOTUgMzY2LjgzIDYzMy4wNCA0MzEuMTAgNjAyLjAwIDQ4Ni4wMSBDIDU3Ni44NyA1MzAuNjggNTQwLjIyIDU2OS45OCA0OTUuNzEgNTk1LjczIEMgNDgxLjg2IDYwMy41OCA0NjcuMTYgNjEwLjI3IDQ1MS44OSA2MTQuODQgQyA0MjkuNzAgNTU3LjczIDQwNy41MiA1MDAuNjEgMzg1LjI0IDQ0My41NCBDIDM5MS4yMCA0NDAuNDQgMzk3LjE5IDQzNy41MyA0MDIuODEgNDMzLjgyIEMgNDE1LjExIDQyNS43MiA0MjUuOTYgNDE1LjM0IDQzMy43OSA0MDIuODIgQyA0NDQuOTEgMzg1LjUyIDQ1MC4yMyAzNjQuMTcgNDUxLjQ2IDM0My44MCBDIDQ1Mi4xMiAzMzEuNjEgNDUyLjA0IDMxOS41NyA0NDkuMzggMzA3LjYwIEMgNDQyLjU0IDI3NC44OSA0MjAuNzEgMjQ1Ljc2IDM5MS43NCAyMjkuMjggQyAzNzYuMjUgMjIwLjM4IDM1OC44MiAyMTUuMTQgMzQwLjk5IDIxMy45NSBDIDMyMC4wMyAyMTIuNzMgMjk4Ljg2IDIxNi44MSAyNzkuOTYgMjI1Ljk3IEMgMjU2LjYxIDIzNy4xOCAyMzcuMDggMjU2LjM1IDIyNS41MCAyNzkuNTIgQyAyMTcuMjEgMjk2LjA1IDIxMy4xMiAzMTQuNTIgMjEzLjY1IDMzMy4wMCBDIDIxNC4xMSAzNTQuNjQgMjE4LjQ1IDM3Ny4wNiAyMjguNjIgMzk2LjMyIEMgMjM2LjA5IDQxMS4wOCAyNDcuMDMgNDIzLjg5IDI2MC40NCA0MzMuNTggQyAyNjYuODUgNDM4LjQyIDI3My45MyA0NDEuOTEgMjgxLjA4IDQ0NS40OSBDIDI3MS45NiA0NjguNDcgMjYyLjUyIDQ5MS4zMiAyNTMuMjEgNTE0LjIzIEMgMjM5LjY3IDU0Ny41MyAyMjYuMTUgNTgwLjg0IDIxMi42MCA2MTQuMTQgQyAyMDQuNjcgNjEyLjIyIDE5Ny4wMyA2MDguNzEgMTg5LjU1IDYwNS40OSBDIDE2My44MyA1OTMuNTcgMTQwLjIyIDU3Ni43OCAxMTkuNzggNTU3LjIwIEMgMTE1LjUxIDU1My4zOSAxMTEuNjAgNTQ5LjQyIDEwNy44MiA1NDUuMTMgQyA1NS43NSA0ODkuMzYgMjQuNTkgNDE0LjM4IDIyLjk5IDMzOC4wMCBDIDIxLjUxIDI3Ni43NCAzOC41MiAyMTUuMjggNzEuODMgMTYzLjgxIEMgMTA2LjM1IDEwOS44MCAxNTguMTUgNjcuMjMgMjE3Ljg1IDQzLjg4IEMgMjc5LjQ1IDE5LjUwIDM0OS4wNSAxNS44NiA0MTIuOTcgMzMuMDcgWiIgZmlsbD0iIzNlYTUzOCIgLz4NCg0KPC9zdmc+"}),N.createElement(L.$s,{style:{display:"inline","margin-right":"5px",...M.style},src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICBoZWlnaHQ9IjE3MDUuMDYwNyINCiAgIHZpZXdCb3g9Ii00OC41ODMxMzIgLTEzNi4yMjg1MyA1OTkuODk3NDkgNTM4LjIwODM5Ig0KICAgd2lkdGg9IjE3MDUuMjMxMiINCiAgIHZlcnNpb249IjEuMSINCiAgIGlkPSJzdmcxMDMxNjQiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMxMDMxNjgiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTA5Ljk0Njg3LDE3Ny44NjQ0MiBIIC00OC4zNDMxMzIgYyAwLjAzLDAuNzggMC4wNSwxLjU1IDAuMDksMi4zMiAwLjA2LDEuNDkgMC4xNywyLjk3IDAuMjYsNC40NiAwLjA0LDAuNjQgMC4wNywxLjI4IDAuMTIsMS45MSAwLjEyLDEuNzIgMC4yNywzLjQ0IDAuNDMsNS4xNSAwLjA0LDAuMzkgMC4wNywwLjc4IDAuMTEsMS4xNSAwLjE4LDEuOTEgMC4zOSwzLjgyIDAuNjEsNS43MSAwLjAxLDAuMTggMC4wMywwLjM3IDAuMDYsMC41NSAwLjI1LDIuMDQgMC41MSw0LjA5IDAuODEsNi4xMiAwLDAuMDMgMCwwLjA2IDAuMDEsMC4wOCBhIDI2Ni4wNSwyNjYuMDUgMCAwIDAgOC4xOCwzNy40IGMgMC4wMiwwLjA1IDAuMDQsMC4xIDAuMDUsMC4xNSAwLjU3LDEuOTQgMS4xNywzLjg2IDEuNzgsNS43NyAwLjA0LDAuMTEgMC4wOCwwLjIzIDAuMTEsMC4zNCAwLjAzLDAuMTEgMC4wNywwLjIyIDAuMTEsMC4zNCAwLjU2LDEuNzMgMS4xNSwzLjQ1IDEuNzQsNS4xOCAwLjE1LDAuNDMgMC4zLDAuODcgMC40NiwxLjMxIDAuNTMsMS40OSAxLjA3LDIuOTggMS42Myw0LjQ4IDAuMjYsMC42NyAwLjUxLDEuMzQgMC43NiwyLjAyIDAuNDksMS4yNCAwLjk2LDIuNDcgMS40NSwzLjcgMC4zNywwLjkzIDAuNzUsMS44NiAxLjE0LDIuNzggMC40LDAuOTcgMC44LDEuOTIgMS4yMSwyLjg5IDAuNSwxLjE4IDEuMDMsMi4zNSAxLjU1LDMuNTMgMC4zMSwwLjcgMC42MywxLjM5IDAuOTQsMi4wOSAwLjY0LDEuNDEgMS4zLDIuODIgMS45Nyw0LjIyIDAuMjIsMC40NSAwLjQzLDAuOSAwLjY1LDEuMzQgMC43OCwxLjYyIDEuNTcsMy4yMSAyLjM3LDQuOCAwLjE0LDAuMjQgMC4yNSwwLjQ5IDAuMzgsMC43MyAwLjksMS43NiAxLjgyLDMuNTEgMi43Nyw1LjI1IDAuMDQsMC4wOCAwLjA5LDAuMTUgMC4xMiwwLjI0IDAuMiwwLjM2IDAuNDIsMC43MSAwLjYyLDEuMDcgbCAxMzUuMTkwMDAyLC04MS40MyAwLjUsLTAuMyBjIC01LjMzLC0xMS4yNCAtOC42NSwtMjMuMiAtOS44OSwtMzUuMzUgeiINCiAgICAgZmlsbD0iIzkzZDUwMCINCiAgICAgaWQ9InBhdGgxMDMxNDQiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTQ4Ljg1Njg3LDI1MC41MzQ0MiAtMC4zOCwwLjM4IC0xMTEuNTAwMDAyLDExMS40OSBjIDAuNTcsMC41MyAxLjE0LDEuMDggMS43MywxLjU5IDEuMDQsMC45NSAyLjEsMS44OCAzLjE1LDIuODEgMC41NSwwLjQ4IDEuMDgsMC45NiAxLjYzLDEuNDQgMS4yNiwxLjA5IDIuNTQsMi4xNSAzLjgxLDMuMjIgMC4zNSwwLjI5IDAuNjgsMC41NyAxLjAzLDAuODYgYSAyNTUuNTc2LDI1NS41NzYgMCAwIDAgNC45MSwzLjk0IGMgMS41OCwxLjI1IDMuMTcsMi40NiA0Ljc5LDMuNjggMC4wNywwLjA0IDAuMTIsMC4wOCAwLjE4LDAuMTMgYSAyNjYuNDgsMjY2LjQ4IDAgMCAwIDIwLjg2LDE0LjEgYyAwLjI0LDAuMTYgMC40OSwwLjMgMC43NCwwLjQ2IDEuMzcsMC44MSAyLjczLDEuNjIgNC4xMSwyLjQyIGwgMi41MiwxLjQ0IGMgMC44LDAuNDYgMS41OSwwLjkgMi4zOSwxLjM0IDEuNDUsMC43OSAyLjksMS41OCA0LjM2LDIuMzUgMC4yLDAuMTEgMC40LDAuMjIgMC42MSwwLjMyIDQuMDUsMi4xMiA4LjE3MDAwMiw0LjA5IDEyLjMzMDAwMiw1Ljk5IGwgMy45NiwtOS42MSA1Ni4wOCwtMTM2LjE3IDAuMiwtMC41IGMgLTYuMTIsLTMuMjggLTExLjk5LC03LjE2IC0xNy41MSwtMTEuNjggeiINCiAgICAgZmlsbD0iIzRkNWEzMSINCiAgICAgaWQ9InBhdGgxMDMxNDYiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTM3LjI0Njg3LDIzOS40MjQ0MiBhIDk1LjQ5Miw5NS40OTIgMCAwIDEgLTMuNDgsLTQuMSBjIC0xLC0xLjIzIC0xLjk2LC0yLjQ3IC0yLjg5LC0zLjczIC0xLjA3LC0xLjQ0IC0yLjExLC0yLjkgLTMuMSwtNC4zOCAtMC45OSwtMS40OSAtMS45NywtMi45OSAtMi44OSwtNC41MSBsIC0xMzUuMzYwMDAyLDgxLjUzIGMgMi4wODAwMDAzLDMuNDYgNC4yNDAwMDAzLDYuODIgNi40NjAwMDAzLDEwLjE0IDAuMDcsMC4xMiAwLjE0LDAuMjQgMC4yMiwwLjM1IDAuMDIsMC4wNSAwLjA1LDAuMDggMC4wOCwwLjEzIDAuMDcsMC4xIDAuMTQsMC4yMiAwLjIxLDAuMzMgMC4wMSwwLjAxIDAuMDIsMC4wMiAwLjAyLDAuMDQgMC4xOCwwLjI2IDAuMzYsMC41MiAwLjU0LDAuNzkgMC4wMSwwLjAxIDAuMDIsMC4wMyAwLjA0LDAuMDUgMC4wMiwwLjAyIDAuMDEsMC4wMSAwLjAxLDAuMDIgMi4zNDk5OTk5NiwzLjQ3IDQuNzcsNi44OSA3LjI2LDEwLjIzIDAuMDUsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDAuMDYsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDEuMDksMS40MyAyLjE3LDIuODYgMy4yOSw0LjI4IDAuMTUsMC4xOSAwLjI5LDAuMzcgMC40NSwwLjU1IDEuMTQsMS40NyAyLjMwOTk5OTcsMi45MiAzLjQ5OTk5OTcsNC4zNSAwLjI4LDAuMzQgMC41NywwLjY4IDAuODUsMS4wMyAxLjA3LDEuMjggMi4xNCwyLjU1IDMuMjMsMy44MSAwLjQ3LDAuNTQgMC45NSwxLjA5IDEuNDMsMS42MiAwLjkzLDEuMDYgMS44NSwyLjEyIDIuOCwzLjE2IDAuNTIsMC41NyAxLjA2LDEuMTUgMS41OSwxLjcyIDAuMjQsMC4yNyAwLjQ4LDAuNTIgMC43MywwLjc5IDAuNjksMC43NSAxLjM4LDEuNSAyLjA4LDIuMjQgMC4yOCwwLjI5IDAuNTgsMC41OCAwLjg2LDAuODggMS4yMywxLjI4IDIuNDgsMi41NyAzLjc0LDMuODMgbCAxMTEuNjcwMDAyLC0xMTEuNjUgYyAtMS4yOCwtMS4yOCAtMi40OCwtMi42IC0zLjY2LC0zLjkyIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTQ4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI4NS4yNTY4NywyNTAuNDc0NDIgYyAtMS4yMywwLjk5IC0yLjQ3LDEuOTYgLTMuNzMsMi44OSBsIDAuMjcsMC40NyA4MS40MiwxMzUuMTMgYyAzLjc3LC0yLjQ2IDcuNSwtNSAxMS4xNCwtNy42NyA3Ljg4LC01LjgxIDE1LjUsLTEyLjExIDIyLjg1LC0xOC44OSBsIC0xMTEuNTEsLTExMS40OSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1MCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAzNTEuMzg2ODcsMzkwLjA3NDQyIC0yLjc2LC00LjU5IC03NiwtMTI2LjEzIGMgLTEuNTQsMC45MiAtMy4xMSwxLjc2IC00LjY4LDIuNiAtMS41OSwwLjg2IC0zLjE4LDEuNjUgLTQuOCwyLjQyIC0xNC42LDYuOTIgLTMwLjQsMTAuNDYgLTQ2LjIzLDEwLjQ2IC0xMC4zNywwIC0yMC43MywtMS41IC0zMC43NSwtNC40OSAtMS43MSwtMC41MSAtMy4zOCwtMS4xOCAtNS4wNiwtMS43OCAtMS42OSwtMC41OSAtMy40LC0xLjExIC01LjA2LC0xLjc5IGwgLTU2LjA0LDEzNi4wOCAtMi4xOSw1LjMzIC0xLjg4LDQuNTcgLTAuMDEsMC4wMiBjIDAuMTQsMC4wNiAwLjI5LDAuMTEgMC40MywwLjE3IDAuMTYsMC4wNiAwLjMxLDAuMTEgMC40NiwwLjE4IGggMC4wMiBjIDAuMDQsMC4wMiAwLjA4LDAuMDMgMC4xMSwwLjA0IDEuMzIsMC41NSAyLjY1LDEuMDEgMy45OCwxLjUzIDEuNjcsMC42NSAzLjMzLDEuMzEgNSwxLjkyIDAuODYsMC4zMSAxLjcsMC42NyAyLjU1LDAuOTcgaCAwLjAxIGEgMjY3LjQyLDI2Ny40MiAwIDAgMCA1NC4xOSwxMi45NyBjIDAuNzMsMC4wOSAxLjQ0LDAuMTkgMi4xNywwLjI5IDAuNzUsMC4wOSAxLjUxLDAuMTYgMi4yNywwLjI1IDEuNDIsMC4xNiAyLjg0LDAuMzIgNC4yNywwLjQ2IGwgMS4wNiwwLjA5IGMgMS43NSwwLjE3IDMuNSwwLjMyIDUuMjQsMC40NCAwLjYsMC4wNSAxLjIsMC4wNyAxLjc5LDAuMTIgMS41MywwLjEgMy4wNiwwLjE5IDQuNTksMC4yNiAwLjk0LDAuMDYgMS44OCwwLjA4IDIuODIsMC4xMiAxLjIyLDAuMDQgMi40MywwLjA5IDMuNjUsMC4xMyAxLjc1LDAuMDQgMy41MiwwLjA1IDUuMjgsMC4wNiAwLjQyLDAgMC44MywwLjAxIDEuMjUsMC4wMiAxNC43NSwwIDI5LjUsLTEuMjMgNDQuMDksLTMuNjggMC4yNCwtMC4wNCAwLjQ5LC0wLjA4IDAuNzQsLTAuMTEgMS41NCwtMC4yNyAzLjA4LC0wLjU2IDQuNjIsLTAuODQgMC44OCwtMC4xNyAxLjc3LC0wLjM0IDIuNjMsLTAuNTEgMC45LC0wLjE5IDEuODEsLTAuMzcgMi43MSwtMC41NyAxLjUsLTAuMzEgMywtMC42NCA0LjUxLC0wLjk5IDAuMjcsLTAuMDYgMC41NCwtMC4xMSAwLjgxLC0wLjE5IDIyLjE4LC01LjE2IDQzLjYsLTEzLjE2IDYzLjcyLC0yMy43NSB2IC0wLjAxIGMgMS4zMiwtMC42OSAyLjYxLC0xLjQ4IDMuOTIsLTIuMiAxLjU2LC0wLjg1IDMuMTEsLTEuNzQgNC42NywtMi42MyAxLjA3LC0wLjYxIDIuMTYsLTEuMTggMy4yMywtMS44MiAwLjAxLC0wLjAxIDAuMDIsLTAuMDIgMC4wMywtMC4wMiBoIDAuMDEgYyAwLjAyLC0wLjAxIDAuMDMsLTAuMDIgMC4wNSwtMC4wMyBsIDAuMDIsLTAuMDIgLTAuMiwtMC4zMyAwLjIsMC4zMyBjIDAuMDEsMCAwLjAyLC0wLjAxIDAuMDMsLTAuMDEgMC4wMiwtMC4wMSAwLjAzLC0wLjAyIDAuMDUsLTAuMDMgMC4wNiwtMC4wNCAwLjEyLC0wLjA3IDAuMTgsLTAuMTEgMC4zNCwtMC4yMSAwLjY5LC0wLjQxIDEuMDQsLTAuNjIgeiBtIC0yMDIuNDcsLTMwNi4yMjAwMDcgYyAxLjIzLC0xIDIuNDgsLTEuOTYgMy43MywtMi45IGwgLTAuMjcsLTAuNDYgLTgxLjQyMDAwMiwtMTM1LjE0IGMgLTMuNzgsMi40NyAtNy41MSw1LjAyIC0xMS4xNiw3LjY5IC03Ljg3LDUuOCAtMTUuNSwxMi4wOSAtMjIuODMsMTguODYgbCAxMTEuNTEwMDAyLDExMS41IHoiDQogICAgIGZpbGw9IiM5M2Q1MDAiDQogICAgIGlkPSJwYXRoMTAzMTUyIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI5LjIzNjg2OCwtMjAuNjY1NTg3IGMgLTEuMjcsMS4yNyAtMi40NywyLjU4IC0zLjcxLDMuODYgLTEuMjMsMS4yOSAtMi40OSwyLjU3IC0zLjcsMy44NyBhIDI2Ni4xNTYsMjY2LjE1NiAwIDAgMCAtMjIuNTU5OTk5NzQsMjcuOTYgYyAtMC4zMjk5OTk5NiwwLjQ1IC0wLjY0OTk5OTk2LDAuOTMgLTAuOTc5OTk5OTYsMS4zOSAtMC43NiwxLjEyIC0xLjUyLDIuMjMgLTIuMjYsMy4zNSAtMC43OCwxLjE2IC0xLjU1LDIuMzQgLTIuMywzLjUxIC0wLjI4LDAuNDMgLTAuNTYsMC44NyAtMC44MywxLjMgLTI1LjY1MDAwMDMsNDAuMjMgLTM5LjM5MDAwMDMsODUuODU5OTk3IC00MS4yNDAwMDAzLDEzMS44NzAwMDcgLTAuMDcsMS43OSAtMC4xMSwzLjU4IC0wLjE1LDUuMzYgLTAuMDMsMS43OCAtMC4wOSwzLjU3IC0wLjA5LDUuMzUgSCAxMDkuMzQ2ODcgYyAwLC0xLjc4IDAuMTYsLTMuNTYgMC4yNiwtNS4zNSAwLjA5LC0xLjc5IDAuMTEsLTMuNTggMC4yOSwtNS4zNiAyLjA0LC0yMC41NiA5Ljk4LC00MC42NCAyMy44MiwtNTcuNTAwMDA3IDEuMTIsLTEuMzcgMi4zOSwtMi42NiAzLjYsLTMuOTggMS4xOSwtMS4zMyAyLjMxLC0yLjcgMy41OSwtMy45OCB6IG0gMzI1Ljg1MDAwMiwtMzkuMiBjIC0wLjIxLC0wLjEzIC0wLjQ0LC0wLjI2IC0wLjY1LC0wLjM5IC0xLjM5LC0wLjg1IC0yLjc5LC0xLjY3IC00LjIsLTIuNDkgLTAuODEsLTAuNDcgLTEuNjMsLTAuOTMgLTIuNDQsLTEuMzkgLTAuODMsLTAuNDYgLTEuNjQsLTAuOTIgLTIuNDcsLTEuMzcgYSA5MDEuNCw5MDEuNCAwIDAgMCAtNC4yOSwtMi4zMiBjIC0wLjIzLC0wLjExIC0wLjQ1LC0wLjIzIC0wLjY4LC0wLjM1IC05LjI2LC00Ljg0IC0xOC43NywtOS4xIC0yOC40OCwtMTIuOCAtMC4yNSwtMC4xIC0wLjUsLTAuMiAtMC43NSwtMC4yOSAtMi4xMiwtMC43OSAtNC4yNCwtMS41OCAtNi4zOCwtMi4zMiBhIDI2Ny4wODQsMjY3LjA4NCAwIDAgMCAtNTMuMjEsLTEyLjYyOTk5NyBsIC0yLjIyLC0wLjMgYyAtMC43NSwtMC4wOSAtMS40OSwtMC4xNiAtMi4yMywtMC4yNCAtMS40MywtMC4xNyAtMi44NSwtMC4zMyAtNC4yOSwtMC40NyAtMC4zOSwtMC4wNCAtMC43OSwtMC4wNiAtMS4yLC0wLjExIC0xLjY5LC0wLjE1IC0zLjQsLTAuMyAtNS4xLC0wLjQzIGwgLTEuOTksLTAuMTIgYyAtMS40NSwtMC4wOSAtMi45MywtMC4yIC00LjM4LC0wLjI2IC0wLjc4LC0wLjA0IC0xLjU2LC0wLjA3IC0yLjMzLC0wLjA5IFYgNjAuMDU0NDEzIGMgOC4xMiwwLjg0IDE2LjE3LDIuNTcgMjMuOTgsNS4yMiBsIDExNi41MSwtMTE2LjQ5IGMgLTQuMzMsLTMgLTguNywtNS45MiAtMTMuMiwtOC42NSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1NCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAyMTEuNzM2ODcsLTk4LjM2NTU4NCBjIC0xLjc5LDAuMDQgLTMuNTgsMC4wNCAtNS4zNiwwLjExIC0xMS4xNywwLjQ1IC0yMi4zMiwxLjU5IC0zMy4zOCwzLjQ1IC0wLjI0LDAuMDQgLTAuNDgsMC4wOCAtMC43MywwLjEyIC0xLjU1LDAuMjcgLTMuMDksMC41NSAtNC42MywwLjg0IC0wLjg3LDAuMTcgLTEuNzUsMC4zMyAtMi42MywwLjUgLTAuOTEsMC4xOCAtMS44MSwwLjM3IC0yLjcyLDAuNTcgLTEuNSwwLjMxIC0zLDAuNjQgLTQuNDksMC45OSAtMC4yOCwwLjA1IC0wLjU1LDAuMTIgLTAuODIsMC4xOCBhIDI2Ny40NjUsMjY3LjQ2NSAwIDAgMCAtNjMuNzMwMDAyLDIzLjc1OTk5NyBjIC0xLjMxLDAuNyAtMi41OSwxLjQ5IC0zLjksMi4yIC0xLjU2LDAuODYgLTMuMTIsMS43NCAtNC42NywyLjYzIC0xLjE1LDAuNjcgLTIuMzIsMS4yOCAtMy40NywxLjk2IC0wLjAxLDAuMDEgLTAuMDMsMC4wMiAtMC4wNCwwLjAyIC0wLjA4LDAuMDUgLTAuMTYsMC4xIC0wLjI0LDAuMTQgLTAuMywwLjE5IC0wLjYxLDAuMzQgLTAuOTEsMC41MiBsIDAuMDEsMC4wMiAyLjc3LDQuNTkgNzguNzUwMDAyLDEzMC43MyBjIDEuNTQsLTAuOTIgMy4xMSwtMS43NyA0LjY4LC0yLjYxIDEuNTgsLTAuODUgMy4xOCwtMS42NSA0Ljc5LC0yLjQxIGEgMTA3LjI1LDEwNy4yNSAwIDAgMSAzNS4zNiwtOS45MSBjIDEuNzgsLTAuMTggMy41NiwtMC4zMyA1LjM1LC0wLjQyIDEuNzgsLTAuMDkgMy41NywtMC4xOCA1LjM2LC0wLjE4IFYgLTk4LjQ3NTU4NCBjIC0xLjc5LDAgLTMuNTcsMC4wOCAtNS4zNSwwLjExIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTU2IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDQ4Mi40MjY4NywxNTQuMTA0NDIgYyAtMC4wOCwtMS40MiAtMC4xNiwtMi44MyAtMC4yNiwtNC4yNiBhIDc1LjQsNzUuNCAwIDAgMCAtMC4xNCwtMi4xMiBjIC0wLjExLC0xLjY3IC0wLjI1LC0zLjM0IC0wLjQxLC01LjAxIC0wLjAzLC0wLjQzIC0wLjA3LC0wLjg2IC0wLjExLC0xLjI5IC0wLjE4LC0xLjg3IC0wLjM4LC0zLjczIC0wLjYsLTUuNTkgLTAuMDIsLTAuMTUgLTAuMDMsLTAuMyAtMC4wNSwtMC40NSBsIC0wLjAzLC0wLjIxIGMgLTAuMjQsLTIuMDEgLTAuNTEsLTQuMDIgLTAuNzksLTYuMDIgbCAtMC4wMywtMC4xOSBhIDI2Ni40NTQsMjY2LjQ1NCAwIDAgMCAtOC4xNiwtMzcuMzMwMDA3IGMgLTAuMDMsLTAuMDkgLTAuMDUsLTAuMTYgLTAuMDgsLTAuMjQgLTAuNTcsLTEuOTEgLTEuMTYsLTMuOCAtMS43NSwtNS42OSAtMC4wOSwtMC4yNSAtMC4xNywtMC41IC0wLjI1LC0wLjc1IC0wLjU2LC0xLjcxIC0xLjEzLC0zLjQxIC0xLjcyLC01LjExIGwgLTAuNDgsLTEuMzggYyAtMC41MiwtMS40NyAtMS4wNiwtMi45NCAtMS42LC00LjQxIC0wLjI3LC0wLjcgLTAuNTMsLTEuNCAtMC44MSwtMi4wOSAtMC40NiwtMS4yMiAtMC45MywtMi40MyAtMS40MiwtMy42MyAtMC4zOCwtMC45NyAtMC43NywtMS45MiAtMS4xNiwtMi44NiAtMC4zOSwtMC45NSAtMC43OSwtMS44OCAtMS4xOCwtMi44MiAtMC41MiwtMS4yIC0xLjA1LC0yLjQgLTEuNTgsLTMuNTkgLTAuMywtMC42NyAtMC42LC0xLjM1IC0wLjkxLC0yLjAzIC0wLjY1LC0xLjQyIC0xLjMyLC0yLjg1IC0xLjk5LC00LjI3IC0wLjIxLC0wLjQyIC0wLjQyLC0wLjg2IC0wLjYzLC0xLjI5IC0wLjc4LC0xLjYyIC0xLjU4LC0zLjI1IC0yLjQsLTQuODUgLTAuMTEsLTAuMjIgLTAuMjMsLTAuNDUgLTAuMzQsLTAuNjcgLTAuOTEsLTEuNzcgLTEuODUsLTMuNTUgLTIuNzksLTUuMyAtMC4wNCwtMC4wNiAtMC4wNywtMC4xMyAtMC4xMSwtMC4xOSBhIDI2Ni45OSwyNjYuOTkgMCAwIDAgLTE1LjExLC0yNC41MiBsIC0xMTYuNTQsMTE2LjU0MDAwNyBjIDIuNjUsNy44MSA0LjM3LDE1Ljg2IDUuMjEsMjMuOTcgaCAxNTguMzIgYyAtMC4wNCwtMC43OSAtMC4wNiwtMS41OCAtMC4xLC0yLjM1IHoiDQogICAgIGZpbGw9IiM0ZDVhMzEiDQogICAgIGlkPSJwYXRoMTAzMTU4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDMyNC44MjY4NywxNjcuMTU0NDIgYyAwLDEuNzkgLTAuMTcsMy41NyAtMC4yNiw1LjM2IC0wLjA5LDEuNzkgLTAuMTIsMy41OCAtMC4zLDUuMzUgLTIuMDQsMjAuNTcgLTkuOTcsNDAuNjUgLTIzLjgxLDU3LjUyIC0xLjEyLDEuMzcgLTIuMzksMi42NSAtMy42LDMuOTggLTEuMiwxLjMyIC0yLjMxLDIuNjkgLTMuNTksMy45NyBsIDExMS42NywxMTEuNjUgYyAxLjI3LC0xLjI3IDIuNDYsLTIuNTggMy43LC0zLjg3IDEuMjQsLTEuMjkgMi41LC0yLjU2IDMuNywtMy44NyA4LjI2LC04Ljk1IDE1LjgyLC0xOC4zMSAyMi42MiwtMjguMDQgMC4yOCwtMC4zOSAwLjUzLC0wLjc3IDAuOCwtMS4xNSAwLjgzLC0xLjE5IDEuNjMsLTIuNCAyLjQ1LC0zLjYgMC43MSwtMS4wOCAxLjQyLC0yLjE1IDIuMTEsLTMuMjQgMC4zNSwtMC41MiAwLjY5LC0xLjA2IDEuMDIsLTEuNTggMjUuNjEsLTQwLjIxIDM5LjMyLC04NS43OSA0MS4xNiwtMTMxLjc3IDAuMDcsLTEuNzggMC4xMSwtMy41NyAwLjE0LC01LjM2IDAuMDQsLTEuNzggMC4wOSwtMy41NiAwLjA5LC01LjM1IHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTYwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDUyOS42NDY4NywtMTQ1LjM3NTU4IGMgLTI4Ljg5LC0yOC44OSAtNzUuNzMsLTI4Ljg5IC0xMDQuNjIsMCAtMjMuMDUsMjMuMDQgLTI3LjY2LDU3LjQ4OTk5NiAtMTMuOTMsODUuMTQ5OTkzIGwgLTE2MS4xNiwxNjEuMTQ5OTk3IGMgLTI3LjY2LC0xMy43MTk5OTcgLTYyLjEyLC05LjExOTk5NyAtODUuMTcsMTMuOTIwMDEgLTI4Ljg5LDI4Ljg5IC0yOC44OCw3NS43MyAwLDEwNC42MiAyOC45LDI4Ljg5IDc1Ljc1LDI4Ljg4IDEwNC42NCwwIDIzLjA1LC0yMy4wNSAyNy42NSwtNTcuNSAxMy45MiwtODUuMTYgbCAxNjEuMTYsLTE2MS4xNDAwMDcgYyAyNy42NywxMy43MiA2Mi4xMSw5LjEyIDg1LjE2LC0xMy45MyAyOC44OSwtMjguODggMjguODksLTc1LjcxOTk5MyAwLC0xMDQuNjA5OTkzIHoiDQogICAgIGZpbGw9IiM0MjQxNDMiDQogICAgIGlkPSJwYXRoMTAzMTYyIiAvPg0KPC9zdmc+DQo="}),N.createElement(L.$s,{style:{display:"inline",...M.style},src:y}),N.createElement(L.Gz,null,"API-First"),N.createElement(L.P7,null,N.createElement(D.p,null,"Leveraging open standards like OpenAPI and AsyncAPI."))),N.createElement(L.L0,null,N.createElement(L.$s,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDQyNiA0MjAiIHdpZHRoPSI0MjYuMHB0IiBoZWlnaHQ9IjQyMC4wcHQiPg0KDQo8cGF0aCBkPSJNIDE1Ny42NCA2LjEwIEMgMTYwLjIxIDYuNDIgMTYxLjQwIDguMjEgMTYzLjEyIDkuOTEgQyAxNjkuNjkgMTYuOTkgMTc2LjcyIDIzLjYyIDE4My4zNSAzMC42NCBDIDE5MS4xMyAzOS40OCAyMDAuMDQgNDcuMjAgMjA3LjgwIDU2LjA3IEMgMjAzLjU0IDYxLjA4IDE5OC42NCA2NS4zNSAxOTQuMDkgNzAuMDkgQyAxODEuNTYgODIuOTAgMTY4LjUxIDk1LjE3IDE1Ni4wNiAxMDguMDYgQyAxNTQuMTcgMTEwLjA0IDE1Mi4wOCAxMTEuNzUgMTQ5LjgyIDExMy4yOSBDIDE0OC45OCAxMDUuODQgMTUwLjk0IDk4LjY4IDE1MC40MyA5MS4yMiBDIDE0NS42MCA5Mi40MyAxNDEuMTQgOTQuNDUgMTM2Ljc2IDk2Ljc3IEMgMTEzLjY0IDEwOC40MiA5Mi4xNCAxMjcuMTggODAuNzEgMTUwLjczIEMgNzMuODMgMTY0LjE1IDcwLjI5IDE3OC45NyA2OS41OCAxOTQuMDAgQyA2OS42MCAyMDAuMzMgNjkuMzQgMjA2LjcyIDY5Ljg1IDIxMy4wMyBDIDcwLjk2IDIyMi44MyA3Mi4zNyAyMzIuNTMgNzUuMjMgMjQxLjk5IEMgNzUuODggMjQ0LjY4IDc3LjE4IDI0OC4xMyA3Ni4zNiAyNTAuODUgQyA3NC4zMyAyNTIuNDYgNzEuNTAgMjUzLjIzIDY5LjA5IDI1NC4xNiBDIDU1LjIyIDI1OS4xMyA0MS43MSAyNjUuMTYgMjcuNzcgMjY5LjkxIEMgMjUuMzMgMjYzLjI1IDIzLjkzIDI1Ni4zOSAyMi40NCAyNDkuNDggQyAyMC43MSAyNDAuNzggMTguNjcgMjMxLjgyIDE4LjI5IDIyMy4wMCBDIDE3LjIwIDIxMy42MSAxNy40OCAyMDQuNDQgMTcuNDYgMTk1LjAwIEMgMTcuMzYgMTgyLjg2IDE5LjE3IDE3MC43OSAyMS45MCAxNTguOTggQyAyOS4wNiAxMjguMDUgNDYuMTQgOTkuODkgNjkuNzcgNzguNzYgQyA4MC41NCA2OS4yOSA5Mi4yMSA2MC41NyAxMDQuODUgNTMuNzUgQyAxMjAuOTcgNDQuNjggMTM4LjM2IDM3LjQ1IDE1Ni4zMyAzMy4wMCBDIDE1Ni45OCAyMy44NSAxNTUuOTQgMTQuOTIgMTU3LjY0IDYuMTAgWiIgZmlsbD0iI2EyNDM0MiIgLz4NCjxwYXRoIGQ9Ik0gMTYxLjg2IDE1LjMxIEMgMTY4Ljc4IDIwLjc2IDE3NC4yNyAyOC4yNiAxODAuNjEgMzQuMzkgQyAxODYuODkgNDAuNDYgMTkyLjY0IDQ3LjAzIDE5OS4wNCA1Mi45OCBDIDIwMC4wMiA1NC4xMyAyMDIuMjAgNTUuNjcgMjAxLjMyIDU3LjM5IEMgMTk4Ljg4IDYwLjQ3IDE5NS4yNiA2Mi42NyAxOTIuNDkgNjUuNDkgQyAxODQuMTUgNzMuODIgMTc1Ljg3IDgyLjIwIDE2Ny40OCA5MC40OSBDIDE2My4xOSA5NC42NSAxNTkuMzkgOTkuMTMgMTU0LjY0IDEwMi44MSBDIDE1NC4yNSA5Ni45NyAxNTQuODkgOTEuMjMgMTU1LjMxIDg1LjQxIEMgMTQ4Ljg0IDg2LjA5IDE0My42MyA4OC45OSAxMzcuODIgOTEuNjQgQyAxMzEuMjYgOTQuODggMTI0LjQ5IDk4LjI1IDExOC41NyAxMDIuNTYgQyAxMTMuMDkgMTA2LjU1IDEwNy43MCAxMTAuMDYgMTAyLjkzIDExNC45MiBDIDk3LjA2IDEyMS4wMCA5MC45NSAxMjYuMjIgODYuMjcgMTMzLjM1IEMgNzIuMjQgMTUyLjg5IDY0LjgzIDE3Ni45NiA2NS40MyAyMDEuMDAgQyA2NS4wOCAyMTMuODAgNjcuMDkgMjI2LjI1IDcwLjE5IDIzOC42MyBDIDcxLjA0IDI0MS45MSA3MS41MSAyNDUuMjMgNzEuNzkgMjQ4LjU5IEMgNTkuNjAgMjUzLjQ4IDQ3LjI2IDI1Ny45MiAzNS4xMCAyNjIuODggQyAzMy44MSAyNjMuMzMgMzAuMjIgMjY0LjQ5IDI5Ljc4IDI2Mi40NSBDIDI1Ljc3IDI0OC4xNyAyMy41OCAyMzMuODUgMjIuMTQgMjE5LjEzIEMgMjEuMDcgMjExLjI3IDIxLjU2IDIwMi45OSAyMS40NCAxOTUuMDAgQyAyMS4zMiAxODcuMjUgMjIuNDcgMTc5LjkzIDIzLjUxIDE3Mi4yMSBDIDI2LjEwIDE1NC4yNCAzMi4zMSAxMzYuNzYgNDEuMTAgMTIwLjkwIEMgNDYuOTQgMTExLjA5IDUzLjYwIDEwMS42NSA2MS4xOSA5My4xMSBDIDc1LjQ5IDc3LjI3IDkzLjEzIDY1LjE3IDExMS42MyA1NC43NCBDIDExOC4yMSA1MS4xNyAxMjUuMTcgNDguMjYgMTMyLjA1IDQ1LjMwIEMgMTQxLjIyIDQxLjQ3IDE1MC43NiAzOC45OSAxNjAuMjIgMzYuMDQgQyAxNjEuMDggMjkuMTYgMTYwLjY2IDIyLjEwIDE2MS44NiAxNS4zMSBaIiBmaWxsPSIjZTdiYWI4IiAvPg0KPHBhdGggZD0iTSAyNDQuODAgMjguNTYgQyAyNDcuNDMgMjguMTAgMjUwLjA5IDI4LjY2IDI1Mi42NCAyOS4zMCBDIDI2My4wOCAzMi4xNiAyNzMuNDEgMzUuMzYgMjgzLjQ2IDM5LjM5IEMgMzAzLjQwIDQ3LjAxIDMyMi4yMiA1Ny43NiAzMzguNzkgNzEuMjMgQyAzNDUuNDggNzYuODEgMzUxLjY4IDgzLjAyIDM1Ny41MCA4OS41MCBDIDM3Mi43NCAxMDcuMDQgMzgzLjgzIDEyNy45NiAzODkuODcgMTUwLjM5IEMgMzkyLjQwIDE1OC43OCAzOTMuNzUgMTY3LjM4IDM5NS4wNyAxNzYuMDEgQyAzOTUuOTcgMTgyLjU3IDM5NS4zNyAxODkuMzcgMzk1Ljk3IDE5NS45MCBDIDM5Ni44OCAyMDMuNTYgMzk2LjYxIDIxMS4xMyAzOTUuNjggMjE4Ljc3IEMgMzk1LjQ2IDIyNS40OCAzOTQuNDIgMjMyLjA1IDM5My4zNiAyMzguNjYgQyAzOTIuNTkgMjQ0LjU2IDM5MC42MCAyNTAuMDkgMzkwLjI0IDI1Ni4wNSBDIDM5Ny40MyAyNjAuNDUgNDA0Ljc2IDI2NC41OSA0MTEuOTAgMjY5LjA3IEMgNDExLjc3IDI2OS44MyA0MTEuNjQgMjcwLjU4IDQxMS41MSAyNzEuMzQgQyA0MDYuMTcgMjcyLjY4IDQwMC44NSAyNzQuMDggMzk1LjU1IDI3NS41NyBDIDM4Mi44NCAyNzkuMzUgMzY5Ljk2IDI4Mi41MSAzNTcuMjIgMjg2LjE3IEMgMzUzLjI2IDI4Ny4yMiAzNDkuMjcgMjg4LjY4IDM0NS4yMSAyODkuMjcgQyAzNDMuNzYgMjg4LjU2IDM0My41OCAyODcuNDIgMzQzLjEwIDI4Ni4wMSBDIDMzNy45OSAyNjYuODcgMzMyLjM0IDI0Ny45MCAzMjcuMTUgMjI4Ljc3IEMgMzI1LjU0IDIyMi42MyAzMjIuODEgMjE3LjY0IDMyMy40NSAyMTEuMTEgQyAzMzAuMDEgMjE0LjMyIDMzNS4zNCAyMTkuOTQgMzQyLjIzIDIyMi4wMyBDIDM0Mi43NSAyMTcuMzUgMzQzLjUyIDIxMi43NCAzNDMuNDggMjA4LjAwIEMgMzQzLjU0IDIwMC4xMiAzNDMuODEgMTkxLjkwIDM0Mi41MCAxODQuMTcgQyAzNDEuMDUgMTc1LjA3IDMzOS40MiAxNjUuNTEgMzM2LjE0IDE1Ni44OCBDIDMzMi4zMiAxNDYuMjEgMzI2Ljg3IDEzNi4wMyAzMTkuOTYgMTI3LjA0IEMgMzA2LjQ3IDEwOS41NiAyODguMDggOTcuNTYgMjY3LjY2IDg5LjYwIEMgMjU5LjM0IDg2LjQ2IDI1MS4wMyA4My41OCAyNDIuMTkgODIuMjcgQyAyMzkuODEgODEuODEgMjM4LjA1IDgwLjgyIDIzOC40MSA3OC4wNSBDIDIzOS4wMyA2OC4yMSAyNDEuODYgNTguNzAgMjQxLjU1IDQ4LjcwIEMgMjQxLjg1IDQ4LjkyIDI0Mi4xNSA0OS4xNCAyNDIuNDUgNDkuMzYgQyAyNDIuOTkgNDIuNDAgMjQ0LjAxIDM1LjQ4IDI0NC44MCAyOC41NiBaIiBmaWxsPSIjNWI3MDM2IiAvPg0KPHBhdGggZD0iTSAyNTMuMzEgMzMuODIgQyAyNzMuMzkgMzkuMzcgMjkyLjgzIDQ2Ljg4IDMxMC45OCA1Ny4xNSBDIDMyMS4zNiA2My42NyAzMzIuMTQgNzAuNTQgMzQxLjA3IDc4LjkxIEMgMzQ1LjMwIDgyLjQyIDM0OS4yMiA4Ni4wNiAzNTIuNjEgOTAuNDIgQyAzNjEuNjMgMTAwLjQwIDM2OS4zNSAxMTEuNjkgMzc1LjE3IDEyMy44MyBDIDM4NC4yMCAxNDEuMjMgMzg5LjA5IDE2MS4xMSAzOTEuMzMgMTgwLjUxIEMgMzkzLjA4IDE5MC4wOCAzOTIuMjUgMTk5LjM0IDM5Mi40NiAyMDkuMDAgQyAzOTIuNjQgMjE1Ljc5IDM5MS4yMiAyMjIuMjEgMzkwLjUwIDIyOC45MSBDIDM4OS42MyAyMzcuMDkgMzg3LjkwIDI0NS4xMCAzODUuODQgMjUzLjA1IEMgMzg1LjY1IDI1NC40OSAzODQuNzAgMjU2Ljg0IDM4Ni4wMyAyNTcuOTUgQyAzODkuOTQgMjYxLjcyIDM5NS43NyAyNjQuMTMgNDAwLjQwIDI2Ni44NiBDIDQwMS4zMyAyNjcuMzcgNDAxLjQzIDI2OS4wMCA0MDEuODUgMjY5LjkyIEMgMzg5LjY2IDI3Mi40NSAzNzcuNzggMjc2LjQ1IDM2NS43MSAyNzkuNDkgQyAzNTkuMjIgMjgxLjA0IDM1My41MiAyODMuNjkgMzQ2LjcyIDI4My43NCBDIDM0NC4wNiAyNzMuMTkgMzQwLjkxIDI2Mi43NiAzMzguMDcgMjUyLjI1IEMgMzM1LjE3IDI0MS40OSAzMzEuNjcgMjMxLjA3IDMyOS4yMCAyMjAuMjMgQyAzMzQuNDMgMjIyLjg3IDMzOS4xNiAyMjYuMzIgMzQ0LjM5IDIyOC45NiBDIDM0Ni45MCAyMjMuNDMgMzQ2LjU4IDIxNy44NyAzNDcuMzEgMjEyLjAwIEMgMzQ4LjE4IDIwMy40NiAzNDcuOTQgMTk1LjAxIDM0Ni44NCAxODYuNTEgQyAzNDUuMTYgMTY2LjU5IDMzOC43NCAxNDcuMTggMzI3LjU2IDEzMC41NiBDIDMyMC4xMiAxMTguNzMgMzEwLjAzIDEwOS40NSAyOTguOTQgMTAxLjEwIEMgMjg1LjQ1IDkyLjEzIDI3MC40OCA4NS4yOCAyNTQuODcgODAuOTcgQyAyNTAuNjcgNzkuODcgMjQ2LjUzIDc4LjY1IDI0Mi40MCA3Ny4yOSBDIDI0NC41NCA2My4xOSAyNDYuMjYgNDkuMDYgMjQ4LjMyIDM0Ljk2IEMgMjQ4LjU1IDMyLjE5IDI1MS42MiAzMy42MSAyNTMuMzEgMzMuODIgWiIgZmlsbD0iI2MzZDg5YyIgLz4NCjxwYXRoIGQ9Ik0gNzQuOTUgMjkwLjMzIEMgODAuMTUgMjkxLjI5IDg0Ljk5IDI5My4yMSA5MC4yMCAyOTQuNTUgQyA5OS40NCAyOTYuOTEgMTA4LjQyIDMwMC4xNSAxMTcuNjYgMzAyLjUzIEMgMTI0LjcxIDMwNC44MCAxMzEuOTAgMzA2LjU1IDEzOC45NiAzMDguNzggQyAxNDMuNjMgMzEwLjMxIDE0OC4xNyAzMTAuNzMgMTUyLjE5IDMxMy44NCBDIDE0Ni4yOCAzMTcuMzcgMTM5LjkwIDMxOS44MSAxMzMuODEgMzIzLjA1IEMgMTM2LjA3IDMyNy41MSAxMzkuOTEgMzI5LjQxIDE0My43NyAzMzIuMjMgQyAxNTUuNDAgMzQwLjM4IDE2OC4zNSAzNDYuNzggMTgxLjg4IDM1MS4wNiBDIDE5MC41OCAzNTMuNDMgMTk5Ljk0IDM1NS44MyAyMDkuMDAgMzU1LjU5IEMgMjE1LjY1IDM1NS41MiAyMjIuNDEgMzU1Ljg2IDIyOS4wMiAzNTUuMTAgQyAyNDMuODIgMzUyLjk3IDI1OC4yMSAzNDcuNjMgMjcxLjAwIDMzOS45MiBDIDI4NC41NSAzMzEuOTAgMjk2LjQ3IDMyMS43NyAzMDcuMjkgMzEwLjM4IEMgMzA5LjMzIDMxMS43NyAzMTEuMzUgMzEzLjE2IDMxMy4yNCAzMTQuNzUgQyAzMTkuMTMgMzE5Ljg1IDMyNS4yMSAzMjQuNzMgMzMxLjEwIDMyOS44MyBDIDMzNi44OSAzMzQuODIgMzQzLjIyIDMzOS4zNCAzNDguNTIgMzQ0Ljg0IEMgMzQ0LjE0IDM0OS43MSAzMzkuMjYgMzU0LjAxIDMzNC4zNSAzNTguMzIgQyAzMTYuMTggMzc0LjAwIDI5NS40NiAzODguMjkgMjczLjA0IDM5Ny4xMiBDIDI2Ny43NCAzOTkuMjkgMjYyLjUyIDQwMS41MiAyNTYuOTQgNDAyLjkyIEMgMjQ1LjA3IDQwNi4wMyAyMzIuMzEgNDA5LjA1IDIyMC4wMCA0MDguNzMgQyAyMTAuMDEgNDA4LjY1IDE5OS40OCA0MDkuMzIgMTg5LjcwIDQwNy40MCBDIDE2OS41MiA0MDQuNTQgMTUxLjAwIDM5Ny4zMCAxMzMuMDEgMzg3Ljk0IEMgMTE3LjUyIDM3OS40MyAxMDMuMTUgMzY4Ljc3IDg5Ljk3IDM1Ny4wMiBDIDg2LjM3IDM1My45MiA4My4yNCAzNDkuNTggNzkuMDYgMzQ3LjM0IEMgNzAuNzggMzUwLjI2IDYzLjQyIDM1NS42NyA1NS4wMiAzNTguNDYgQyA1NS43MCAzNTEuMjUgNTguMzkgMzQ1LjI0IDYwLjI3IDMzOC4yNSBDIDYzLjI3IDMyOC41NyA2NS44OSAzMTguNzkgNjguOTggMzA5LjE0IEMgNzAuOTcgMzAyLjc2IDcyLjE2IDI5Ni40NiA3NC45NSAyOTAuMzMgWiIgZmlsbD0iIzNjNjU5NCIgLz4NCjxwYXRoIGQ9Ik0gOTIuODMgMzAwLjA4IEMgMTAyLjY1IDMwMi45MCAxMTIuNDMgMzA1Ljg1IDEyMi4yNSAzMDguNjUgQyAxMjguMzAgMzEwLjQxIDEzNC4zNiAzMTIuMDMgMTQwLjI4IDMxNC4yMiBDIDEzNS4zNyAzMTcuMzggMTI5LjkwIDMxOS4zOCAxMjQuOTEgMzIyLjQyIEMgMTI3LjA0IDMyNC44NiAxMjkuMjYgMzI3LjE5IDEzMS44NiAzMjkuMTQgQyAxNDcuNzggMzQxLjgwIDE2NS41MSAzNTEuNjEgMTg1LjMwIDM1Ni42OSBDIDE5OS45NCAzNjAuODAgMjE1LjY5IDM2MS4yNyAyMzAuNzQgMzU5LjQyIEMgMjU4LjA0IDM1NS4xNCAyODIuMzAgMzQxLjAyIDMwMi4wMiAzMjIuMDIgQyAzMDMuODEgMzIwLjM3IDMwNS43MCAzMTguMTggMzA3Ljk5IDMxNy4yNSBDIDMxMC41MiAzMTguMzEgMzEyLjgwIDMyMC4zNyAzMTQuODcgMzIyLjE0IEMgMzE4Ljk1IDMyNS43NCAzMjMuMjEgMzI5LjEyIDMyNy4zMyAzMzIuNjggQyAzMzIuMDYgMzM2LjgzIDMzNy4xOSAzNDAuMzggMzQxLjU0IDM0NC45NyBDIDMzNy4yOCAzNDkuOTkgMzMyLjE4IDM1My45NiAzMjcuMjEgMzU4LjIzIEMgMzE3Ljc2IDM2Ni4yOCAzMDcuNTggMzczLjQ5IDI5Ni45OSAzNzkuOTcgQyAyNzEuNjQgMzk1LjE1IDI0MS4xMiA0MDUuNjQgMjExLjMzIDQwNC40OSBDIDE5MC4xOCA0MDQuOTcgMTY4LjY1IDM5OS4wNyAxNDkuMzMgMzkwLjc1IEMgMTI0LjI4IDM3OS41NCAxMDEuNDggMzYzLjIzIDgyLjY4IDM0My4yNiBDIDgxLjU4IDM0Mi40NCA4MC45MyAzNDEuMjIgNzkuNDAgMzQxLjc1IEMgNzMuMzQgMzQzLjYzIDY4Ljc4IDM0OC4wMiA2Mi4zMSAzNDkuMDYgQyA2Mi44NiAzNDUuODkgNjMuNjAgMzQyLjc4IDY0LjU4IDMzOS43MSBDIDY5LjE5IDMyNS4zOSA3My4wNSAzMTAuNzYgNzcuNjIgMjk2LjM4IEMgODMuMDYgMjk2LjcxIDg3LjY1IDI5OC42NSA5Mi44MyAzMDAuMDggWiIgZmlsbD0iIzRjODFiZiIgLz4NCjwvc3ZnPg=="}),N.createElement(L.Gz,null,"API-Testing"),N.createElement(L.P7,null,N.createElement(D.p,null,"Testing as first class citizen. Helps you create complete test suites from your Models and APIs."))))),N.createElement(L.BW,null,N.createElement(L.X_,null,N.createElement(L.YZ,null,N.createElement(L.vk,{src:z,alt:"Domain Driven Design is about Business Understanding",className:"only-small"}),N.createElement(L.Mo,{className:"wide-feature-text"},N.createElement("h3",null,"Maintainable Software"),N.createElement(D.ul,null,"\n",N.createElement(D.li,null,"It is ",N.createElement("strong",null,"not a matter of code")," but a matter of ",N.createElement("strong",null,"understanding the business domain")),"\n",N.createElement(D.li,null,"Software well designed ",N.createElement("strong",null,"should be easy to understand by all")),"\n")),N.createElement(L.vk,{src:z,alt:"Domain Driven Design is about Business Understanding",className:"only-wide"})),N.createElement(L.YZ,null,N.createElement(L.vk,{src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB4PSIwcHgiDQogICB5PSIwcHgiDQogICB2aWV3Qm94PSIwIDAgMzAwIDMwMCINCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiDQogICBpZD0ic3ZnNjc2NDYiDQogICB3aWR0aD0iMzAwIg0KICAgaGVpZ2h0PSIzMDAiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcw0KICAgICBpZD0iZGVmczY3NjUwIiAvPjxwYXRoDQogICAgIGZpbGw9IiNiYWI5YmIiDQogICAgIGQ9Im0gMjAuNjA1MDEyLDE4MC42NjkwMiBjIC0zLjA0OTg4Myw0NC43MzcyOSAzMS44MDgzNyw4My42Nzg2NiA3Ny43MDU1MjQsODYuODA3NjMgMTUuMTcwNDY0LDEuMDM0MjEgMjkuNjMzMjI0LC0yLjAzODkxIDQyLjM2NjYyNCwtOC4xMzkzOCAxMS43ODc2NSw3Ljc3MjAyIDI1LjY5OTUzLDEyLjc3OTY1IDQwLjg2OTk5LDEzLjgxMzg3IDQ1Ljg5NzE1LDMuMTI4OTYgODUuNzE3ODcsLTMwLjcyMTMyIDg4Ljc2Nzc1LC03NS40NTg2IDIuMDYzNjYsLTMwLjI3MDk5IC0xMy4yNjI5MSwtNTcuODQ0ODcgLTM3LjU4NjQ5LC03My41MDg4NyAwLjY5Nzk0LC0zLjQyMDI1IDEuMjU1NjUsLTYuODkxNjcgMS40OTkwMiwtMTAuNDYxNTMgQyAyMzcuMjc3MzEsNjguOTg0ODYxIDIwMi40MTkwNSwzMC4wNDM0NDkgMTU2LjUyMTksMjYuOTE0NDk1IDExMC42MjQ3NSwyMy43ODU1NDEgNzAuODA0MDUyLDU3LjYzNTg1IDY3Ljc1NDE3LDEwMi4zNzMxMiBjIC0wLjI0MzM0NCwzLjU2OTUgLTAuMTYxOTIzLDcuMDg0NTQgMC4wNjUzNSwxMC41NjgxNyAtMjYuMjI0NDk4LDEyLjIxOTg2IC00NS4xNTEzMzksMzcuNDU2NyAtNDcuMjE1MDA5LDY3LjcyNzcgeiBtIDI0MS4zODYyMDgsMTYuNDU2MDYgYyAtMi43NDQ4MSw0MC4yNjI0MyAtMzguNTg0NjcsNzAuNzI4NzUgLTc5Ljg5MDk3LDY3LjkxMjc3IC0xMi4xNTMwMSwtMC44Mjg1IC0yMy40MDQxOSwtNC41MDQ4MSAtMzMuMjI0MTYsLTEwLjIyODc4IDIxLjQ0ODM4LC0xMy40MDQzMiAzNi4zODQzMSwtMzYuMTI2MDUgMzguMjAyMDksLTYyLjc5MDEgMC4yNDMzNSwtMy41Njk0OCAwLjE2MTksLTcuMDg0NTUgLTAuMDY1MywtMTAuNTY4MTggMjAuNTM3MjIsLTkuNTcxMTkgMzYuNTI0MDcsLTI3LjE0Mjk2IDQzLjUwNzUxLC00OC44NjA0NyAyMC41MDE4NiwxNC4zMzAzMSAzMy4yNTk3OSwzOC4yOTAyOCAzMS40NzA1Niw2NC41MzU2OCB6IE0gMTEyLjk2NjM1LDE4MC4yNzc1NiBjIDkuODIyMDIsNC45NTc5NiAyMC43OTE5Nyw4LjEwNTQ4IDMyLjQ5NTAzLDguOTAzMzIgMTEuNzAzMDgsMC43OTc4NCAyMi45OTkxNywtMC44MzE4OCAzMy40MDI3LC00LjQxMDg2IDAuMDU0NywyLjIwODg5IDAuMDQ1LDQuNDMzMzQgLTAuMTA4MjUsNi42ODA2NSAtMS43MjIwNCwyNS4yNTk3NCAtMTYuNDc2MzIsNDYuNjU1NzEgLTM3LjQzMDY2LDU4LjM5OTIxIC0xOS4xNjYzOCwtMTQuNDgyODYgLTMwLjg4MDU4LC0zNy42ODA0NSAtMjkuMTU4NjMsLTYyLjkzODgyIDAuMTUzMTcsLTIuMjQ3NDggMC40NDU0MSwtNC40NTI2OSAwLjc5OTQxLC02LjYzMzUzIHogbSAzNi42MzEsLTUxLjc2NTI1IGMgMTUuMjQ4NzYsMTEuNTIxMyAyNS43NjU4NywyOC41NjU5MyAyOC41NjY2Miw0Ny43NzcxNSAtOS45Mzk1MiwzLjc0NzIzIC0yMC44MjEzNyw1LjU1MjY5IC0zMi4xNDk2NCw0Ljc4MDQxIC0xMS4zMjgyNSwtMC43NzIyOSAtMjEuODY0NCwtNC4wMzc3OCAtMzEuMjAzMDUsLTkuMTA0NDggNS4zODE2NiwtMTguNjQ5NjkgMTguMTE0NzUsLTM0LjEwNzQzIDM0Ljc4NjA0LC00My40NTI2NCB6IG0gLTQyLjA0NzI2LDM4Ljk2NDA3IEMgOTEuMDgzNjAxLDE1NS45NjQ3NCA3OS42MDkwOTksMTM4LjI1ODE4IDc2LjY3MTA4MSwxMTguMTA5MyBjIDkuOTM5NjYsLTMuNzQ5MDQgMjAuODIxNTA2LC01LjU1NDUzIDMyLjE0OTc2OSwtNC43ODIyNSAxMi4xNTMwMiwwLjgyODUxIDIzLjQwNDIsNC41MDQ4IDMzLjIyNDE4LDEwLjIyODc4IC0xNi4xNjY5MSwxMC4xMDUyNiAtMjguNTczMSwyNS41MDg5IC0zNC40OTUwNCw0My45MjE5MyB6IG0gNTAuMjAyMDIsLTQyLjg1MTE2IGMgMTAuNTA1OTUsLTQuMzM4MzMgMjIuMTUyNDIsLTYuNDUzNTcgMzQuMzA0OTksLTUuNjI1MDkgMTEuMzI3NzksMC43NzIyNSAyMS44NjQ0Miw0LjAzNzc4IDMxLjIwMzA3LDkuMTA0NDkgLTUuNjQzNTMsMTkuNTYxNTEgLTE5LjQxMTM1LDM1LjU0NzIyIC0zNy4yOTMyMiw0NC43MTk1NSAtMy4zNjc3OCwtMTkuMDQ5NjIgLTEzLjU2ODg4LC0zNS45OTQ0NyAtMjguMjE0NzQsLTQ4LjIwMDM0IHogTSA3Ni4wNzk4ODcsMTAyLjk0MjU3IGMgMi43NDQ4MTcsLTQwLjI2MjQyNyAzOC41ODQ2NjMsLTcwLjcyODc0IDc5Ljg5MDk0MywtNjcuOTEyNzYgNDEuMzA2MjgsMi44MTU5NzkgNzIuNjc5NzgsMzcuODY0NDM4IDY5LjkzNDk2LDc4LjEyNjg2IC0wLjE1MzE3LDIuMjQ3NDkgLTAuNDQ1NCw0LjQ1MjcgLTAuNzk5NCw2LjYzMzU0IC05LjgyMjAyLC00Ljk1Nzk2IC0yMC43OTE5NywtOC4xMDU0OSAtMzIuNDk1MDMsLTguOTAzMzIgLTE1LjE3MDQ4LC0xLjAzNDIyIC0yOS42MzMyNSwyLjAzODk0IC00Mi4zNjY2Miw4LjEzOTM4IC0xMS43ODc2NywtNy43NzIwMyAtMjUuNjk5NTQsLTEyLjc3OTY2IC00MC44NzAwMiwtMTMuODEzODggLTExLjcwMzA1NSwtMC43OTc4NCAtMjIuOTk5MTU0LDAuODMxODggLTMzLjQwMjY4OCw0LjQxMDg2IC0wLjA1NDczLC0yLjIwODg4IC0wLjA0NDk1LC00LjQzMzM1IDAuMTA4MjUzLC02LjY4MDY2IHogbSAtNy4yMTE2NzcsMTguNjMwNjUgYyAzLjk3MTU2MywyMi40NjI0OCAxNy40MjU0OCw0Mi4wNDUwNyAzNi40NzM4NSw1NC4zMTMwNSAtMC42OTc5NSwzLjQyMDI0IC0xLjI1NTY2LDYuODkxNjggLTEuNDk5MDIsMTAuNDYxNTMgLTEuODE3ODcsMjYuNjY1NDMgOS44OTY4MSw1MS4yMDE3MSAyOS4zMjcwNSw2Ny4zOTM3OCAtMTAuNTA1OTQsNC4zMzgzNyAtMjIuMTUyNDMsNi40NTM1OCAtMzQuMzA0OTg3LDUuNjI1MSBDIDU3LjU1ODgyMiwyNTYuNTUwNyAyNi4xODUzMjQsMjIxLjUwMjI1IDI4LjkzMDE0LDE4MS4yMzk4MyAzMC43MTkyMTUsMTU0Ljk5NjcyIDQ2LjYxMDg4NywxMzIuOTg5NDQgNjguODY4MDM1LDEyMS41NzIyOCBaIg0KICAgICBpZD0icGF0aDY3NjQwIg0KICAgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjIuNjA3NDQiIC8+PC9zdmc+DQo=",alt:"Gap between Domain Experts - Technical Knwoledge"}),N.createElement(L.Mo,{className:"wide-feature-text"},N.createElement("h3",null,"Common Language (DSL)"),N.createElement(D.p,null,"A common language closes the gap between:"),N.createElement(D.ul,null,"\n",N.createElement(D.li,null,"\n",N.createElement("strong",null,"Domain Experts"),"\n"),"\n",N.createElement(D.li,null,"\n",N.createElement("strong",null,"Technical Experts"),"\n"),"\n",N.createElement(D.li,null,"Working ",N.createElement("strong",null,"Software & Tests")),"\n"))),N.createElement(L.YZ,null,N.createElement(L.vk,{src:C,alt:"",width:"300px",className:"only-small"}),N.createElement(L.Mo,{className:"wide-feature-text"},N.createElement("h3",null,"ZenWave SDK"),N.createElement(D.p,null,"Accelerate your development ",N.createElement("strong",null,"Converting your Models")," into ",N.createElement("strong",null,"Software Artifacts:")),N.createElement(D.ul,null,"\n",N.createElement(D.li,null,"API Definitions: OpenAPI, AsyncAPI..."),"\n",N.createElement(D.li,null,"SpringBoot/SpringCloud Backend..."),"\n",N.createElement(D.li,null,"API Testing: KarateDSL, Spring WebTestClient..."),"\n")),N.createElement(L.vk,{src:C,alt:"",width:"300px",className:"only-wide"})))),N.createElement(L.X_,null,N.createElement("section",null,N.createElement("div",{className:"home-links"},N.createElement("div",null,N.createElement("a",{href:"/docs/domain-modeling/business-domain-modeling/"},"Domain Modeling")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/event-driven-design/zenwave-domain-language/"},"ZDL Modeling Language")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/zenwave-sdk"},"ZenWave SDK"))))),N.createElement(L.X_,{className:"home-screenshots"},N.createElement("h2",null,"A Domain Language Designed for Event-Driven Architectures"),N.createElement(L.Ee,{src:T.Z,alt:"Event Storming"}),N.createElement("h2",null,"... And Bounded Context Mapping"),N.createElement(L.Ee,{src:w.Z,alt:"Bounded Context Mapping with ZDL",width:"100%"}),N.createElement("h2",null,"Can be read as documentation"),N.createElement(L.Ee,{src:i.Z}),N.createElement("h2",null,"And easily converted into working software & tests"),N.createElement(L.Ee,{src:E})),N.createElement(L.X_,null,N.createElement("section",null,N.createElement("div",{className:"home-links"},N.createElement("div",null,N.createElement("a",{href:"/docs/domain-modeling/business-domain-modeling/"},"Domain Modeling")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/event-driven-design/zenwave-domain-language/"},"ZDL Modeling Language")),"\r\n",N.createElement("div",null,N.createElement("a",{href:"/docs/zenwave-sdk"},"ZenWave SDK"))))))}var O=function(M){void 0===M&&(M={});const{wrapper:D}=Object.assign({},(0,j.ah)(),M.components);return D?N.createElement(D,M,N.createElement(e,M)):e(M)};function c(M){let{children:D}=M;return D}function t(M){return N.createElement(c,M,N.createElement(O,M))}},16376:function(M,D,I){I.d(D,{d2:function(){return N.d},zx:function(){return y},L0:function(){return w},$s:function(){return O},VS:function(){return c},gT:function(){return t},P7:function(){return E},Gz:function(){return i},S:function(){return W},VM:function(){return n},sd:function(){return Y},kW:function(){return a},$D:function(){return s},DH:function(){return U},vC:function(){return S},LR:function(){return x},Ee:function(){return m},Bk:function(){return B},Nm:function(){return Z},X_:function(){return C.X},YZ:function(){return p},vk:function(){return h},BW:function(){return b},Mo:function(){return v}});var N=I(63585),j=I(27378),g=I(87573),L=I(30294);const A=M=>{let{background:D,backgroundHover:I,on:N}=M;return()=>(0,L.ivY)(["background-color:",";color:",";&:hover:not(:disabled){background-color:",";color:",";}&:active:not(:disabled){background-color:",";color:",";}"],D,N,I,N,I,N)},u=L.ZPm.buttonBox.withConfig({displayName:"Button__InnerButton",componentId:"sc-1qxez5q-0"})(["appearance:none;border-radius:base;transition:base;font-weight:500;border:0;display:inline-flex;align-items:center;cursor:pointer;font-size:16;padding:2 3;text-decoration:none !important;&:disabled{opacity:0.5;cursor:default;}&[data-variant='primary']{","}&[data-variant='success']{","}&[data-variant='danger']{","}&[data-variant='neutral']{","}"],A({background:"primary-600",backgroundHover:"primary-700",on:"white"}),A({background:"green-600",backgroundHover:"green-700",on:"white"}),A({background:"red-600",backgroundHover:"red-700",on:"white"}),A({background:"gray-300",backgroundHover:"gray-400",on:"black"})),y=j.forwardRef(((M,D)=>{let{variant:I="primary",children:N,...L}=M;return j.createElement(g.z,{ref:D,"data-variant":I},(M=>j.createElement(u,Object.assign({},M,L),N)))}));I(23824),I(31729);var z=I(63681),C=I(84234);const T=L.ZPm.box.withConfig({displayName:"Feature__InnerFeature",componentId:"sc-17n9iec-0"})(["border-left:1;border-left-style:dashed;border-left-color:layout-border;padding-left:4 !important;padding-right:5 !important;"]),w=j.forwardRef(((M,D)=>j.createElement(T,Object.assign({ref:D,col:{xs:1,md:1/3},px:2,pt:4,pb:{xs:2,md:5}},M)))),i=L.ZPm.h2.withConfig({displayName:"Feature__FeatureTitle",componentId:"sc-17n9iec-1"})(["margin:3 0;font-size:16;font-weight:500;border-left:1;border-color:primary-400;margin-left:",";padding-left:",";"],z.th.px(-9),z.th.px(9)),E=L.ZPm.p.withConfig({displayName:"Feature__FeatureText",componentId:"sc-17n9iec-2"})(["color:on-background-light;font-size:15;text-align:justify;margin:4 0;"]),e=L.ZPm.img.withConfig({displayName:"Feature__InnerFeatureImage",componentId:"sc-17n9iec-3"})(["margin-top:3;"]),O=j.forwardRef(((M,D)=>j.createElement(e,Object.assign({ref:D,width:48,height:48},M)))),c=j.forwardRef(((M,D)=>j.createElement(C.X,Object.assign({ref:D,row:!0,my:-4,px:3},M)))),t=j.forwardRef(((M,D)=>j.createElement(L.x.section,Object.assign({ref:D,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},M)))),x=L.ZPm.h1Box.withConfig({displayName:"Hero__HeroTitle",componentId:"sc-18tbum5-0"})(["font-size:38;font-weight:600;line-height:1.2;letter-spacing:-1.12px;margin:0 0 2;"," ",""],(0,z.up)("md",(0,L.ivY)(["padding-top:4;font-size:48;"])),(0,z.up)("xl",(0,L.ivY)(["font-size:60;"]))),S=L.ZPm.pBox.withConfig({displayName:"Hero__HeroTeaser",componentId:"sc-18tbum5-1"})(["font-size:18;margin:3 0;"," ",""],(0,z.up)("md",(0,L.ivY)(["font-size:20;"])),(0,z.up)("xl",(0,L.ivY)(["font-size:24;"]))),Q=(0,L.ZPm)(C.X).withConfig({displayName:"Hero__InnerHero",componentId:"sc-18tbum5-2"})(["background-repeat:no-repeat;background-position:top -5% center;background-size:100% auto;padding-top:65%;text-align:center;"," ",""],(0,z.up)("md",(0,L.ivY)(["padding-top:0;margin-top:5;background-position:center right;background-size:58% auto;min-height:400;text-align:left;"])),(0,z.up)("xl",(0,L.ivY)(["margin-top:6;"]))),n=j.forwardRef(((M,D)=>{let{backgroundImageURL:I,...N}=M;return j.createElement(Q,Object.assign({ref:D,backgroundImage:"url("+I+")"},N))})),s=j.forwardRef(((M,D)=>j.createElement(L.x.div,Object.assign({ref:D,w:{md:.5}},M)))),U=L.ZPm.sectionBox.withConfig({displayName:"Hero__HeroSection",componentId:"sc-18tbum5-3"})(["overflow:hidden;padding-top:2;padding-bottom:5;"]),a=j.forwardRef(((M,D)=>j.createElement(L.x.div,Object.assign({ref:D,row:!0,m:-2,justifyContent:{xs:"center",md:"initial"}},M)))),Y=j.forwardRef(((M,D)=>j.createElement(L.x.div,Object.assign({ref:D,col:"auto",p:2},M))));var k=I(24956);const l=L.ZPm.div.withConfig({displayName:"Image__ImageContainer",componentId:"sc-1b0134e-0"})(["text-align:",";"],(M=>M.align)),o=L.ZPm.img.withConfig({displayName:"Image__InnerImage",componentId:"sc-1b0134e-1"})(["display:inline-block;"]),r=(M,D)=>"dark"===D?M.dark||M.src:M.light||M.src,m=j.forwardRef(((M,D)=>j.createElement(l,{align:M.align||"center",className:M.visible},j.createElement(o,Object.assign({ref:D,src:r(M,(0,k.If)()[0])},M)))));I(15239),I(83160);const d=(0,L.ZPm)(L.x.cite).withConfig({displayName:"Quote__Cite",componentId:"sc-12i53kz-0"})(["display:block;text-align:right;margin-top:1rem;"]),B=j.forwardRef(((M,D)=>j.createElement(L.x.blockquote,Object.assign({ref:D,className:"quote"},M)))),Z=j.forwardRef(((M,D)=>j.createElement(d,Object.assign({ref:D},M)))),b=j.forwardRef(((M,D)=>j.createElement(L.x.section,Object.assign({ref:D,py:4,borderTop:1,borderBottom:1,borderColor:"layout-border"},M)))),p=L.ZPm.divBox.withConfig({displayName:"WideFeature",componentId:"sc-1ak5yjf-0"})(["display:block;",")"],(0,z.up)("md",(0,L.ivY)(["margin:0 20px;border-top:1px dashed;border-bottom:1px dotted;border-color:var(--xstyled-colors-layout-border,#d4d4d8);display:grid;grid-template-columns:1fr 1fr 1fr;"]))),v=L.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureText",componentId:"sc-1ak5yjf-1"})(["padding:1rem;grid-column-start:span 2;font-size:18;"," ",""],(0,z.up)("md",(0,L.ivY)(["font-size:20;padding:3rem;padding-top:2rem;"])),(0,z.up)("xl",(0,L.ivY)(["font-size:24;"]))),G=L.ZPm.divBox.withConfig({displayName:"WideFeature__WideFeatureImageContainer",componentId:"sc-1ak5yjf-2"})(["padding:1rem;text-align:center;"]),f=L.ZPm.imgBox.withConfig({displayName:"WideFeature__InnerImage",componentId:"sc-1ak5yjf-3"})(["display:inline-block;"]),P=(M,D)=>"dark"===D?M.dark||M.src:M.light||M.src,h=j.forwardRef(((M,D)=>j.createElement(G,{className:M.className},j.createElement(f,Object.assign({ref:D,src:P(M,(0,k.If)()[0])},M))))),W=M=>{let{gist:D,file:I}=M;const N=(0,j.useRef)(null);(0,j.useEffect)((()=>{(async()=>{const M=I?"https://gist.githubusercontent.com/"+D+"/raw/"+I:"https://gist.githubusercontent.com/"+D+"/raw";try{const D=await fetch(M);if(D.ok){const M=22*(await D.text()).split("\n").length+40;N.current&&(N.current.style.height=M+"px")}else console.error("Failed to fetch Gist content")}catch(j){console.error("Error fetching Gist content:",j)}})()}),[D,I]);const g=I?"https://gist.github.com/"+D+".pibb?file="+I:"https://gist.github.com/"+D+".pibb",L=I?"https://gist.github.com/"+D+"#file-"+I.replace(/\./g,"-").toLowerCase():"https://gist.github.com/"+D;return j.createElement("div",{style:{border:"1px solid #ccc",padding:"10px 0 0 0",borderRadius:"5px"}},I&&j.createElement("header",{style:{marginLeft:"10px",fontStyle:"oblique"}},j.createElement("span",{role:"img","aria-label":"source code"},"🗒️"),j.createElement("a",{href:L,target:"_blank",rel:"noopener noreferrer"},I)),j.createElement("iframe",{title:I,ref:N,src:g,width:"100%",frameBorder:"0",style:{margin:"0",padding:"0"}}))}},28151:function(M,D,I){D.Z=I.p+"static/bounded-context-mapping-e7606a1679b367a38b685ca1bb77ef45.svg"},29934:function(M,D,I){D.Z=I.p+"static/EventStorming-ZDL-Mapping-cb9c987d5d0aff110c5890481034ae20.png"},53468:function(M,D,I){D.Z=I.p+"static/plugin-screenshot-a27ba0713f3d33cf5b761c45e4c3debc.png"}}]); +//# sourceMappingURL=component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js.map b/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js.map new file mode 100644 index 0000000..d2b4717 --- /dev/null +++ b/component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-index-mdx-a231c209af8630f61edd.js","mappings":"qMAAA,EAAe,IAA0B,8DCAzC,EAAe,IAA0B,+DCAzC,EAAe,IAA0B,4DCAzC,2sJCAA,EAAe,IAA0B,2D,iCCAzC,EAAe,IAA0B,oEC0BzC,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,EAAG,IACHC,GAAI,KACJC,GAAI,OACHC,EAAAA,EAAAA,MAAsBP,EAAMQ,YAC/B,OAAOC,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoBE,EAAAA,GAAa,KAAMF,EAAAA,cAAoBG,EAAAA,GAAM,CACjHC,mBAAoBC,GACnBL,EAAAA,cAAoBM,EAAAA,GAAU,KAAMN,EAAAA,cAAoBO,EAAAA,GAAW,KAAM,kBAAmBP,EAAAA,cAAoB,MAAO,wBAAyB,OAAQA,EAAAA,cAAoBQ,EAAAA,GAAY,KAAM,yEAA0ER,EAAAA,cAAoBS,EAAAA,GAAgB,KAAMT,EAAAA,cAAoBU,EAAAA,GAAY,KAAMV,EAAAA,cAAoBW,EAAAA,GAAQ,CACrXC,QAAS,UACTC,GAAIC,EAAAA,KACJC,GAAI,oBACJC,MAAO,CACLC,YAAa,QAEdjB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,gBAAiBK,EAAAA,cAAoBW,EAAAA,GAAQ,CACvFE,GAAIC,EAAAA,KACJC,GAAI,0BACHf,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,yBAA0BK,EAAAA,cAAoBkB,EAAAA,GAAgB,KAAMlB,EAAAA,cAAoBmB,EAAAA,GAAa,KAAMnB,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAC1NC,IC7CJ,2qHD8CMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,yBAA0BvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,gFAAiFK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAC1SL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IAAKI,IACH1B,EAAAA,cAAoBqB,EAAAA,GAAc,CACpCL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IE3DJ,+rDF4DMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,eAAgBvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,kFAAmFK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAClSC,IG7DJ,+tIH8DMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,wBAAyBvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,gHAAiHK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CACzUC,II/DJ,2gPJgEMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,8BAA+BvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,mGAAoGK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CAClUL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IKtEJ,25HLuEMtB,EAAAA,cAAoBqB,EAAAA,GAAc,CACpCL,MAAO,CACLS,QAAS,SACT,eAAgB,SACblC,EAAMyB,OAEXM,IM7EJ,u3YN8EMtB,EAAAA,cAAoBqB,EAAAA,GAAc,CACpCL,MAAO,CACLS,QAAS,YACNlC,EAAMyB,OAEXM,IAAKK,IACH3B,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,aAAcvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,0DAA2DK,EAAAA,cAAoBoB,EAAAA,GAAS,KAAMpB,EAAAA,cAAoBqB,EAAAA,GAAc,CACxQC,IOrFJ,u7RPsFMtB,EAAAA,cAAoBuB,EAAAA,GAAc,KAAM,eAAgBvB,EAAAA,cAAoBwB,EAAAA,GAAa,KAAMxB,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,wGAAyGK,EAAAA,cAAoB4B,EAAAA,GAAoB,KAAM5B,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoB6B,EAAAA,GAAa,KAAM7B,EAAAA,cAAoB8B,EAAAA,GAAkB,CACzZR,IAAKS,EACLC,IAAK,uDACLC,UAAW,eACTjC,EAAAA,cAAoBkC,EAAAA,GAAiB,CACvCD,UAAW,qBACVjC,EAAAA,cAAoB,KAAM,KAAM,yBAA0BA,EAAAA,cAAoBR,EAAYI,GAAI,KAAM,KAAMI,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,SAAUG,EAAAA,cAAoB,SAAU,KAAM,wBAAyB,oBAAqBA,EAAAA,cAAoB,SAAU,KAAM,sCAAuC,KAAMA,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,0BAA2BG,EAAAA,cAAoB,SAAU,KAAM,wCAAyC,OAAQA,EAAAA,cAAoB8B,EAAAA,GAAkB,CAClgBR,IAAKS,EACLC,IAAK,uDACLC,UAAW,eACRjC,EAAAA,cAAoB6B,EAAAA,GAAa,KAAM7B,EAAAA,cAAoB8B,EAAAA,GAAkB,CAChFR,IQjGJ,6xIRkGIU,IAAK,qDACHhC,EAAAA,cAAoBkC,EAAAA,GAAiB,CACvCD,UAAW,qBACVjC,EAAAA,cAAoB,KAAM,KAAM,yBAA0BA,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,6CAA8CK,EAAAA,cAAoBR,EAAYI,GAAI,KAAM,KAAMI,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,KAAMG,EAAAA,cAAoB,SAAU,KAAM,kBAAmB,MAAO,KAAMA,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,KAAMG,EAAAA,cAAoB,SAAU,KAAM,qBAAsB,MAAO,KAAMA,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,WAAYG,EAAAA,cAAoB,SAAU,KAAM,qBAAsB,QAASA,EAAAA,cAAoB6B,EAAAA,GAAa,KAAM7B,EAAAA,cAAoB8B,EAAAA,GAAkB,CACnnBR,IAAKa,EACLH,IAAK,GACLI,MAAO,QACPH,UAAW,eACTjC,EAAAA,cAAoBkC,EAAAA,GAAiB,CACvCD,UAAW,qBACVjC,EAAAA,cAAoB,KAAM,KAAM,eAAgBA,EAAAA,cAAoBR,EAAYG,EAAG,KAAM,+BAAgCK,EAAAA,cAAoB,SAAU,KAAM,0BAA2B,SAAUA,EAAAA,cAAoB,SAAU,KAAM,wBAAyBA,EAAAA,cAAoBR,EAAYI,GAAI,KAAM,KAAMI,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,yCAA0C,KAAMG,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,qCAAsC,KAAMG,EAAAA,cAAoBR,EAAYK,GAAI,KAAM,mDAAoD,OAAQG,EAAAA,cAAoB8B,EAAAA,GAAkB,CAC5mBR,IAAKa,EACLH,IAAK,GACLI,MAAO,QACPH,UAAW,iBACNjC,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoB,UAAW,KAAMA,EAAAA,cAAoB,MAAO,CAChHiC,UAAW,cACVjC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC3DqC,KAAM,mDACL,oBAAqB,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CACxFqC,KAAM,sDACL,0BAA2B,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC9FqC,KAAM,qBACL,mBAAoBrC,EAAAA,cAAoBC,EAAAA,GAAiB,CAC1DgC,UAAW,oBACVjC,EAAAA,cAAoB,KAAM,KAAM,6DAA8DA,EAAAA,cAAoBsC,EAAAA,GAAO,CAC1HhB,IAAKiB,EAAAA,EACLP,IAAK,mBACHhC,EAAAA,cAAoB,KAAM,KAAM,mCAAoCA,EAAAA,cAAoBsC,EAAAA,GAAO,CACjGhB,IAAKkB,EAAAA,EACLR,IAAK,mCACLI,MAAO,SACLpC,EAAAA,cAAoB,KAAM,KAAM,gCAAiCA,EAAAA,cAAoBsC,EAAAA,GAAO,CAC9FhB,IAAKmB,EAAAA,IACHzC,EAAAA,cAAoB,KAAM,KAAM,sDAAuDA,EAAAA,cAAoBsC,EAAAA,GAAO,CACpHhB,IAAKoB,KACF1C,EAAAA,cAAoBC,EAAAA,GAAiB,KAAMD,EAAAA,cAAoB,UAAW,KAAMA,EAAAA,cAAoB,MAAO,CAC9GiC,UAAW,cACVjC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC3DqC,KAAM,mDACL,oBAAqB,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CACxFqC,KAAM,sDACL,0BAA2B,OAAQrC,EAAAA,cAAoB,MAAO,KAAMA,EAAAA,cAAoB,IAAK,CAC9FqC,KAAM,qBACL,mBACJ,CAKD,MAJA,SAAoB9C,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAOoD,QAASC,GAAanD,OAAOC,OAAO,CAAC,GAAGI,EAAAA,EAAAA,MAAsBP,EAAMQ,YAC3E,OAAO6C,EAAY5C,EAAAA,cAAoB4C,EAAWrD,EAAOS,EAAAA,cAAoBV,EAAmBC,IAAUD,EAAkBC,EAC7H,EStID,SAASsD,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiBzD,GACvC,OAAOS,EAAAA,cAAoB6C,EAActD,EAAOS,EAAAA,cAAoBiD,EAAqB1D,GAC1F,C,opBCfD,MAAMqB,EACJmC,IAAAA,IAAC,WAAEG,EAAF,gBAAcC,EAAd,GAA+BC,GAAhCL,EAAAA,MACA,KACSM,EAAAA,EAAAA,KAAP,mJACsBH,EACXE,EAGaD,EACXC,EAIWD,EACXC,EAbf,EAkBIE,EAAcC,EAAAA,IAAAA,UAAAA,WAAH,+DAAGA,CAAH,8VAmBX3C,EAAQ,CACRsC,WAAY,cACZC,gBAAiB,cACjBC,GAAI,UAKJxC,EAAQ,CACRsC,WAAY,YACZC,gBAAiB,YACjBC,GAAI,UAKJxC,EAAQ,CACRsC,WAAY,UACZC,gBAAiB,UACjBC,GAAI,UAKJxC,EAAQ,CACRsC,WAAY,WACZC,gBAAiB,WACjBC,GAAI,WAKGzC,EAASX,EAAAA,YACpB,CAAC,EAA6CwD,KAAS,IAAtD,QAAE5C,EAAU,UAAZ,SAAuBkC,KAAavD,GAAiBkE,EACpD,OACEzD,EAAAA,cAAC0D,EAAAA,EAAD,CAAeF,IAAKA,EAAK,eAAc5C,IACnC+C,GACA3D,EAAAA,cAACsD,EAAD,iBAAiBK,EAAiBpE,GAC/BuD,IAJT,I,4CCtEJ,MAAMc,EAAeL,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,kIAQLnC,EAAUpB,EAAAA,YAAiB,CAACT,EAAOiE,IAC9CxD,EAAAA,cAAC4D,EAAD,eACEJ,IAAKA,EACLK,IAAK,CAAEC,GAAI,EAAGC,GAAI,EAAI,GACtBC,GAAI,EACJC,GAAI,EACJC,GAAI,CAAEJ,GAAI,EAAGC,GAAI,IACbxE,MAIKgC,EAAegC,EAAAA,IAAAA,GAAAA,WAAH,iEAAGA,CAAH,qHAMRY,EAAAA,GAAAA,IAAO,GACNA,EAAAA,GAAAA,GAAM,IAGX3C,EAAc+B,EAAAA,IAAAA,EAAAA,WAAH,gEAAGA,CAAH,2EAOlBa,EAAoBb,EAAAA,IAAAA,IAAAA,WAAH,sEAAGA,CAAH,mBAIVlC,EAAerB,EAAAA,YAAiB,CAACT,EAAOiE,IACnDxD,EAAAA,cAACoE,EAAD,eAAmBZ,IAAKA,EAAKpB,MAAO,GAAIiC,OAAQ,IAAQ9E,MAG7C4B,EAAcnB,EAAAA,YAAiB,CAACT,EAAOiE,IAClDxD,EAAAA,cAACC,EAAAA,EAAD,eAAiBuD,IAAKA,EAAKc,KAAG,EAACC,IAAK,EAAGP,GAAI,GAAOzE,MAGvC2B,EAAiBlB,EAAAA,YAAiB,CAACT,EAAOiE,IACrDxD,EAAAA,cAACwE,EAAAA,EAAAA,QAAD,eACEhB,IAAKA,EACLiB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRrF,MCzDKgB,EAAYgD,EAAAA,IAAAA,MAAAA,WAAH,2DAAGA,CAAH,8FAOlBsB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,kCAQFwB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAQO7C,EAAa+C,EAAAA,IAAAA,KAAAA,WAAH,4DAAGA,CAAH,qCAInBsB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAOFwB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAQAyB,GAAYvB,EAAAA,EAAAA,KAAOtD,EAAAA,GAAV8E,WAAA,2DAAGxB,CAAH,wIAOXsB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,2HAYFwB,EAAAA,EAAAA,IACA,MACAxB,EAAAA,EAAAA,KAFG,CAAD,oBAQOlD,EAAOH,EAAAA,YAClB,CAAC,EAAkCwD,KAAS,IAA3C,mBAAEpD,KAAuBb,GAAiBwD,EACzC,OACE/C,EAAAA,cAAC8E,EAAD,eACEtB,IAAKA,EACLwB,gBAAe,OAAS5E,EAAT,KACXb,GAJR,IAUSe,EAAWN,EAAAA,YAAiB,CAACT,EAAOiE,IACxCxD,EAAAA,cAACwE,EAAAA,EAAAA,IAAD,eAAOhB,IAAKA,EAAKyB,EAAG,CAAElB,GAAI,KAAWxE,MAGjCW,EAAcqD,EAAAA,IAAAA,WAAAA,WAAH,6DAAGA,CAAH,qDAMX9C,EAAiBT,EAAAA,YAAiB,CAACT,EAAOiE,IAEnDxD,EAAAA,cAACwE,EAAAA,EAAAA,IAAD,eACEhB,IAAKA,EACLc,KAAG,EACHY,GAAI,EACJC,eAAgB,CAAErB,GAAI,SAAUC,GAAI,YAChCxE,MAKGmB,EAAaV,EAAAA,YAAiB,CAACT,EAAOiE,IAC1CxD,EAAAA,cAACwE,EAAAA,EAAAA,IAAD,eAAOhB,IAAKA,EAAKK,IAAI,OAAOlE,EAAG,GAAOJ,M,eCvG/C,MAAM6F,EAAiB7B,EAAAA,IAAAA,IAAAA,WAAH,iEAAGA,CAAH,qBACHhE,GAASA,EAAM8F,QAE1BC,EAAa/B,EAAAA,IAAAA,IAAAA,WAAH,6DAAGA,CAAH,2BAGVjC,EAAM,CAAC/B,EAAOgG,IACK,SAAdA,EAAsBhG,EAAMiG,MAAQjG,EAAM+B,IAAM/B,EAAMkG,OAASlG,EAAM+B,IAEnEgB,EAAQtC,EAAAA,YAAiB,CAACT,EAAOiE,IAC1CxD,EAAAA,cAACoF,EAAD,CAAgBC,MAAO9F,EAAM8F,OAAS,SAAUpD,UAAW1C,EAAMmG,SAC7D1F,EAAAA,cAACsF,EAAD,eAAY9B,IAAKA,EAAKlC,IAAKA,EAAI/B,GAAOoG,EAAAA,EAAAA,MAAe,KAASpG,O,kBCZtE,MAAMqG,GAAOrC,EAAAA,EAAAA,KAAOiB,EAAAA,EAAAA,MAAVO,WAAA,uDAAGxB,CAAH,qDAMGsC,EAAQ7F,EAAAA,YAAiB,CAACT,EAAOiE,IACnCxD,EAAAA,cAACwE,EAAAA,EAAAA,WAAD,eAAchB,IAAKA,EAAKvB,UAAU,SAAY1C,MAG5CuG,EAAc9F,EAAAA,YAAiB,CAACT,EAAOiE,IACzCxD,EAAAA,cAAC4F,EAAD,eAAMpC,IAAKA,GAASjE,MCZlBqC,EAAqB5B,EAAAA,YAAiB,CAACT,EAAOiE,IACvDxD,EAAAA,cAACwE,EAAAA,EAAAA,QAAD,eACIhB,IAAKA,EACLiB,GAAI,EACJC,UAAW,EACXC,aAAc,EACdC,YAAY,iBACRrF,MAICsC,EAAc0B,EAAAA,IAAAA,OAAAA,WAAH,uDAAGA,CAAH,wBAEpBsB,EAAAA,EAAAA,IACE,MACAxB,EAAAA,EAAAA,KAFC,CAAD,4KAaOnB,EAAkBqB,EAAAA,IAAAA,OAAAA,WAAH,wEAAGA,CAAH,gEAKxBsB,EAAAA,EAAAA,IACE,MACAxB,EAAAA,EAAAA,KAFC,CAAD,kDASFwB,EAAAA,EAAAA,IACE,MACAxB,EAAAA,EAAAA,KAFC,CAAD,oBAOA0C,EAA4BxC,EAAAA,IAAAA,OAAAA,WAAH,kFAAGA,CAAH,qCAKzB+B,EAAa/B,EAAAA,IAAAA,OAAAA,WAAH,mEAAGA,CAAH,2BAKVjC,EAAM,CAAC/B,EAAOgG,IACG,SAAdA,EAAsBhG,EAAMiG,MAAQjG,EAAM+B,IAAM/B,EAAMkG,OAASlG,EAAM+B,IAEjEQ,EAAmB9B,EAAAA,YAAiB,CAACT,EAAOiE,IACrDxD,EAAAA,cAAC+F,EAAD,CAA2B9D,UAAW1C,EAAM0C,WAC1CjC,EAAAA,cAACsF,EAAD,eAAY9B,IAAKA,EAAKlC,IAAKA,EAAI/B,GAAOoG,EAAAA,EAAAA,MAAe,KAASpG,OC9D9DyG,EAAOjD,IAAqB,IAApB,KAAEkD,EAAF,KAAQC,GAAWnD,EAC/B,MAAMoD,GAAYC,EAAAA,EAAAA,QAAO,OAwBzBC,EAAAA,EAAAA,YAAU,KAtBeC,WACvB,MAAMC,EAAML,EAAI,sCAC0BD,EAD1B,QACsCC,EADtC,sCAE0BD,EAF1B,OAGhB,IACE,MAAMO,QAAiBC,MAAMF,GAC7B,GAAIC,EAASE,GAAI,CACf,MAGMrC,EADa,UAFAmC,EAASG,QACLC,MAAM,MAAMC,OAEK,GACpCV,EAAUW,UACZX,EAAUW,QAAQ9F,MAAMqD,OAAYA,EAApC,KANJ,MASE0C,QAAQC,MAAM,+BAIjB,CAFC,MAAOA,GACPD,QAAQC,MAAM,+BAAgCA,EAC/C,GAIDC,EAAkB,GACjB,CAAChB,EAAMC,IAEV,MAAM5E,EAAM4E,EAAI,2BACeD,EADf,cACiCC,EADjC,2BAEeD,EAFf,QAIViB,EAAUhB,EAAI,2BACWD,EADX,SACwBC,EAAKiB,QAAQ,MAAO,KAAKC,cADjD,2BAEWnB,EAE/B,OACEjG,EAAAA,cAAAA,MAAAA,CAAKgB,MAAO,CAAEqG,OAAQ,iBAAkBC,QAAS,aAAcC,aAAc,QAC1ErB,GACClG,EAAAA,cAAAA,SAAAA,CAAQgB,MAAO,CAAEwG,WAAY,OAAQC,UAAW,YAC9CzH,EAAAA,cAAAA,OAAAA,CAAM0H,KAAK,MAAM,aAAW,eAA5B,OACA1H,EAAAA,cAAAA,IAAAA,CAAGqC,KAAM6E,EAASS,OAAO,SAASC,IAAI,uBACnC1B,IAIPlG,EAAAA,cAAAA,SAAAA,CACE6H,MAAO3B,EACP1C,IAAK2C,EACL7E,IAAKA,EACLc,MAAM,OACN0F,YAAY,IACZ9G,MAAO,CAAE+G,OAAQ,IAAKT,QAAS,OAhBrC,C,wBCxCF,IAAe,IAA0B,qE,wBCAzC,IAAe,IAA0B,uE,wBCAzC,IAAe,IAA0B,+D","sources":["webpack://website/./images/hero-background.png","webpack://website/./static/logos/zenwave-sdk-dark.png","webpack://website/./static/logos/asyncapi-logo.png","webpack://website/./images/home/spiral.svg","webpack://website/./images/home/laptop-gears.svg","webpack://website/./pages/plugin-run-screenshot.png","webpack://website/./pages/index.mdx","webpack://website/./static/logos/conceptual-model.svg","webpack://website/./static/logos/spring-boot.svg","webpack://website/./static/logos/ddd.svg","webpack://website/./images/event-driven-architectures-logo.svg","webpack://website/./static/logos/osi.svg","webpack://website/./static/logos/openapi-logo.svg","webpack://website/./static/logos/tdd.svg","webpack://website/./images/home/common-language.svg","webpack://website/../smooth-doc/src/templates/page.js","webpack://website/../smooth-doc/src/components/Button.js","webpack://website/../smooth-doc/src/components/Feature.js","webpack://website/../smooth-doc/src/components/Hero.js","webpack://website/../smooth-doc/src/components/Image.js","webpack://website/../smooth-doc/src/components/Quote.js","webpack://website/../smooth-doc/src/components/WideFeature.js","webpack://website/../smooth-doc/src/components/Gist.js","webpack://website/./images/home/bounded-context-mapping.svg","webpack://website/./pages/docs/DDD/images/EventStorming-ZDL-Mapping.png","webpack://website/./pages/plugin-screenshot.png"],"sourcesContent":["export default __webpack_public_path__ + \"static/hero-background-b6fccd4ea5501ab264bb1bdb7fbbf8ba.png\";","export default __webpack_public_path__ + \"static/zenwave-sdk-dark-44c70567cf17d96a54e9284837feac82.png\";","export default __webpack_public_path__ + \"static/asyncapi-logo-fe1db05dd2b15b8170701f43d18710a1.png\";","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgMjYwIDI2MCINCiAgIHdpZHRoPSIyNjAiDQogICBoZWlnaHQ9IjI2MCINCiAgIGlkPSJzdmc1MjkzNiINCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KICA8ZGVmcw0KICAgICBpZD0iZGVmczUyOTQwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDE0NC4wNjM1MiwyMzEuMzg5MTYgYyAxOS40NDg4NSwtNC40MzA0NyAzOC4wNzMzMiwtMTMuNjAzNjcgNTMuNjc0MjcsLTI2LjIyMDczIDE3LjA2OTI1LC0xMy43NTM0NCAzMC4yNzQ0NSwtMzEuNDIxMTUgMzguNDI0OTgsLTUwLjYyMDE2IDguMTg1MiwtMTkuMjE5MzQgMTEuMjMxMTgsLTM5Ljg0MTQ1IDguNzA2MzIsLTU5LjM1NjUyMiAtMi40NzIyOCwtMTkuNTkzNjIzIC0xMC43MjkxMSwtMzcuNjk5ODY2IC0yMy4zMzQ4OSwtNTIuNTg1ODY5IC0zLjAwMDc3LDIuMzI4NjgzIC01Ljk5MjU4LDQuNjUwNDI2IC04Ljk4NTY2LDYuOTc5NDg3IDExLjE5NzY0LDEzLjI2NTI1OSAxOC42ODkzNywyOS4yODEyNSAyMS4xMDgyNSw0Ni42ODc2MzMgMi42MDUyNSwxOC4xMzkwMjEgLTAuMTI2NzcsMzcuMzg5NDMxIC03Ljc0NDg5LDU1LjMwODkwMSAtOC4wNjg2NiwxOS4wNDA3MyAtMjEuNjA2NjUsMzYuNDE4NjIgLTM5LjE1NTYyLDQ5LjMyODcyIC0xMy4zOTkxNCw5Ljg5Mzg5IC0yOC45NDQwMSwxNy4wNTIzNyAtNDUuMDc4NzUsMjAuNjAxNyAtMjAuMTM0OTksNC40Njk3MSAtNDAuOTcwMzMsMy4zODM3NCAtNTkuMjI1NjA4LC0zLjAzMzcyIEMgNjUuMzE2OTk1LDIxMi40OTM5MiA1MC42MjA0MzYsMjAxLjgyMDExIDQwLjgzNjM4NywxODcuNjAwMTUgMzMuNDU1NzUyLDE3Ni45MzMwOSAyOC45Mjk3MTksMTY0LjQyNDQyIDI3LjgyODQ3OCwxNTEuMjU0MjQgMjYuMzAzMzQyLDEzMy43ODIxNiAzMC42OTI3NDUsMTE1LjMzODQ5IDQwLjI4MDM2Miw5OS4wOTAxNSA0Ny44MTYzMzksODYuMjgxMDc2IDU4LjU2NTg2NCw3NC45NDc0NTggNzEuNTI5MjI4LDY2LjU4ODg3NiA4My43NzMyNjIsNTguNjQ0MjY2IDk3LjgzMTc0Miw1My40OTk1NzUgMTEyLjA0OTkyLDUxLjgzMTYzOSBjIDI0LjkxNzMxLC0yLjk4OTA0IDQ5LjcxODEzLDQuNTU1MDc2IDY1LjQ0MjU2LDIxLjA1OTM5NCA4Ljk2ODI0LDkuMzgxNjggMTQuNzIxNjgsMjEuNDI4MTM2IDE2LjE0MjI1LDM0LjQ2Njc5NyAxLjY0NjY3LDE0LjU4NTE0IC0yLjAyLDMwLjE0MjYxIC0xMC4zODI1Myw0My42MjYgLTYuNDE1MjIsMTAuMzc4MzYgLTE1LjU4NjgzLDE5LjM5MjgyIC0yNi41NTQ0OSwyNS42ODIxIC0xOS45MzQ2MSwxMS42NjA4MiAtNDQuOTc3MDIsMTIuODc5NjcgLTYzLjYzOTE2OSwzLjEwNTg1IC05LjQwOTAyNiwtNC44NjUwMiAtMTYuOTIzMjA3LC0xMi40MzkxMiAtMjEuMTM2MDY5LC0yMS43NzMyNyAtNC4yNDk5MjEsLTkuMjU0NzkgLTQuOTg3NDc3LC0yMC4wODkyNiAtMi4xNjkwMTQsLTMwLjQ4NjM3IDIuOTI4NTA0LC0xMC45MDA4MiA5LjY5MTA2MiwtMjEuMjEwMDUgMTkuNDMyODY3LC0yOC40NTQwNDMgOS4wNTM2MywtNi43ODQyMDIgMjAuMzg3MjA1LC0xMC41MjM2MTkgMzEuMzM2ODA1LC0xMC4wMzEzMjggMTIuODY3OTYsMC41MDc2NzYgMjQuNjYzODYsNi42MTQ2ODIgMzAuMDkyNDMsMTcuMjM1MTMxIDUuMjE0MywxMC4wMDQ1MiAzLjU0MjE0LDIzLjIyNjkxIC00LjkwNjA1LDMyLjc1NzU0IC01LjE0ODk1LDUuODI5NDcgLTEyLjg3MzI3LDkuNzg3NTMgLTIwLjYyMDI2LDkuNzQ0MzIgLTYuMzQzMTgsMC4wMTI3IC0xMi42MTkwNiwtMi41OTExNCAtMTUuNTMxMjQsLTcuNzI2ODQgLTIuNTMwMDUsLTQuMTc5MTUgLTEuODM0NjMsLTEwLjM1ODM0IDIuMzEwNDgsLTE0LjE2NDQ3IDEuODc0MTUsLTEuNTQ0MDggMy4zNTg3NiwtMS41OTQ3OCA1LjQwNjg2LC0wLjgzNDgxIDAuNDUzMTEsLTEuNDA4OTUgMC44ODY2MiwtMS45Nzc1NSAxLjMxNjE1LC0xLjcwNTAxIDEuODQzNTcsMi42NzU5NiAzLjE5Nyw1LjY1OTI4IDQuOTM1MSw4LjQwMzcxIDIuMTI4NDcsLTEuNzk2OTQgNC4xNDM4MSwtMy4yMDg0MiA0LjgyNzMzLC01LjkxMjA4IDEuMjIxMjMsLTQuODMxNjMgLTIuMjUwMzIsLTguNjY3MDYgLTYuMzUzNDEsLTEwLjYwMDYxIC01Ljk3Mzg3LC0yLjg2MTc0IC0xNC4wNzAwNCwtMC4xNDc1NiAtMTguNzQ5MTIsNC44NTY4NiAtNy4xMjgxODYsNy41MzA1NyAtOC4xNzM0MzUsMTguMzc4NjQgLTMuMzM1NDA3LDI2LjEyMDU2IDYuMTYwODY3LDEwLjIyMTkzIDIwLjE4NjI3NywxNC4wMzUyIDMyLjkxNTU4NywxMC44NTMxNCA4Ljg4Mzk3LC0yLjIwOTU3IDE2Ljk4OTIzLC03LjU2NTQ2IDIyLjYwMTAzLC0xNC42MzM2NCA2LjI1ODYzLC03LjgzMjcxIDkuNDY4OTUsLTE3LjQyMDM0IDkuMjc5MDQsLTI2LjYyNTc2IC0wLjE3MTMsLTEwLjI2NzIgLTQuNzM5ODMsLTE5LjgwMzc0OCAtMTIuMjUzMDIsLTI2LjU2NTk1NSBDIDEzOC41NDg0Miw3Ny42NjA5NzEgMTE1Ljk1OTA1LDc1LjE5NTEyOSA5Ni43MTIwNCw4My4zMTExMiA4Ni4zNjc4MDUsODcuNjA5NTk1IDc3LjE5MTQ1MSw5NC42NTMzMDEgNzAuNDQyMjQ2LDEwMy4yOTUyNyBjIC05LjA1NzM5MywxMS41Mjk1MSAtMTMuNzcxODgxLDI1LjU1MDgxIC0xMy40NjkwMzYsMzkuMDQ5OCAwLjMzNzcxNiwyMC4yOTA1NiAxMi40NzY0MDgsMzguMTE5OTQgMzAuODUwMDgyLDQ3LjExOTA2IDE0LjExNjk2OCw3LjA1MDQ1IDMxLjM0NjYwOCw5LjAzMjQyIDQ4LjA0MDc3OCw1LjY4MDk3IDEzLjg0ODQxLC0yLjc0MTkzIDI3LjEyMzMxLC05LjE4ODA4IDM4LjA5ODIxLC0xOC4yNDQ1OSAxOS4xOTI4MSwtMTUuNzk0MjMgMzAuNDI2NjMsLTM4LjgwMTE3IDMxLjEzMzA2LC02MS4zNDkxOCAwLjUwNTgsLTE0LjQzMjQ5IC0zLjM4NDIsLTI4LjQxNDY5NCAtMTEuMDg2NzUsLTQwLjExNjQ3NSBDIDE4NS45MDE3LDYyLjk5NjgzNCAxNzMuNjk2ODgsNTMuMzYzNjE5IDE1OS4zMDc4OSw0Ny41MzE5OCAxNDMuMTE0NTksNDAuOTMwNTA2IDEyNC4zMjk5NSwzOS4xMzU5NTcgMTA1LjkzOTAxLDQyLjQwOTMyNCA5MC4xOTA0MTYsNDUuMTY2Mjc1IDc0Ljg2OTg4Myw1MS43MDEzMzkgNjEuNjk1NjQ4LDYxLjEwNDY4NiA0Ni41Mjc4MzcsNzEuODgzNzA1IDM0LjQ1OTE3NSw4Ni4zMDIyNzIgMjYuNjgxNjUzLDEwMi4yODc0OCBjIC04LjYyNjgzMSwxNy42NTQ2NyAtMTEuOTYzMjE2LDM3LjA1OTE3IC05LjQ0Nzk2OSw1NS4yNjc0MyAyLjIyMjQ5OCwxNi40NTkxOSA5LjI5NzAzMywzMS43Njc4NCAyMC4xNTI2OCw0NC4xMTU0OCAxMi4wNjE2NzUsMTMuNzgxMDggMjguNjI2NjY5LDIzLjY3MDc0IDQ3LjI5MTcyMSwyOC43OTUxNCAxOC43MDM5MjUsNS4xNzA2NSAzOS4zODM4MzUsNS41MjU1NSA1OS4zODU0MzUsMC45MjM2MyB6Ig0KICAgICBmaWxsPSIjMDAwMDAwIg0KICAgICBpZD0icGF0aDUyOTM0Ig0KICAgICBzdHlsZT0iZmlsbDojYmFiOWJiO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjc1NTkiIC8+DQo8L3N2Zz4NCg==\"","export default __webpack_public_path__ + \"static/laptop-gears-54f3eaa232e7503cd5a1cb0cea35d352.svg\";","export default __webpack_public_path__ + \"static/plugin-run-screenshot-0aea571608647046fa2f9cc31ce61bf0.png\";","/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\n/**/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nimport {Link} from 'gatsby';\nimport {ScreenContainer, Button, HeroSection, Hero, HeroBody, HeroTitle, HeroTeaser, HeroActionList, HeroAction, FeatureSection, FeatureList, Feature, FeatureImage, FeatureTitle, FeatureText, Image, WideFeatureSection, WideFeature, WideFeatureText, WideFeatureImage} from \"smooth-doc/components\";\nimport heroBackgroundImageURL from \"../images/hero-background.png\";\nimport markdownImageURL from '../images/markdown.png';\nimport zdlImageURL from '../static/logos/conceptual-model.svg';\nimport sdkImageURL from '../static/logos/zenwave-sdk-dark.png';\nimport springBootImageURL from '../static/logos/spring-boot.svg';\nimport springImageURL from '../static/logos/spring.svg';\nimport dddImageURL from '../static/logos/ddd.svg';\nimport edaImageURL from '../images/event-driven-architectures-logo.svg';\nimport osiImageURL from '../static/logos/osi.svg';\nimport openApiImageURL from '../static/logos/openapi-logo.svg';\nimport asyncApiImageURL from '../static/logos/asyncapi-logo.png';\nimport tddImageURL from '../static/logos/tdd.svg';\nimport dddLogosImage from \"../images/home/spiral.svg\";\nimport sharedUnderstandingImage from \"../images/home/common-language.svg\";\nimport gearsDarkImage from \"../images/home/laptop-gears.svg\";\nimport eventStormingZDL from '../pages/docs/DDD/images/EventStorming-ZDL-Mapping.png';\nimport boundedContextMapping from '../images/home/bounded-context-mapping.svg';\nimport pluginScreenshot from './plugin-screenshot.png';\nimport pluginRunScreenshot from './plugin-run-screenshot.png';\nimport {marginRight} from '@xstyled/styled-components';\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n p: \"p\",\n ul: \"ul\",\n li: \"li\"\n }, _provideComponents(), props.components);\n return React.createElement(ScreenContainer, null, React.createElement(HeroSection, null, React.createElement(Hero, {\n backgroundImageURL: heroBackgroundImageURL\n }, React.createElement(HeroBody, null, React.createElement(HeroTitle, null, \"Create Software\", React.createElement(\"br\"), \" Easy To Understand!\"), \"\\r\\n\", React.createElement(HeroTeaser, null, \"DDD and API-First Modeling Tools for Modern Distributed Applications.\"), React.createElement(HeroActionList, null, React.createElement(HeroAction, null, React.createElement(Button, {\n variant: \"neutral\",\n as: Link,\n to: \"/docs/zenwave360/\",\n style: {\n marginRight: '6px'\n }\n }, React.createElement(_components.p, null, \"Browse Docs\")), React.createElement(Button, {\n as: Link,\n to: \"/docs/getting-started/\"\n }, React.createElement(_components.p, null, \"Getting Started\"))))))), React.createElement(FeatureSection, null, React.createElement(FeatureList, null, React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: zdlImageURL\n }), React.createElement(FeatureTitle, null, \"Domain Model Language\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Concise and complete DDD modeling language for Event-Driven Architectures.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: sdkImageURL\n }), React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: springBootImageURL\n }), React.createElement(FeatureTitle, null, \"ZenWave SDK\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"ZenWave SDK helps you create SpringBoot/SpringCloud applications in no time.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: dddImageURL\n }), React.createElement(FeatureTitle, null, \"Domain Driven Design\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Business, Developer and Computer friendly Ubiquitous Language for your Domain Models and Bounded Contexts.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: edaImageURL\n }), React.createElement(FeatureTitle, null, \"Event-Driven Architectures\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Designed for Event-Driven Architectures, mapping Event-Storming discoveries into your models.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: osiImageURL\n }), React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n 'margin-right': '5px',\n ...props.style\n },\n src: openApiImageURL\n }), React.createElement(FeatureImage, {\n style: {\n display: 'inline',\n ...props.style\n },\n src: asyncApiImageURL\n }), React.createElement(FeatureTitle, null, \"API-First\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Leveraging open standards like OpenAPI and AsyncAPI.\"))), React.createElement(Feature, null, React.createElement(FeatureImage, {\n src: tddImageURL\n }), React.createElement(FeatureTitle, null, \"API-Testing\"), React.createElement(FeatureText, null, React.createElement(_components.p, null, \"Testing as first class citizen. Helps you create complete test suites from your Models and APIs.\"))))), React.createElement(WideFeatureSection, null, React.createElement(ScreenContainer, null, React.createElement(WideFeature, null, React.createElement(WideFeatureImage, {\n src: dddLogosImage,\n alt: \"Domain Driven Design is about Business Understanding\",\n className: \"only-small\"\n }), React.createElement(WideFeatureText, {\n className: \"wide-feature-text\"\n }, React.createElement(\"h3\", null, \"Maintainable Software\"), React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"It is \", React.createElement(\"strong\", null, \"not a matter of code\"), \" but a matter of \", React.createElement(\"strong\", null, \"understanding the business domain\")), \"\\n\", React.createElement(_components.li, null, \"Software well designed \", React.createElement(\"strong\", null, \"should be easy to understand by all\")), \"\\n\")), React.createElement(WideFeatureImage, {\n src: dddLogosImage,\n alt: \"Domain Driven Design is about Business Understanding\",\n className: \"only-wide\"\n })), React.createElement(WideFeature, null, React.createElement(WideFeatureImage, {\n src: sharedUnderstandingImage,\n alt: \"Gap between Domain Experts - Technical Knwoledge\"\n }), React.createElement(WideFeatureText, {\n className: \"wide-feature-text\"\n }, React.createElement(\"h3\", null, \"Common Language (DSL)\"), React.createElement(_components.p, null, \"A common language closes the gap between:\"), React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"\\n\", React.createElement(\"strong\", null, \"Domain Experts\"), \"\\n\"), \"\\n\", React.createElement(_components.li, null, \"\\n\", React.createElement(\"strong\", null, \"Technical Experts\"), \"\\n\"), \"\\n\", React.createElement(_components.li, null, \"Working \", React.createElement(\"strong\", null, \"Software & Tests\")), \"\\n\"))), React.createElement(WideFeature, null, React.createElement(WideFeatureImage, {\n src: gearsDarkImage,\n alt: \"\",\n width: \"300px\",\n className: \"only-small\"\n }), React.createElement(WideFeatureText, {\n className: \"wide-feature-text\"\n }, React.createElement(\"h3\", null, \"ZenWave SDK\"), React.createElement(_components.p, null, \"Accelerate your development \", React.createElement(\"strong\", null, \"Converting your Models\"), \" into \", React.createElement(\"strong\", null, \"Software Artifacts:\")), React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"API Definitions: OpenAPI, AsyncAPI...\"), \"\\n\", React.createElement(_components.li, null, \"SpringBoot/SpringCloud Backend...\"), \"\\n\", React.createElement(_components.li, null, \"API Testing: KarateDSL, Spring WebTestClient...\"), \"\\n\")), React.createElement(WideFeatureImage, {\n src: gearsDarkImage,\n alt: \"\",\n width: \"300px\",\n className: \"only-wide\"\n })))), React.createElement(ScreenContainer, null, React.createElement(\"section\", null, React.createElement(\"div\", {\n className: \"home-links\"\n }, React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/domain-modeling/business-domain-modeling/\"\n }, \"Domain Modeling\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/event-driven-design/zenwave-domain-language/\"\n }, \"ZDL Modeling Language\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/zenwave-sdk\"\n }, \"ZenWave SDK\"))))), React.createElement(ScreenContainer, {\n className: \"home-screenshots\"\n }, React.createElement(\"h2\", null, \"A Domain Language Designed for Event-Driven Architectures\"), React.createElement(Image, {\n src: eventStormingZDL,\n alt: \"Event Storming\"\n }), React.createElement(\"h2\", null, \"... And Bounded Context Mapping\"), React.createElement(Image, {\n src: boundedContextMapping,\n alt: \"Bounded Context Mapping with ZDL\",\n width: \"100%\"\n }), React.createElement(\"h2\", null, \"Can be read as documentation\"), React.createElement(Image, {\n src: pluginScreenshot\n }), React.createElement(\"h2\", null, \"And easily converted into working software & tests\"), React.createElement(Image, {\n src: pluginRunScreenshot\n })), React.createElement(ScreenContainer, null, React.createElement(\"section\", null, React.createElement(\"div\", {\n className: \"home-links\"\n }, React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/domain-modeling/business-domain-modeling/\"\n }, \"Domain Modeling\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/event-driven-design/zenwave-domain-language/\"\n }, \"ZDL Modeling Language\")), \"\\r\\n\", React.createElement(\"div\", null, React.createElement(\"a\", {\n href: \"/docs/zenwave-sdk\"\n }, \"ZenWave SDK\"))))));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTIwMHB4IiBoZWlnaHQ9IjEyMDBweCIgc3R5bGU9InNoYXBlLXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247IHRleHQtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgaW1hZ2UtcmVuZGVyaW5nOm9wdGltaXplUXVhbGl0eTsgZmlsbC1ydWxlOmV2ZW5vZGQ7IGNsaXAtcnVsZTpldmVub2RkIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk2MiIgZmlsbD0iIzJiOGEzZSIgZD0iTSA0MjcuNSwxMzIuNSBDIDQ5MC41LDEzMi41IDU1My41LDEzMi41IDYxNi41LDEzMi41QyA2MTYuNSwxOTUuNSA2MTYuNSwyNTguNSA2MTYuNSwzMjEuNUMgNTUzLjUsMzIxLjUgNDkwLjUsMzIxLjUgNDI3LjUsMzIxLjVDIDQyNy41LDI1OC41IDQyNy41LDE5NS41IDQyNy41LDEzMi41IFogTSA0NjYuNSwxNzEuNSBDIDUwMy41LDE3MS41IDU0MC41LDE3MS41IDU3Ny41LDE3MS41QyA1NzcuNSwyMDguNSA1NzcuNSwyNDUuNSA1NzcuNSwyODIuNUMgNTQwLjUsMjgyLjUgNTAzLjUsMjgyLjUgNDY2LjUsMjgyLjVDIDQ2Ni41LDI0NS41IDQ2Ni41LDIwOC41IDQ2Ni41LDE3MS41IFoiLz48L2c+DQo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eTowLjk3NCIgZmlsbD0iIzJiOGEzZSIgZD0iTSA1MDUuNSwzNzQuNSBDIDUxOC4xNjcsMzc0LjUgNTMwLjgzMywzNzQuNSA1NDMuNSwzNzQuNUMgNTQzLjUsMzkzLjgzMyA1NDMuNSw0MTMuMTY3IDU0My41LDQzMi41QyA2OTMuNSw0MzIuNSA4NDMuNSw0MzIuNSA5OTMuNSw0MzIuNUMgOTkzLjUsNTYzLjE2NyA5OTMuNSw2OTMuODMzIDk5My41LDgyNC41QyA5ODAuODMzLDgyNC41IDk2OC4xNjcsODI0LjUgOTU1LjUsODI0LjVDIDk1NS41LDcwNi44MzMgOTU1LjUsNTg5LjE2NyA5NTUuNSw0NzEuNUMgODE4LjE2Nyw0NzEuNSA2ODAuODMzLDQ3MS41IDU0My41LDQ3MS41QyA1NDMuNSw0ODkuMTY3IDU0My41LDUwNi44MzMgNTQzLjUsNTI0LjVDIDUzMC44MzMsNTI0LjUgNTE4LjE2Nyw1MjQuNSA1MDUuNSw1MjQuNUMgNTA1LjUsNTA2LjgzMyA1MDUuNSw0ODkuMTY3IDUwNS41LDQ3MS41QyA0MTguMTY3LDQ3MS41IDMzMC44MzMsNDcxLjUgMjQzLjUsNDcxLjVDIDI0My41LDQ4OS4xNjcgMjQzLjUsNTA2LjgzMyAyNDMuNSw1MjQuNUMgMjMwLjgzMyw1MjQuNSAyMTguMTY3LDUyNC41IDIwNS41LDUyNC41QyAyMDUuNSw0OTMuODMzIDIwNS41LDQ2My4xNjcgMjA1LjUsNDMyLjVDIDMwNS41LDQzMi41IDQwNS41LDQzMi41IDUwNS41LDQzMi41QyA1MDUuNSw0MTMuMTY3IDUwNS41LDM5My44MzMgNTA1LjUsMzc0LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDEzMC41LDU4MC41IEMgMTkzLjE2Nyw1ODAuNSAyNTUuODMzLDU4MC41IDMxOC41LDU4MC41QyAzMTguNSw2NDMuMTY3IDMxOC41LDcwNS44MzMgMzE4LjUsNzY4LjVDIDI1NS44MzMsNzY4LjUgMTkzLjE2Nyw3NjguNSAxMzAuNSw3NjguNUMgMTMwLjUsNzA1LjgzMyAxMzAuNSw2NDMuMTY3IDEzMC41LDU4MC41IFogTSAxNjguNSw2MTguNSBDIDIwNS44MzMsNjE4LjUgMjQzLjE2Nyw2MTguNSAyODAuNSw2MTguNUMgMjgwLjUsNjU1LjgzMyAyODAuNSw2OTMuMTY3IDI4MC41LDczMC41QyAyNDMuMTY3LDczMC41IDIwNS44MzMsNzMwLjUgMTY4LjUsNzMwLjVDIDE2OC41LDY5My4xNjcgMTY4LjUsNjU1LjgzMyAxNjguNSw2MTguNSBaIi8+PC9nPg0KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MC45NzQiIGZpbGw9IiMyYjhhM2UiIGQ9Ik0gNDI3LjUsNTgwLjUgQyA0OTAuNSw1ODAuNSA1NTMuNSw1ODAuNSA2MTYuNSw1ODAuNUMgNjE2LjUsNjQzLjE2NyA2MTYuNSw3MDUuODMzIDYxNi41LDc2OC41QyA1NTMuNSw3NjguNSA0OTAuNSw3NjguNSA0MjcuNSw3NjguNUMgNDI3LjUsNzA1LjgzMyA0MjcuNSw2NDMuMTY3IDQyNy41LDU4MC41IFogTSA0NjYuNSw2MTguNSBDIDUwMy41LDYxOC41IDU0MC41LDYxOC41IDU3Ny41LDYxOC41QyA1NzcuNSw2NTUuODMzIDU3Ny41LDY5My4xNjcgNTc3LjUsNzMwLjVDIDU0MC41LDczMC41IDUwMy41LDczMC41IDQ2Ni41LDczMC41QyA0NjYuNSw2OTMuMTY3IDQ2Ni41LDY1NS44MzMgNDY2LjUsNjE4LjUgWiIvPjwvZz4NCjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTg3IiBmaWxsPSIjMmI4YTNlIiBkPSJNIDg4MC41LDg4MC41IEMgOTQzLjE2Nyw4ODAuNSAxMDA1LjgzLDg4MC41IDEwNjguNSw4ODAuNUMgMTA2OC41LDk0My4xNjcgMTA2OC41LDEwMDUuODMgMTA2OC41LDEwNjguNUMgMTAwNS44MywxMDY4LjUgOTQzLjE2NywxMDY4LjUgODgwLjUsMTA2OC41QyA4ODAuNSwxMDA1LjgzIDg4MC41LDk0My4xNjcgODgwLjUsODgwLjUgWiBNIDkxOC41LDkxOC41IEMgOTU1LjgzMyw5MTguNSA5OTMuMTY3LDkxOC41IDEwMzAuNSw5MTguNUMgMTAzMC41LDk1NS44MzMgMTAzMC41LDk5My4xNjcgMTAzMC41LDEwMzAuNUMgOTkzLjE2NywxMDMwLjUgOTU1LjgzMywxMDMwLjUgOTE4LjUsMTAzMC41QyA5MTguNSw5OTMuMTY3IDkxOC41LDk1NS44MzMgOTE4LjUsOTE4LjUgWiIvPjwvZz4NCjwvc3ZnPg0K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA1MTAgNDU3LjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMCA0NTcuODsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCgkuc3Qwe2ZpbGw6IzZEQjMzRjt9DQo8L3N0eWxlPg0KPHRpdGxlPmljb24tc3ByaW5nLWJvb3Q8L3RpdGxlPg0KPGcgaWQ9IkxheWVyXzJfMV8iPg0KCTxnIGlkPSJMYXllcl8xLTIiPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTAzLjUsMjAxLjRMNDAzLDI3LjVDMzk0LjMsMTIuNCwzNzIuOSwwLDM1NS40LDBIMTU0LjZjLTE3LjQsMC0zOC45LDEyLjQtNDcuNiwyNy41TDYuNiwyMDEuNA0KCQkJYy04LjcsMTUuMS04LjcsMzkuOCwwLDU0LjlsMTAwLjQsMTc0YzguNywxNS4xLDMwLjEsMjcuNSw0Ny42LDI3LjVoMjAwLjljMTcuNCwwLDM4LjgtMTIuNCw0Ny42LTI3LjVsMTAwLjQtMTc0DQoJCQlDNTEyLjIsMjQxLjIsNTEyLjIsMjE2LjUsNTAzLjUsMjAxLjR6IE0yMzMuMyw5Ni4yYzAtMTEuNCw5LjMtMjAuNywyMC43LTIwLjdjMTEuNCwwLDIwLjcsOS4zLDIwLjcsMjAuN3YxMjMuNw0KCQkJYzAsMTEuNC05LjMsMjAuNy0yMC43LDIwLjdjLTExLjQsMC0yMC43LTkuMy0yMC43LTIwLjdsMCwwVjk2LjJ6IE0yNTQsMzYwLjNjLTc3LjQsMC0xNDAuNC02My0xNDAuNC0xNDAuNA0KCQkJYzAuMS00NC40LDIxLjEtODYuMSw1Ni43LTExMi43YzguMi02LjEsMTkuNy00LjQsMjUuOCwzLjhzNC40LDE5LjctMy44LDI1LjhsMCwwYy00NS45LDM0LjEtNTUuNSw5OS0yMS40LDE0NC45DQoJCQlzOTksNTUuNSwxNDQuOSwyMS40YzI2LjMtMTkuNSw0MS44LTUwLjQsNDEuOC04My4yYy0wLjEtMzIuOS0xNS43LTYzLjgtNDIuMi04My40Yy04LjItNi05LjktMTcuNi0zLjktMjUuOHMxNy42LTkuOSwyNS44LTMuOQ0KCQkJYzM1LjksMjYuNSw1Nyw2OC41LDU3LjEsMTEzLjFDMzk0LjQsMjk3LjQsMzMxLjQsMzYwLjMsMjU0LDM2MC4zeiIvPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg0K\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDI0OSAyMTkiIHdpZHRoPSIyNDkuMHB0IiBoZWlnaHQ9IjIxOS4wcHQiPg0KDQo8cGF0aCBkPSJNIDExNS41MSAxMS44MiBDIDEzMi4zMyA4Ljg4IDE1MC4zOCAxNS41NyAxNjEuNDEgMjguNTYgQyAxNjcuNzMgMzUuNzMgMTcxLjUwIDQ0LjYyIDE3My4xMCA1My45OCBDIDE3NC44OSA2NS42OCAxNzEuOTcgNzcuNzkgMTY1Ljc1IDg3Ljc4IEMgMTU5LjE2IDk4LjA2IDE0OC44MyAxMDUuODMgMTM3LjAxIDEwOS4wNCBDIDExOC4yMiAxMTQuNzcgOTYuODkgMTA3LjQ1IDg0Ljc5IDkyLjE4IEMgNzYuMjggODEuNjIgNzIuMjQgNjcuNDEgNzQuMjUgNTMuOTcgQyA3NS43OSA0NC43MSA3OS41OSAzNS45MSA4NS43NiAyOC43OCBDIDkzLjMzIDE5Ljc3IDEwMy45OCAxMy45NSAxMTUuNTEgMTEuODIgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTAyLjY3IDI4LjU3IEMgMTE0LjU2IDI4Ljg5IDEyOC45MiAyNy4xNiAxMzkuOTIgMzIuMDUgQyAxNDcuMTkgMzUuMDcgMTUyLjAxIDQxLjU1IDE1My42MiA0OS4xNiBDIDE1NS40MCA1Ny43NCAxNTUuMjUgNjcuNTUgMTUxLjY1IDc1LjY0IEMgMTQ4LjYyIDgyLjQwIDE0Mi41MCA4Ni42NyAxMzUuNDkgODguNTkgQyAxMjUuMjQgOTEuNDcgMTEzLjMwIDkwLjIzIDEwMi42NyA5MC41MCBDIDEwMi42NiA2OS44NSAxMDIuNjYgNDkuMjEgMTAyLjY3IDI4LjU3IFoiIGZpbGw9IiMwMDAwMDAiIC8+DQo8cGF0aCBkPSJNIDExMS4wNCAzNS40OCBDIDExOC44MyAzNS42MSAxMjcuNzIgMzQuNjMgMTM0Ljk1IDM3Ljk0IEMgMTM5Ljg0IDQwLjA3IDE0My4yNCA0NC4zOSAxNDQuNjQgNDkuNDggQyAxNDYuMjIgNTUuNDIgMTQ2LjI1IDYxLjk3IDE0NS4wMyA2Ny45OCBDIDE0My45MCA3My40MSAxNDAuODEgNzguMjQgMTM1Ljc1IDgwLjc1IEMgMTI4LjMwIDg0LjUyIDExOS4xNiA4My40NyAxMTEuMDUgODMuNjIgQyAxMTEuMDMgNjcuNTggMTExLjA1IDUxLjUzIDExMS4wNCAzNS40OCBaIiBmaWxsPSIjMmFkNGZmIiAvPg0KPHBhdGggZD0iTSA1Ni41MiAxMDcuNzAgQyA3NC4xMiAxMDMuNTcgOTMuMzUgMTEwLjI3IDEwNS4wMCAxMjMuOTggQyAxMTEuMzUgMTMxLjE5IDExNS4wOCAxNDAuMTAgMTE2LjY2IDE0OS41MiBDIDExOC4zOCAxNjEuMjUgMTE1LjQ2IDE3My4yNiAxMDkuMjAgMTgzLjI1IEMgMTAyLjY5IDE5My4zMiA5Mi42NCAyMDAuOTkgODEuMDUgMjA0LjIzIEMgNzEuMTkgMjA3LjM1IDYwLjQ5IDIwNi45MyA1MC43OSAyMDMuNDIgQyAzMS44OSAxOTcuMDMgMTguNDEgMTc4Ljg5IDE3LjM1IDE1OS4wMyBDIDE2LjYyIDE0Ni4wNCAyMS40NSAxMzIuNzcgMzAuMTUgMTIzLjEzIEMgMzcuMTAgMTE1LjM5IDQ2LjM5IDExMC4wMyA1Ni41MiAxMDcuNzAgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTcxLjUyIDExMC43NSBDIDE4OS4xNiAxMDYuNTIgMjA4Ljk3IDExMy42MCAyMjAuNDAgMTI3LjU3IEMgMjI2LjUzIDEzNC43NiAyMzAuMTMgMTQzLjU1IDIzMS42MyAxNTIuODIgQyAyMzMuMjUgMTY0LjE0IDIzMC40OCAxNzUuODYgMjI0LjU3IDE4NS41OCBDIDIxOC4wNCAxOTYuMTYgMjA3LjUzIDIwNC4xNyAxOTUuNTIgMjA3LjQzIEMgMTc2Ljc1IDIxMy4xNyAxNTUuNDEgMjA1LjkwIDE0My4zMiAxOTAuNjMgQyAxMzQuNjkgMTc5Ljk3IDEzMC42MSAxNjUuNTYgMTMyLjc4IDE1MS45NyBDIDEzNC4zMCAxNDMuMzQgMTM3LjczIDEzNS4xMyAxNDMuMjggMTI4LjMyIEMgMTUwLjM1IDExOS4zNyAxNjAuNDUgMTEzLjI5IDE3MS41MiAxMTAuNzUgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjxwYXRoIGQ9Ik0gMTU5Ljg0IDEyNy4zMSBDIDE2Ny44NyAxMjcuNDMgMTc1Ljk4IDEyNy4wMCAxODMuOTkgMTI3LjY3IEMgMTkyLjEwIDEyOC41MSAyMDAuMjcgMTMwLjgyIDIwNS41OCAxMzcuNDMgQyAyMTEuMzQgMTQ0LjYzIDIxMi4wMCAxNTUuMjAgMjExLjEwIDE2NC4wMSBDIDIxMC4yMCAxNzIuNTIgMjA2LjMzIDE4MC40NCAxOTguNDUgMTg0LjQ1IEMgMTg3LjE3IDE5MC4zNSAxNzIuMjQgMTg4LjQwIDE1OS44MyAxODguNzUgQyAxNTkuODIgMTY4LjI3IDE1OS44MSAxNDcuNzkgMTU5Ljg0IDEyNy4zMSBaIiBmaWxsPSIjMDAyMjJiIiAvPg0KPHBhdGggZD0iTSA0NS42NCAxMjcuODUgQyA1Ni40NyAxMjguMTQgNjkuMzYgMTI2LjY0IDc5LjUwIDEzMC42MyBDIDg1Ljc5IDEzMi45NiA5MC42NyAxMzcuNzcgOTIuNzkgMTQ0LjE3IEMgOTUuMjggMTUxLjc4IDk1LjMxIDE2MC41MSA5My4zMCAxNjguMjQgQyA5MS40NiAxNzUuMDcgODYuNzkgMTgwLjU5IDgwLjE2IDE4My4xOSBDIDY5Ljg4IDE4Ny41MiA1Ni43MCAxODUuOTQgNDUuNjQgMTg2LjI1IEMgNDUuNjMgMTY2Ljc4IDQ1LjYzIDE0Ny4zMSA0NS42NCAxMjcuODUgWiIgZmlsbD0iIzAwMDAwMCIgLz4NCjxwYXRoIGQ9Ik0gNzYuMjMgMTM2Ljc2IEMgODAuODUgMTM4LjgyIDgzLjk3IDE0Mi45NSA4NS4yNiAxNDcuNzcgQyA4Ni42OSAxNTMuMjggODYuNzAgMTU5LjI2IDg1LjYyIDE2NC44NCBDIDg0LjU1IDE2OS45NyA4MS43NSAxNzQuNTcgNzYuOTcgMTc2Ljk4IEMgNjkuOTcgMTgwLjYxIDYxLjIyIDE3OS41OCA1My41NyAxNzkuNzcgQyA1My40OSAxNjQuNjQgNTMuNTggMTQ5LjUwIDUzLjUzIDEzNC4zNyBDIDYwLjg4IDEzNC40NCA2OS40MyAxMzMuNTkgNzYuMjMgMTM2Ljc2IFoiIGZpbGw9IiMyYWQ0ZmYiIC8+DQo8cGF0aCBkPSJNIDE2OC4yNCAxMzQuMjYgQyAxNzUuMzEgMTM0LjExIDE4My4yNCAxMzMuNTkgMTkwLjAyIDEzNS45MCBDIDE5NS4wMiAxMzcuNTcgMTk4Ljk2IDE0MS4yMCAyMDAuODAgMTQ2LjE3IEMgMjAzLjA2IDE1Mi40MCAyMDMuMTQgMTU5LjUyIDIwMS45MiAxNjUuOTggQyAyMDAuODYgMTcxLjQzIDE5Ny45NiAxNzYuMzMgMTkyLjkxIDE3OC45MiBDIDE4NS4zMSAxODIuOTAgMTc2LjQxIDE4MS43MyAxNjguMTMgMTgxLjkwIEMgMTY4LjIyIDE2Ni4wNCAxNjcuOTggMTUwLjExIDE2OC4yNCAxMzQuMjYgWiIgZmlsbD0iIzJhZDRmZiIgLz4NCjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB2aWV3Qm94PSIwIDAgNTEyIDUxMiINCiAgIHdpZHRoPSI1MTIuMHB0Ig0KICAgaGVpZ2h0PSI1MTIuMHB0Ig0KICAgaWQ9InN2Zzk0ODU5Ig0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogIDxkZWZzDQogICAgIGlkPSJkZWZzOTQ4NjMiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTQzLjk5IDI2Ljg2IEMgMTU5LjY5IDI1Ljc5IDE3NS42MiAzMC40MSAxODguMzIgMzkuNzAgQyAxOTkuNDcgNDcuNzUgMjA4LjA0IDU5LjI2IDIxMi42MSA3Mi4yNCBDIDIxNy4wMyA4NC44MiAyMTcuNzYgOTguNTggMjE0LjQzIDExMS41MSBDIDIxMC42OCAxMjYuNzggMjAxLjQ0IDE0MC40NiAxODguODIgMTQ5LjgyIEMgMTk5LjcwIDE2OC41NyAyMTAuNjQgMTg3LjI5IDIyMS41MyAyMDYuMDQgQyAyMzkuODcgMjAwLjM5IDI2MC4xMiAyMDUuNDYgMjczLjY5IDIxOC45NyBDIDI5Ny44OSAxOTQuNzMgMzIyLjE2IDE3MC41NiAzNDYuMzIgMTQ2LjI5IEMgMzQzLjU1IDE0MC44OCAzNDEuNjcgMTM1LjE0IDM0MS40MiAxMjkuMDIgQyAzNDAuNDYgMTEzLjY5IDM0OS4xMyA5OC43MiAzNjIuODMgOTEuODMgQyAzNzYuMDIgODQuOTMgMzkyLjc1IDg2LjM5IDQwNC41NiA5NS40NCBDIDQxNi4wOCAxMDQuMDUgNDIyLjA3IDExOC44MSA0MTkuNzYgMTMzLjAzIEMgNDE3LjUzIDE0OC4yMyA0MDUuODggMTYxLjE5IDM5MS4wMSAxNjUuMDMgQyAzODAuOTYgMTY3Ljc4IDM3MC41MyAxNjYuMTcgMzYxLjM1IDE2MS40MiBDIDMzNi4xOSAxODYuNzUgMzEwLjg0IDIxMS45MiAyODUuNjQgMjM3LjIyIEMgMjg3LjU0IDI0Mi42OCAyODguNzIgMjQ4LjA3IDI4OS4wMiAyNTMuODYgQyAzMTYuMzMgMjUzLjg5IDM0My42NSAyNTMuODUgMzcwLjk3IDI1My44NyBDIDM3My44NSAyMzUuODcgMzg0LjAxIDIxOS4zOSAzOTguOTMgMjA4Ljg5IEMgNDExLjY2IDE5OS44NCA0MjcuNDQgMTk1LjM3IDQ0My4wMyAxOTYuNDggQyA0NTguNDIgMTk3LjQzIDQ3My4zMiAyMDMuODggNDg0LjYyIDIxNC4zNSBDIDQ5NS44NyAyMjQuNzIgNTAzLjQ5IDIzOC44MyA1MDUuNzggMjUzLjk4IEMgNTA3LjY0IDI2NC45NyA1MDYuNDYgMjc2LjMxIDUwMi44OCAyODYuODIgQyA0OTcuNzQgMzAxLjczIDQ4Ny4zMyAzMTQuNjkgNDczLjgyIDMyMi44MyBDIDQ2My4zOCAzMjkuMjUgNDUxLjIzIDMzMi42MyA0MzguOTkgMzMyLjc5IEMgNDIyLjM0IDMzMi44OCA0MDUuNzcgMzI2Ljc5IDM5My4zMSAzMTUuNzAgQyAzODEuNDIgMzA1LjMyIDM3My40NyAyOTAuNzggMzcwLjk5IDI3NS4yMCBDIDM0Mi40OCAyNzUuMjEgMzEzLjk4IDI3NS4xOSAyODUuNDcgMjc1LjIxIEMgMjgwLjg1IDI4Ni4yMSAyNzMuNTAgMjk0LjkwIDI2My4yOCAzMDEuMDkgQyAyNzIuODUgMzM2LjE4IDI4Mi40NSAzNzEuMjYgMjkyLjA2IDQwNi4zNCBDIDI5Ny40NyA0MDYuNDIgMzAyLjc3IDQwNy4xMyAzMDcuODIgNDA5LjE3IEMgMzIxLjA4IDQxNC4zMSAzMzAuODEgNDI2Ljg0IDMzMi40NiA0NDAuOTggQyAzMzQuNDAgNDU1LjczIDMyNy40MiA0NzAuODIgMzE0LjkyIDQ3OC44OCBDIDMwMi4xNCA0ODcuMzYgMjg0LjgwIDQ4Ny40NCAyNzEuOTcgNDc5LjAxIEMgMjU4Ljc1IDQ3MC42MyAyNTEuNjUgNDU0LjQ1IDI1NC40OSA0MzkuMDMgQyAyNTYuMzEgNDI4LjIzIDI2Mi43MyA0MTguOTUgMjcxLjY4IDQxMi43NyBDIDI2Mi4xMyAzNzcuODIgMjUyLjU4IDM0Mi44NyAyNDMuMDEgMzA3LjkzIEMgMjI5LjU2IDMwOS4zMCAyMTcuMTggMzA2LjA2IDIwNi4xMiAyOTguMzUgQyAxODMuNDAgMzExLjE3IDE2MC43MSAzMjQuMDIgMTM4LjAyIDMzNi44OCBDIDE0My45NCAzNTMuOTEgMTQyLjkzIDM3Mi44OCAxMzUuMDQgMzg5LjEwIEMgMTI3LjUyIDQwNC44MCAxMTMuODIgNDE3LjMyIDk3LjUwIDQyMy4zOSBDIDg1LjQyIDQyNy44NiA3Mi4xNSA0MjguOTYgNTkuNTQgNDI2LjIyIEMgNDUuNzAgNDIzLjMyIDMyLjkxIDQxNi4wNCAyMy4zNyA0MDUuNjEgQyAxMi42NyAzOTQuMDYgNi4yMyAzNzguNzMgNS40OCAzNjMuMDAgQyA0LjYzIDM0Ny41NSA5LjIyIDMzMS45MCAxOC4zOCAzMTkuNDEgQyAyNi4yOCAzMDguNDYgMzcuNTIgMjk5Ljk4IDUwLjIzIDI5NS4zOCBDIDYxLjI5IDI5MS4zMiA3My4zOCAyOTAuMjQgODQuOTkgMjkyLjIxIEMgMTAxLjk3IDI5NC45NCAxMTcuNDMgMzA0LjQ2IDEyNy44NyAzMTguMDggQyAxNDkuMDcgMzA2LjA5IDE3MC4yNiAyOTQuMTEgMTkxLjQ1IDI4Mi4xMCBDIDE4Ny41OSAyNzQuOTkgMTg1LjQxIDI2OC4wNCAxODQuNjYgMjU5Ljk2IEMgMTUyLjc2IDI1MS4xMSAxMjAuNzIgMjQyLjU3IDg4Ljc4IDIzMy44MiBDIDg2LjE4IDIzOC4xMSA4My4wNiAyNDIuMDEgNzkuMTEgMjQ1LjE0IEMgNjguMzEgMjUzLjk3IDUyLjkyIDI1Ni4yOSAzOS45NyAyNTEuMDkgQyAyNS4yNiAyNDUuNDMgMTUuMDYgMjMwLjc4IDE0Ljk3IDIxNC45OSBDIDE0LjU3IDE5OS4xNCAyNC40NiAxODQuMDYgMzkuMTIgMTc4LjA0IEMgNTIuOTkgMTcyLjA5IDY5Ljc1IDE3NC45MyA4MC44NiAxODUuMTQgQyA4OC44MCAxOTIuMjYgOTMuMzkgMjAyLjQ2IDkzLjg4IDIxMy4wOCBDIDEyNS4wOCAyMjEuNTkgMTU2LjI5IDIzMC4xMCAxODcuNTIgMjM4LjU0IEMgMTkwLjcwIDIyOS44NCAxOTUuODAgMjIyLjM3IDIwMi44MiAyMTYuMzIgQyAxOTEuODUgMTk3LjQ2IDE4MC44OCAxNzguNTkgMTY5Ljg4IDE1OS43NCBDIDE1My4yMSAxNjUuMTAgMTM1LjA1IDE2NC4yMCAxMTkuMjEgMTU2LjY0IEMgMTA1LjA0IDE1MC4wMSA5My4zNCAxMzguMzcgODYuNjQgMTI0LjIyIEMgODAuNTUgMTExLjQ5IDc4LjYzIDk2Ljg4IDgxLjEwIDgyLjk5IEMgODMuNjUgNjguMjIgOTEuMzEgNTQuNDUgMTAyLjQ0IDQ0LjQxIEMgMTEzLjc5IDM0LjA1IDEyOC42NSAyNy43OCAxNDMuOTkgMjYuODYgWiINCiAgICAgZmlsbD0iIzAxMDEwMSINCiAgICAgaWQ9InBhdGg5NDg0MyINCiAgICAgc3R5bGU9ImZpbGw6IzJiOGEzZTtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSAxMzkuNDkgNDguODYgQyAxNTEuMTggNDYuNjIgMTYzLjU4IDQ4Ljk1IDE3My41OCA1NS40MyBDIDE4OS4wMCA2NS4yMSAxOTcuNTcgODMuOTYgMTk0LjYzIDEwMi4wMyBDIDE5Mi4xNSAxMTkuMTMgMTc5LjY2IDEzNC4wMCAxNjMuMjQgMTM5LjM4IEMgMTUwLjc4IDE0My42NCAxMzYuNjkgMTQyLjMzIDEyNS4yNiAxMzUuNzggQyAxMTUuNzUgMTMwLjQ3IDEwOC4yMSAxMjEuNzAgMTA0LjM4IDExMS41MSBDIDEwMC43MyAxMDEuOTAgMTAwLjQxIDkxLjA2IDEwMy4zOSA4MS4yMyBDIDEwOC4zNCA2NC43OCAxMjIuNTggNTEuOTYgMTM5LjQ5IDQ4Ljg2IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDUiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMzc1LjQ3IDEwOS42MCBDIDM4MS42OCAxMDcuNzEgMzg4LjU0IDEwOS4yNyAzOTMuMjQgMTEzLjc1IEMgMzk4LjU5IDExOC43MSA0MDAuMzcgMTI2Ljc3IDM5Ny42NyAxMzMuNTQgQyAzOTQuNzcgMTQxLjA0IDM4Ni45OSAxNDUuODMgMzc4Ljk4IDE0NC45NiBDIDM3MC42MyAxNDQuMjAgMzYzLjY4IDEzNy4zNiAzNjIuODAgMTI5LjAyIEMgMzYxLjcwIDEyMC40NiAzNjcuMjQgMTEyLjA3IDM3NS40NyAxMDkuNjAgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg0NyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA1MC40OSAxOTYuNjkgQyA1Ni43OSAxOTUuMjkgNjMuNDggMTk3LjQyIDY3LjgwIDIwMi4yMCBDIDczLjAwIDIwNy44MiA3NC4wMiAyMTYuNTcgNzAuMjIgMjIzLjIyIEMgNjYuMzUgMjMwLjI5IDU3Ljg0IDIzNC4wMiA1MC4wMSAyMzEuOTcgQyA0MS44OSAyMzAuMDQgMzYuMDAgMjIyLjMyIDM2LjI4IDIxMy45NyBDIDM2LjM4IDIwNS43NSA0Mi40NiAxOTguNDAgNTAuNDkgMTk2LjY5IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NDkiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gNDI4LjQ5IDIxOC42NyBDIDQ0My4yMSAyMTUuNDggNDU5LjAwIDIxOS42OCA0NzAuMDYgMjI5LjkzIEMgNDgxLjYyIDI0MC4zOSA0ODcuMzEgMjU2LjY1IDQ4NC43MCAyNzIuMDMgQyA0ODIuODAgMjg0LjAzIDQ3Ni4wNCAyOTUuMDcgNDY2LjI1IDMwMi4yNiBDIDQ1Ni4zMCAzMDkuNzAgNDQzLjIyIDMxMi45MCA0MzAuOTcgMzEwLjgzIEMgNDE2LjcyIDMwOC42MiA0MDMuOTcgMjk5LjU0IDM5Ny4xNCAyODYuODYgQyAzOTAuNzcgMjc1LjIyIDM4OS43NSAyNjAuOTMgMzk0LjMxIDI0OC40OCBDIDM5OS43MCAyMzMuNDkgNDEyLjkyIDIyMS45OSA0MjguNDkgMjE4LjY3IFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTEiDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMjMwLjQ5IDIyNS43MiBDIDIzOS4yMiAyMjMuOTMgMjQ4LjUwIDIyNS45NyAyNTUuNTYgMjMxLjQzIEMgMjY2LjA0IDIzOS4zMSAyNzAuMzcgMjUzLjU2IDI2Ni4wNiAyNjUuOTcgQyAyNjEuNjMgMjc5LjMxIDI0OC4wMCAyODguMjIgMjMzLjk4IDI4Ni43NyBDIDIxOC42OSAyODUuNTggMjA2LjIwIDI3Mi4zMiAyMDUuOTEgMjU2Ljk5IEMgMjA1LjI2IDI0Mi4xOCAyMTUuOTkgMjI4LjYzIDIzMC40OSAyMjUuNzIgWiINCiAgICAgZmlsbD0iI2ZmZmZmZiINCiAgICAgaWQ9InBhdGg5NDg1MyINCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz4NCiAgPHBhdGgNCiAgICAgZD0iTSA2My40OSAzMTMuNjYgQyA3NS4zNSAzMTEuMDcgODguMTAgMzEzLjEzIDk4LjM4IDMxOS42MyBDIDEwNy45NiAzMjUuNTYgMTE1LjIwIDMzNS4wMCAxMTguNDYgMzQ1Ljc4IEMgMTIzLjUxIDM2MS45MiAxMTkuMDYgMzgwLjE3IDEwNy4xOCAzOTIuMTggQyA5NC43NyA0MDUuMTQgNzUuMTEgNDA5LjgyIDU4LjIwIDQwMy43NSBDIDQ1LjUzIDM5OS40MSAzNS4wNiAzODkuNDMgMzAuMDkgMzc2Ljk5IEMgMjYuMjEgMzY3LjQ0IDI1LjY4IDM1Ni42NyAyOC40MyAzNDYuNzQgQyAzMi45OCAzMzAuMjcgNDYuODAgMzE3LjI2IDYzLjQ5IDMxMy42NiBaIg0KICAgICBmaWxsPSIjZmZmZmZmIg0KICAgICBpZD0icGF0aDk0ODU1Ig0KICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxIiAvPg0KICA8cGF0aA0KICAgICBkPSJNIDI4Ny41MCA0MjguNzAgQyAyOTMuOTMgNDI2LjUxIDMwMS4yMyA0MjguMTQgMzA2LjA1IDQzMi45NSBDIDMxMS42OSA0MzguNDEgMzEzLjA3IDQ0Ny4zMCAzMDkuNDAgNDU0LjI0IEMgMzA1LjgxIDQ2MS4yNSAyOTcuNzcgNDY1LjE2IDI5MC4wMyA0NjMuNjkgQyAyODIuMDEgNDYyLjI3IDI3NS42NyA0NTUuMjAgMjc1LjI1IDQ0Ny4wNCBDIDI3NC42NSA0MzguOTcgMjc5LjgzIDQzMS4yNCAyODcuNTAgNDI4LjcwIFoiDQogICAgIGZpbGw9IiNmZmZmZmYiDQogICAgIGlkPSJwYXRoOTQ4NTciDQogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjEiIC8+DQo8L3N2Zz4NCg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY2NSA2NjEiIHdpZHRoPSI2NjUuMHB0IiBoZWlnaHQ9IjY2MS4wcHQiPg0KDQo8cGF0aCBkPSJNIDM5MS4yNCA1Ljg2IEMgNDUzLjUyIDE2LjkwIDUxMi4zMiA0Ni4yOCA1NTguNjIgODkuMzggQyA1ODkuODAgMTE4LjIxIDYxNS40MCAxNTMuMTIgNjMzLjQxIDE5MS41OCBDIDY1MS4zNyAyMjkuNjMgNjYxLjY0IDI3MS4xMCA2NjMuOTcgMzEzLjEwIEMgNjY3LjA1IDM3MC4xNiA2NTUuMzcgNDI3LjkxIDYzMC4yMyA0NzkuMjMgQyA2MDkuNzQgNTIxLjI3IDU4MC4yNSA1NTkuMzYgNTQzLjk0IDU4OC45MiBDIDUxNi4yNSA2MTEuNDMgNDg0LjYyIDYyOC45OCA0NTAuMDIgNjM4LjIxIEMgNDQ2LjIwIDYzOS4xNyA0NDIuMzYgNjM5LjQyIDQzOC45OSA2MzcuMDEgQyA0MzUuMjYgNjM0LjMyIDQzNC4yOCA2MjkuNTMgNDMyLjU5IDYyNS40OSBDIDQwOS42MiA1NjYuNDEgMzg2LjYyIDUwNy4zMyAzNjMuNjMgNDQ4LjI1IEMgMzYyLjA2IDQ0My45MyAzNTkuNDggNDM5Ljc5IDM2MC40NCA0MzUuMDQgQyAzNjEuMjggNDMwLjczIDM2NC41MSA0MjguMDIgMzY4LjUxIDQyNi42MyBDIDM4NS42OCA0MjAuMDggNDAxLjM2IDQxMC40MSA0MTIuMzcgMzk1LjM5IEMgNDIzLjA0IDM4MC44OCA0MjcuNzAgMzYzLjc2IDQyOS4zOSAzNDYuMDMgQyA0MzAuMDcgMzM3LjAwIDQzMC40MiAzMjguMDQgNDI5LjIzIDMxOS4wMyBDIDQyNC43NiAyODUuOTMgNDAyLjAzIDI1Ni43MiAzNzEuNDggMjQzLjUwIEMgMzQwLjg1IDIzMC4wMiAzMDMuNjcgMjM0LjI0IDI3Ni4zMyAyNTMuMzEgQyAyNTguNDYgMjY1LjczIDI0NC44OSAyODQuMDIgMjM4Ljk0IDMwNS4wMiBDIDIzNC4yNiAzMjAuOTIgMjM0Ljk0IDMzNi44MSAyMzcuMzIgMzUzLjAyIEMgMjQwLjA5IDM2OS42NSAyNDUuNzYgMzg1LjQ0IDI1NS45OSAzOTguOTggQyAyNjYuMjcgNDEyLjY0IDI4MC43OSA0MjIuNjQgMjk3LjAwIDQyNy45NSBDIDMwMC45NSA0MjkuMTcgMzA0LjM2IDQzMS4xMCAzMDUuODQgNDM1LjE5IEMgMzA3LjgyIDQ0MC4yOCAzMDUuMDMgNDQ0LjYzIDMwMy4yNSA0NDkuMjYgQyAyNzguNjggNTA5LjY4IDI1NC4xMCA1NzAuMTAgMjI5LjU1IDYzMC41MyBDIDIyOC40NyA2MzMuMDUgMjI3LjE5IDYzNS4zMiAyMjQuODAgNjM2LjgyIEMgMjIxLjg4IDYzOC43MSAyMTguNTAgNjM4LjgyIDIxNS4yMiA2MzcuOTIgQyAyMDMuODYgNjM0LjkxIDE5Mi43NSA2MzAuODUgMTgyLjAzIDYyNi4wNSBDIDE0Ny4zNSA2MTAuNDQgMTE2LjE3IDU4Ni40MCA5MC40NSA1NTguNTMgQyA1MS43NyA1MTYuNTcgMjQuMDEgNDY0LjcxIDEwLjQ3IDQwOS4yOCBDIC01LjE2IDM0NS4zNSAtMS4yMSAyNzYuNjMgMjEuODcgMjE0Ljk4IEMgMzkuMjMgMTY4LjMwIDY3LjM3IDEyNS43NSAxMDMuNDYgOTEuNDUgQyAxMzUuMTQgNjEuMjEgMTcyLjkwIDM3LjQ0IDIxMy44NiAyMS45NSBDIDI3MC4xMyAwLjYyIDMzMi4wNCAtNC44MSAzOTEuMjQgNS44NiBaIiBmaWxsPSIjMWI1MjFiIiAvPg0KPHBhdGggZD0iTSA0MTIuOTcgMzMuMDcgQyA0NDcuNzQgNDIuNDUgNDgxLjAxIDU3LjgxIDUxMC40NyA3OC41NCBDIDU0Ni4zMCAxMDMuNjEgNTc2Ljg4IDEzNi4yMiA1OTkuMjQgMTczLjgzIEMgNjIyLjk1IDIxMy4yMiA2MzcuNDIgMjU4LjIwIDY0MS4zNiAzMDMuOTkgQyA2NDYuOTUgMzY2LjgzIDYzMy4wNCA0MzEuMTAgNjAyLjAwIDQ4Ni4wMSBDIDU3Ni44NyA1MzAuNjggNTQwLjIyIDU2OS45OCA0OTUuNzEgNTk1LjczIEMgNDgxLjg2IDYwMy41OCA0NjcuMTYgNjEwLjI3IDQ1MS44OSA2MTQuODQgQyA0MjkuNzAgNTU3LjczIDQwNy41MiA1MDAuNjEgMzg1LjI0IDQ0My41NCBDIDM5MS4yMCA0NDAuNDQgMzk3LjE5IDQzNy41MyA0MDIuODEgNDMzLjgyIEMgNDE1LjExIDQyNS43MiA0MjUuOTYgNDE1LjM0IDQzMy43OSA0MDIuODIgQyA0NDQuOTEgMzg1LjUyIDQ1MC4yMyAzNjQuMTcgNDUxLjQ2IDM0My44MCBDIDQ1Mi4xMiAzMzEuNjEgNDUyLjA0IDMxOS41NyA0NDkuMzggMzA3LjYwIEMgNDQyLjU0IDI3NC44OSA0MjAuNzEgMjQ1Ljc2IDM5MS43NCAyMjkuMjggQyAzNzYuMjUgMjIwLjM4IDM1OC44MiAyMTUuMTQgMzQwLjk5IDIxMy45NSBDIDMyMC4wMyAyMTIuNzMgMjk4Ljg2IDIxNi44MSAyNzkuOTYgMjI1Ljk3IEMgMjU2LjYxIDIzNy4xOCAyMzcuMDggMjU2LjM1IDIyNS41MCAyNzkuNTIgQyAyMTcuMjEgMjk2LjA1IDIxMy4xMiAzMTQuNTIgMjEzLjY1IDMzMy4wMCBDIDIxNC4xMSAzNTQuNjQgMjE4LjQ1IDM3Ny4wNiAyMjguNjIgMzk2LjMyIEMgMjM2LjA5IDQxMS4wOCAyNDcuMDMgNDIzLjg5IDI2MC40NCA0MzMuNTggQyAyNjYuODUgNDM4LjQyIDI3My45MyA0NDEuOTEgMjgxLjA4IDQ0NS40OSBDIDI3MS45NiA0NjguNDcgMjYyLjUyIDQ5MS4zMiAyNTMuMjEgNTE0LjIzIEMgMjM5LjY3IDU0Ny41MyAyMjYuMTUgNTgwLjg0IDIxMi42MCA2MTQuMTQgQyAyMDQuNjcgNjEyLjIyIDE5Ny4wMyA2MDguNzEgMTg5LjU1IDYwNS40OSBDIDE2My44MyA1OTMuNTcgMTQwLjIyIDU3Ni43OCAxMTkuNzggNTU3LjIwIEMgMTE1LjUxIDU1My4zOSAxMTEuNjAgNTQ5LjQyIDEwNy44MiA1NDUuMTMgQyA1NS43NSA0ODkuMzYgMjQuNTkgNDE0LjM4IDIyLjk5IDMzOC4wMCBDIDIxLjUxIDI3Ni43NCAzOC41MiAyMTUuMjggNzEuODMgMTYzLjgxIEMgMTA2LjM1IDEwOS44MCAxNTguMTUgNjcuMjMgMjE3Ljg1IDQzLjg4IEMgMjc5LjQ1IDE5LjUwIDM0OS4wNSAxNS44NiA0MTIuOTcgMzMuMDcgWiIgZmlsbD0iIzNlYTUzOCIgLz4NCg0KPC9zdmc+\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICBoZWlnaHQ9IjE3MDUuMDYwNyINCiAgIHZpZXdCb3g9Ii00OC41ODMxMzIgLTEzNi4yMjg1MyA1OTkuODk3NDkgNTM4LjIwODM5Ig0KICAgd2lkdGg9IjE3MDUuMjMxMiINCiAgIHZlcnNpb249IjEuMSINCiAgIGlkPSJzdmcxMDMxNjQiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMxMDMxNjgiIC8+DQogIDxwYXRoDQogICAgIGQ9Ik0gMTA5Ljk0Njg3LDE3Ny44NjQ0MiBIIC00OC4zNDMxMzIgYyAwLjAzLDAuNzggMC4wNSwxLjU1IDAuMDksMi4zMiAwLjA2LDEuNDkgMC4xNywyLjk3IDAuMjYsNC40NiAwLjA0LDAuNjQgMC4wNywxLjI4IDAuMTIsMS45MSAwLjEyLDEuNzIgMC4yNywzLjQ0IDAuNDMsNS4xNSAwLjA0LDAuMzkgMC4wNywwLjc4IDAuMTEsMS4xNSAwLjE4LDEuOTEgMC4zOSwzLjgyIDAuNjEsNS43MSAwLjAxLDAuMTggMC4wMywwLjM3IDAuMDYsMC41NSAwLjI1LDIuMDQgMC41MSw0LjA5IDAuODEsNi4xMiAwLDAuMDMgMCwwLjA2IDAuMDEsMC4wOCBhIDI2Ni4wNSwyNjYuMDUgMCAwIDAgOC4xOCwzNy40IGMgMC4wMiwwLjA1IDAuMDQsMC4xIDAuMDUsMC4xNSAwLjU3LDEuOTQgMS4xNywzLjg2IDEuNzgsNS43NyAwLjA0LDAuMTEgMC4wOCwwLjIzIDAuMTEsMC4zNCAwLjAzLDAuMTEgMC4wNywwLjIyIDAuMTEsMC4zNCAwLjU2LDEuNzMgMS4xNSwzLjQ1IDEuNzQsNS4xOCAwLjE1LDAuNDMgMC4zLDAuODcgMC40NiwxLjMxIDAuNTMsMS40OSAxLjA3LDIuOTggMS42Myw0LjQ4IDAuMjYsMC42NyAwLjUxLDEuMzQgMC43NiwyLjAyIDAuNDksMS4yNCAwLjk2LDIuNDcgMS40NSwzLjcgMC4zNywwLjkzIDAuNzUsMS44NiAxLjE0LDIuNzggMC40LDAuOTcgMC44LDEuOTIgMS4yMSwyLjg5IDAuNSwxLjE4IDEuMDMsMi4zNSAxLjU1LDMuNTMgMC4zMSwwLjcgMC42MywxLjM5IDAuOTQsMi4wOSAwLjY0LDEuNDEgMS4zLDIuODIgMS45Nyw0LjIyIDAuMjIsMC40NSAwLjQzLDAuOSAwLjY1LDEuMzQgMC43OCwxLjYyIDEuNTcsMy4yMSAyLjM3LDQuOCAwLjE0LDAuMjQgMC4yNSwwLjQ5IDAuMzgsMC43MyAwLjksMS43NiAxLjgyLDMuNTEgMi43Nyw1LjI1IDAuMDQsMC4wOCAwLjA5LDAuMTUgMC4xMiwwLjI0IDAuMiwwLjM2IDAuNDIsMC43MSAwLjYyLDEuMDcgbCAxMzUuMTkwMDAyLC04MS40MyAwLjUsLTAuMyBjIC01LjMzLC0xMS4yNCAtOC42NSwtMjMuMiAtOS44OSwtMzUuMzUgeiINCiAgICAgZmlsbD0iIzkzZDUwMCINCiAgICAgaWQ9InBhdGgxMDMxNDQiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTQ4Ljg1Njg3LDI1MC41MzQ0MiAtMC4zOCwwLjM4IC0xMTEuNTAwMDAyLDExMS40OSBjIDAuNTcsMC41MyAxLjE0LDEuMDggMS43MywxLjU5IDEuMDQsMC45NSAyLjEsMS44OCAzLjE1LDIuODEgMC41NSwwLjQ4IDEuMDgsMC45NiAxLjYzLDEuNDQgMS4yNiwxLjA5IDIuNTQsMi4xNSAzLjgxLDMuMjIgMC4zNSwwLjI5IDAuNjgsMC41NyAxLjAzLDAuODYgYSAyNTUuNTc2LDI1NS41NzYgMCAwIDAgNC45MSwzLjk0IGMgMS41OCwxLjI1IDMuMTcsMi40NiA0Ljc5LDMuNjggMC4wNywwLjA0IDAuMTIsMC4wOCAwLjE4LDAuMTMgYSAyNjYuNDgsMjY2LjQ4IDAgMCAwIDIwLjg2LDE0LjEgYyAwLjI0LDAuMTYgMC40OSwwLjMgMC43NCwwLjQ2IDEuMzcsMC44MSAyLjczLDEuNjIgNC4xMSwyLjQyIGwgMi41MiwxLjQ0IGMgMC44LDAuNDYgMS41OSwwLjkgMi4zOSwxLjM0IDEuNDUsMC43OSAyLjksMS41OCA0LjM2LDIuMzUgMC4yLDAuMTEgMC40LDAuMjIgMC42MSwwLjMyIDQuMDUsMi4xMiA4LjE3MDAwMiw0LjA5IDEyLjMzMDAwMiw1Ljk5IGwgMy45NiwtOS42MSA1Ni4wOCwtMTM2LjE3IDAuMiwtMC41IGMgLTYuMTIsLTMuMjggLTExLjk5LC03LjE2IC0xNy41MSwtMTEuNjggeiINCiAgICAgZmlsbD0iIzRkNWEzMSINCiAgICAgaWQ9InBhdGgxMDMxNDYiIC8+DQogIDxwYXRoDQogICAgIGQ9Im0gMTM3LjI0Njg3LDIzOS40MjQ0MiBhIDk1LjQ5Miw5NS40OTIgMCAwIDEgLTMuNDgsLTQuMSBjIC0xLC0xLjIzIC0xLjk2LC0yLjQ3IC0yLjg5LC0zLjczIC0xLjA3LC0xLjQ0IC0yLjExLC0yLjkgLTMuMSwtNC4zOCAtMC45OSwtMS40OSAtMS45NywtMi45OSAtMi44OSwtNC41MSBsIC0xMzUuMzYwMDAyLDgxLjUzIGMgMi4wODAwMDAzLDMuNDYgNC4yNDAwMDAzLDYuODIgNi40NjAwMDAzLDEwLjE0IDAuMDcsMC4xMiAwLjE0LDAuMjQgMC4yMiwwLjM1IDAuMDIsMC4wNSAwLjA1LDAuMDggMC4wOCwwLjEzIDAuMDcsMC4xIDAuMTQsMC4yMiAwLjIxLDAuMzMgMC4wMSwwLjAxIDAuMDIsMC4wMiAwLjAyLDAuMDQgMC4xOCwwLjI2IDAuMzYsMC41MiAwLjU0LDAuNzkgMC4wMSwwLjAxIDAuMDIsMC4wMyAwLjA0LDAuMDUgMC4wMiwwLjAyIDAuMDEsMC4wMSAwLjAxLDAuMDIgMi4zNDk5OTk5NiwzLjQ3IDQuNzcsNi44OSA3LjI2LDEwLjIzIDAuMDUsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDAuMDYsMC4wNyAwLjExLDAuMTQgMC4xNiwwLjIxIDEuMDksMS40MyAyLjE3LDIuODYgMy4yOSw0LjI4IDAuMTUsMC4xOSAwLjI5LDAuMzcgMC40NSwwLjU1IDEuMTQsMS40NyAyLjMwOTk5OTcsMi45MiAzLjQ5OTk5OTcsNC4zNSAwLjI4LDAuMzQgMC41NywwLjY4IDAuODUsMS4wMyAxLjA3LDEuMjggMi4xNCwyLjU1IDMuMjMsMy44MSAwLjQ3LDAuNTQgMC45NSwxLjA5IDEuNDMsMS42MiAwLjkzLDEuMDYgMS44NSwyLjEyIDIuOCwzLjE2IDAuNTIsMC41NyAxLjA2LDEuMTUgMS41OSwxLjcyIDAuMjQsMC4yNyAwLjQ4LDAuNTIgMC43MywwLjc5IDAuNjksMC43NSAxLjM4LDEuNSAyLjA4LDIuMjQgMC4yOCwwLjI5IDAuNTgsMC41OCAwLjg2LDAuODggMS4yMywxLjI4IDIuNDgsMi41NyAzLjc0LDMuODMgbCAxMTEuNjcwMDAyLC0xMTEuNjUgYyAtMS4yOCwtMS4yOCAtMi40OCwtMi42IC0zLjY2LC0zLjkyIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTQ4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI4NS4yNTY4NywyNTAuNDc0NDIgYyAtMS4yMywwLjk5IC0yLjQ3LDEuOTYgLTMuNzMsMi44OSBsIDAuMjcsMC40NyA4MS40MiwxMzUuMTMgYyAzLjc3LC0yLjQ2IDcuNSwtNSAxMS4xNCwtNy42NyA3Ljg4LC01LjgxIDE1LjUsLTEyLjExIDIyLjg1LC0xOC44OSBsIC0xMTEuNTEsLTExMS40OSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1MCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAzNTEuMzg2ODcsMzkwLjA3NDQyIC0yLjc2LC00LjU5IC03NiwtMTI2LjEzIGMgLTEuNTQsMC45MiAtMy4xMSwxLjc2IC00LjY4LDIuNiAtMS41OSwwLjg2IC0zLjE4LDEuNjUgLTQuOCwyLjQyIC0xNC42LDYuOTIgLTMwLjQsMTAuNDYgLTQ2LjIzLDEwLjQ2IC0xMC4zNywwIC0yMC43MywtMS41IC0zMC43NSwtNC40OSAtMS43MSwtMC41MSAtMy4zOCwtMS4xOCAtNS4wNiwtMS43OCAtMS42OSwtMC41OSAtMy40LC0xLjExIC01LjA2LC0xLjc5IGwgLTU2LjA0LDEzNi4wOCAtMi4xOSw1LjMzIC0xLjg4LDQuNTcgLTAuMDEsMC4wMiBjIDAuMTQsMC4wNiAwLjI5LDAuMTEgMC40MywwLjE3IDAuMTYsMC4wNiAwLjMxLDAuMTEgMC40NiwwLjE4IGggMC4wMiBjIDAuMDQsMC4wMiAwLjA4LDAuMDMgMC4xMSwwLjA0IDEuMzIsMC41NSAyLjY1LDEuMDEgMy45OCwxLjUzIDEuNjcsMC42NSAzLjMzLDEuMzEgNSwxLjkyIDAuODYsMC4zMSAxLjcsMC42NyAyLjU1LDAuOTcgaCAwLjAxIGEgMjY3LjQyLDI2Ny40MiAwIDAgMCA1NC4xOSwxMi45NyBjIDAuNzMsMC4wOSAxLjQ0LDAuMTkgMi4xNywwLjI5IDAuNzUsMC4wOSAxLjUxLDAuMTYgMi4yNywwLjI1IDEuNDIsMC4xNiAyLjg0LDAuMzIgNC4yNywwLjQ2IGwgMS4wNiwwLjA5IGMgMS43NSwwLjE3IDMuNSwwLjMyIDUuMjQsMC40NCAwLjYsMC4wNSAxLjIsMC4wNyAxLjc5LDAuMTIgMS41MywwLjEgMy4wNiwwLjE5IDQuNTksMC4yNiAwLjk0LDAuMDYgMS44OCwwLjA4IDIuODIsMC4xMiAxLjIyLDAuMDQgMi40MywwLjA5IDMuNjUsMC4xMyAxLjc1LDAuMDQgMy41MiwwLjA1IDUuMjgsMC4wNiAwLjQyLDAgMC44MywwLjAxIDEuMjUsMC4wMiAxNC43NSwwIDI5LjUsLTEuMjMgNDQuMDksLTMuNjggMC4yNCwtMC4wNCAwLjQ5LC0wLjA4IDAuNzQsLTAuMTEgMS41NCwtMC4yNyAzLjA4LC0wLjU2IDQuNjIsLTAuODQgMC44OCwtMC4xNyAxLjc3LC0wLjM0IDIuNjMsLTAuNTEgMC45LC0wLjE5IDEuODEsLTAuMzcgMi43MSwtMC41NyAxLjUsLTAuMzEgMywtMC42NCA0LjUxLC0wLjk5IDAuMjcsLTAuMDYgMC41NCwtMC4xMSAwLjgxLC0wLjE5IDIyLjE4LC01LjE2IDQzLjYsLTEzLjE2IDYzLjcyLC0yMy43NSB2IC0wLjAxIGMgMS4zMiwtMC42OSAyLjYxLC0xLjQ4IDMuOTIsLTIuMiAxLjU2LC0wLjg1IDMuMTEsLTEuNzQgNC42NywtMi42MyAxLjA3LC0wLjYxIDIuMTYsLTEuMTggMy4yMywtMS44MiAwLjAxLC0wLjAxIDAuMDIsLTAuMDIgMC4wMywtMC4wMiBoIDAuMDEgYyAwLjAyLC0wLjAxIDAuMDMsLTAuMDIgMC4wNSwtMC4wMyBsIDAuMDIsLTAuMDIgLTAuMiwtMC4zMyAwLjIsMC4zMyBjIDAuMDEsMCAwLjAyLC0wLjAxIDAuMDMsLTAuMDEgMC4wMiwtMC4wMSAwLjAzLC0wLjAyIDAuMDUsLTAuMDMgMC4wNiwtMC4wNCAwLjEyLC0wLjA3IDAuMTgsLTAuMTEgMC4zNCwtMC4yMSAwLjY5LC0wLjQxIDEuMDQsLTAuNjIgeiBtIC0yMDIuNDcsLTMwNi4yMjAwMDcgYyAxLjIzLC0xIDIuNDgsLTEuOTYgMy43MywtMi45IGwgLTAuMjcsLTAuNDYgLTgxLjQyMDAwMiwtMTM1LjE0IGMgLTMuNzgsMi40NyAtNy41MSw1LjAyIC0xMS4xNiw3LjY5IC03Ljg3LDUuOCAtMTUuNSwxMi4wOSAtMjIuODMsMTguODYgbCAxMTEuNTEwMDAyLDExMS41IHoiDQogICAgIGZpbGw9IiM5M2Q1MDAiDQogICAgIGlkPSJwYXRoMTAzMTUyIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDI5LjIzNjg2OCwtMjAuNjY1NTg3IGMgLTEuMjcsMS4yNyAtMi40NywyLjU4IC0zLjcxLDMuODYgLTEuMjMsMS4yOSAtMi40OSwyLjU3IC0zLjcsMy44NyBhIDI2Ni4xNTYsMjY2LjE1NiAwIDAgMCAtMjIuNTU5OTk5NzQsMjcuOTYgYyAtMC4zMjk5OTk5NiwwLjQ1IC0wLjY0OTk5OTk2LDAuOTMgLTAuOTc5OTk5OTYsMS4zOSAtMC43NiwxLjEyIC0xLjUyLDIuMjMgLTIuMjYsMy4zNSAtMC43OCwxLjE2IC0xLjU1LDIuMzQgLTIuMywzLjUxIC0wLjI4LDAuNDMgLTAuNTYsMC44NyAtMC44MywxLjMgLTI1LjY1MDAwMDMsNDAuMjMgLTM5LjM5MDAwMDMsODUuODU5OTk3IC00MS4yNDAwMDAzLDEzMS44NzAwMDcgLTAuMDcsMS43OSAtMC4xMSwzLjU4IC0wLjE1LDUuMzYgLTAuMDMsMS43OCAtMC4wOSwzLjU3IC0wLjA5LDUuMzUgSCAxMDkuMzQ2ODcgYyAwLC0xLjc4IDAuMTYsLTMuNTYgMC4yNiwtNS4zNSAwLjA5LC0xLjc5IDAuMTEsLTMuNTggMC4yOSwtNS4zNiAyLjA0LC0yMC41NiA5Ljk4LC00MC42NCAyMy44MiwtNTcuNTAwMDA3IDEuMTIsLTEuMzcgMi4zOSwtMi42NiAzLjYsLTMuOTggMS4xOSwtMS4zMyAyLjMxLC0yLjcgMy41OSwtMy45OCB6IG0gMzI1Ljg1MDAwMiwtMzkuMiBjIC0wLjIxLC0wLjEzIC0wLjQ0LC0wLjI2IC0wLjY1LC0wLjM5IC0xLjM5LC0wLjg1IC0yLjc5LC0xLjY3IC00LjIsLTIuNDkgLTAuODEsLTAuNDcgLTEuNjMsLTAuOTMgLTIuNDQsLTEuMzkgLTAuODMsLTAuNDYgLTEuNjQsLTAuOTIgLTIuNDcsLTEuMzcgYSA5MDEuNCw5MDEuNCAwIDAgMCAtNC4yOSwtMi4zMiBjIC0wLjIzLC0wLjExIC0wLjQ1LC0wLjIzIC0wLjY4LC0wLjM1IC05LjI2LC00Ljg0IC0xOC43NywtOS4xIC0yOC40OCwtMTIuOCAtMC4yNSwtMC4xIC0wLjUsLTAuMiAtMC43NSwtMC4yOSAtMi4xMiwtMC43OSAtNC4yNCwtMS41OCAtNi4zOCwtMi4zMiBhIDI2Ny4wODQsMjY3LjA4NCAwIDAgMCAtNTMuMjEsLTEyLjYyOTk5NyBsIC0yLjIyLC0wLjMgYyAtMC43NSwtMC4wOSAtMS40OSwtMC4xNiAtMi4yMywtMC4yNCAtMS40MywtMC4xNyAtMi44NSwtMC4zMyAtNC4yOSwtMC40NyAtMC4zOSwtMC4wNCAtMC43OSwtMC4wNiAtMS4yLC0wLjExIC0xLjY5LC0wLjE1IC0zLjQsLTAuMyAtNS4xLC0wLjQzIGwgLTEuOTksLTAuMTIgYyAtMS40NSwtMC4wOSAtMi45MywtMC4yIC00LjM4LC0wLjI2IC0wLjc4LC0wLjA0IC0xLjU2LC0wLjA3IC0yLjMzLC0wLjA5IFYgNjAuMDU0NDEzIGMgOC4xMiwwLjg0IDE2LjE3LDIuNTcgMjMuOTgsNS4yMiBsIDExNi41MSwtMTE2LjQ5IGMgLTQuMzMsLTMgLTguNywtNS45MiAtMTMuMiwtOC42NSB6Ig0KICAgICBmaWxsPSIjNGQ1YTMxIg0KICAgICBpZD0icGF0aDEwMzE1NCIgLz4NCiAgPHBhdGgNCiAgICAgZD0ibSAyMTEuNzM2ODcsLTk4LjM2NTU4NCBjIC0xLjc5LDAuMDQgLTMuNTgsMC4wNCAtNS4zNiwwLjExIC0xMS4xNywwLjQ1IC0yMi4zMiwxLjU5IC0zMy4zOCwzLjQ1IC0wLjI0LDAuMDQgLTAuNDgsMC4wOCAtMC43MywwLjEyIC0xLjU1LDAuMjcgLTMuMDksMC41NSAtNC42MywwLjg0IC0wLjg3LDAuMTcgLTEuNzUsMC4zMyAtMi42MywwLjUgLTAuOTEsMC4xOCAtMS44MSwwLjM3IC0yLjcyLDAuNTcgLTEuNSwwLjMxIC0zLDAuNjQgLTQuNDksMC45OSAtMC4yOCwwLjA1IC0wLjU1LDAuMTIgLTAuODIsMC4xOCBhIDI2Ny40NjUsMjY3LjQ2NSAwIDAgMCAtNjMuNzMwMDAyLDIzLjc1OTk5NyBjIC0xLjMxLDAuNyAtMi41OSwxLjQ5IC0zLjksMi4yIC0xLjU2LDAuODYgLTMuMTIsMS43NCAtNC42NywyLjYzIC0xLjE1LDAuNjcgLTIuMzIsMS4yOCAtMy40NywxLjk2IC0wLjAxLDAuMDEgLTAuMDMsMC4wMiAtMC4wNCwwLjAyIC0wLjA4LDAuMDUgLTAuMTYsMC4xIC0wLjI0LDAuMTQgLTAuMywwLjE5IC0wLjYxLDAuMzQgLTAuOTEsMC41MiBsIDAuMDEsMC4wMiAyLjc3LDQuNTkgNzguNzUwMDAyLDEzMC43MyBjIDEuNTQsLTAuOTIgMy4xMSwtMS43NyA0LjY4LC0yLjYxIDEuNTgsLTAuODUgMy4xOCwtMS42NSA0Ljc5LC0yLjQxIGEgMTA3LjI1LDEwNy4yNSAwIDAgMSAzNS4zNiwtOS45MSBjIDEuNzgsLTAuMTggMy41NiwtMC4zMyA1LjM1LC0wLjQyIDEuNzgsLTAuMDkgMy41NywtMC4xOCA1LjM2LC0wLjE4IFYgLTk4LjQ3NTU4NCBjIC0xLjc5LDAgLTMuNTcsMC4wOCAtNS4zNSwwLjExIHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTU2IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDQ4Mi40MjY4NywxNTQuMTA0NDIgYyAtMC4wOCwtMS40MiAtMC4xNiwtMi44MyAtMC4yNiwtNC4yNiBhIDc1LjQsNzUuNCAwIDAgMCAtMC4xNCwtMi4xMiBjIC0wLjExLC0xLjY3IC0wLjI1LC0zLjM0IC0wLjQxLC01LjAxIC0wLjAzLC0wLjQzIC0wLjA3LC0wLjg2IC0wLjExLC0xLjI5IC0wLjE4LC0xLjg3IC0wLjM4LC0zLjczIC0wLjYsLTUuNTkgLTAuMDIsLTAuMTUgLTAuMDMsLTAuMyAtMC4wNSwtMC40NSBsIC0wLjAzLC0wLjIxIGMgLTAuMjQsLTIuMDEgLTAuNTEsLTQuMDIgLTAuNzksLTYuMDIgbCAtMC4wMywtMC4xOSBhIDI2Ni40NTQsMjY2LjQ1NCAwIDAgMCAtOC4xNiwtMzcuMzMwMDA3IGMgLTAuMDMsLTAuMDkgLTAuMDUsLTAuMTYgLTAuMDgsLTAuMjQgLTAuNTcsLTEuOTEgLTEuMTYsLTMuOCAtMS43NSwtNS42OSAtMC4wOSwtMC4yNSAtMC4xNywtMC41IC0wLjI1LC0wLjc1IC0wLjU2LC0xLjcxIC0xLjEzLC0zLjQxIC0xLjcyLC01LjExIGwgLTAuNDgsLTEuMzggYyAtMC41MiwtMS40NyAtMS4wNiwtMi45NCAtMS42LC00LjQxIC0wLjI3LC0wLjcgLTAuNTMsLTEuNCAtMC44MSwtMi4wOSAtMC40NiwtMS4yMiAtMC45MywtMi40MyAtMS40MiwtMy42MyAtMC4zOCwtMC45NyAtMC43NywtMS45MiAtMS4xNiwtMi44NiAtMC4zOSwtMC45NSAtMC43OSwtMS44OCAtMS4xOCwtMi44MiAtMC41MiwtMS4yIC0xLjA1LC0yLjQgLTEuNTgsLTMuNTkgLTAuMywtMC42NyAtMC42LC0xLjM1IC0wLjkxLC0yLjAzIC0wLjY1LC0xLjQyIC0xLjMyLC0yLjg1IC0xLjk5LC00LjI3IC0wLjIxLC0wLjQyIC0wLjQyLC0wLjg2IC0wLjYzLC0xLjI5IC0wLjc4LC0xLjYyIC0xLjU4LC0zLjI1IC0yLjQsLTQuODUgLTAuMTEsLTAuMjIgLTAuMjMsLTAuNDUgLTAuMzQsLTAuNjcgLTAuOTEsLTEuNzcgLTEuODUsLTMuNTUgLTIuNzksLTUuMyAtMC4wNCwtMC4wNiAtMC4wNywtMC4xMyAtMC4xMSwtMC4xOSBhIDI2Ni45OSwyNjYuOTkgMCAwIDAgLTE1LjExLC0yNC41MiBsIC0xMTYuNTQsMTE2LjU0MDAwNyBjIDIuNjUsNy44MSA0LjM3LDE1Ljg2IDUuMjEsMjMuOTcgaCAxNTguMzIgYyAtMC4wNCwtMC43OSAtMC4wNiwtMS41OCAtMC4xLC0yLjM1IHoiDQogICAgIGZpbGw9IiM0ZDVhMzEiDQogICAgIGlkPSJwYXRoMTAzMTU4IiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDMyNC44MjY4NywxNjcuMTU0NDIgYyAwLDEuNzkgLTAuMTcsMy41NyAtMC4yNiw1LjM2IC0wLjA5LDEuNzkgLTAuMTIsMy41OCAtMC4zLDUuMzUgLTIuMDQsMjAuNTcgLTkuOTcsNDAuNjUgLTIzLjgxLDU3LjUyIC0xLjEyLDEuMzcgLTIuMzksMi42NSAtMy42LDMuOTggLTEuMiwxLjMyIC0yLjMxLDIuNjkgLTMuNTksMy45NyBsIDExMS42NywxMTEuNjUgYyAxLjI3LC0xLjI3IDIuNDYsLTIuNTggMy43LC0zLjg3IDEuMjQsLTEuMjkgMi41LC0yLjU2IDMuNywtMy44NyA4LjI2LC04Ljk1IDE1LjgyLC0xOC4zMSAyMi42MiwtMjguMDQgMC4yOCwtMC4zOSAwLjUzLC0wLjc3IDAuOCwtMS4xNSAwLjgzLC0xLjE5IDEuNjMsLTIuNCAyLjQ1LC0zLjYgMC43MSwtMS4wOCAxLjQyLC0yLjE1IDIuMTEsLTMuMjQgMC4zNSwtMC41MiAwLjY5LC0xLjA2IDEuMDIsLTEuNTggMjUuNjEsLTQwLjIxIDM5LjMyLC04NS43OSA0MS4xNiwtMTMxLjc3IDAuMDcsLTEuNzggMC4xMSwtMy41NyAwLjE0LC01LjM2IDAuMDQsLTEuNzggMC4wOSwtMy41NiAwLjA5LC01LjM1IHoiDQogICAgIGZpbGw9IiM2YmE0M2EiDQogICAgIGlkPSJwYXRoMTAzMTYwIiAvPg0KICA8cGF0aA0KICAgICBkPSJtIDUyOS42NDY4NywtMTQ1LjM3NTU4IGMgLTI4Ljg5LC0yOC44OSAtNzUuNzMsLTI4Ljg5IC0xMDQuNjIsMCAtMjMuMDUsMjMuMDQgLTI3LjY2LDU3LjQ4OTk5NiAtMTMuOTMsODUuMTQ5OTkzIGwgLTE2MS4xNiwxNjEuMTQ5OTk3IGMgLTI3LjY2LC0xMy43MTk5OTcgLTYyLjEyLC05LjExOTk5NyAtODUuMTcsMTMuOTIwMDEgLTI4Ljg5LDI4Ljg5IC0yOC44OCw3NS43MyAwLDEwNC42MiAyOC45LDI4Ljg5IDc1Ljc1LDI4Ljg4IDEwNC42NCwwIDIzLjA1LC0yMy4wNSAyNy42NSwtNTcuNSAxMy45MiwtODUuMTYgbCAxNjEuMTYsLTE2MS4xNDAwMDcgYyAyNy42NywxMy43MiA2Mi4xMSw5LjEyIDg1LjE2LC0xMy45MyAyOC44OSwtMjguODggMjguODksLTc1LjcxOTk5MyAwLC0xMDQuNjA5OTkzIHoiDQogICAgIGZpbGw9IiM0MjQxNDMiDQogICAgIGlkPSJwYXRoMTAzMTYyIiAvPg0KPC9zdmc+DQo=\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDQyNiA0MjAiIHdpZHRoPSI0MjYuMHB0IiBoZWlnaHQ9IjQyMC4wcHQiPg0KDQo8cGF0aCBkPSJNIDE1Ny42NCA2LjEwIEMgMTYwLjIxIDYuNDIgMTYxLjQwIDguMjEgMTYzLjEyIDkuOTEgQyAxNjkuNjkgMTYuOTkgMTc2LjcyIDIzLjYyIDE4My4zNSAzMC42NCBDIDE5MS4xMyAzOS40OCAyMDAuMDQgNDcuMjAgMjA3LjgwIDU2LjA3IEMgMjAzLjU0IDYxLjA4IDE5OC42NCA2NS4zNSAxOTQuMDkgNzAuMDkgQyAxODEuNTYgODIuOTAgMTY4LjUxIDk1LjE3IDE1Ni4wNiAxMDguMDYgQyAxNTQuMTcgMTEwLjA0IDE1Mi4wOCAxMTEuNzUgMTQ5LjgyIDExMy4yOSBDIDE0OC45OCAxMDUuODQgMTUwLjk0IDk4LjY4IDE1MC40MyA5MS4yMiBDIDE0NS42MCA5Mi40MyAxNDEuMTQgOTQuNDUgMTM2Ljc2IDk2Ljc3IEMgMTEzLjY0IDEwOC40MiA5Mi4xNCAxMjcuMTggODAuNzEgMTUwLjczIEMgNzMuODMgMTY0LjE1IDcwLjI5IDE3OC45NyA2OS41OCAxOTQuMDAgQyA2OS42MCAyMDAuMzMgNjkuMzQgMjA2LjcyIDY5Ljg1IDIxMy4wMyBDIDcwLjk2IDIyMi44MyA3Mi4zNyAyMzIuNTMgNzUuMjMgMjQxLjk5IEMgNzUuODggMjQ0LjY4IDc3LjE4IDI0OC4xMyA3Ni4zNiAyNTAuODUgQyA3NC4zMyAyNTIuNDYgNzEuNTAgMjUzLjIzIDY5LjA5IDI1NC4xNiBDIDU1LjIyIDI1OS4xMyA0MS43MSAyNjUuMTYgMjcuNzcgMjY5LjkxIEMgMjUuMzMgMjYzLjI1IDIzLjkzIDI1Ni4zOSAyMi40NCAyNDkuNDggQyAyMC43MSAyNDAuNzggMTguNjcgMjMxLjgyIDE4LjI5IDIyMy4wMCBDIDE3LjIwIDIxMy42MSAxNy40OCAyMDQuNDQgMTcuNDYgMTk1LjAwIEMgMTcuMzYgMTgyLjg2IDE5LjE3IDE3MC43OSAyMS45MCAxNTguOTggQyAyOS4wNiAxMjguMDUgNDYuMTQgOTkuODkgNjkuNzcgNzguNzYgQyA4MC41NCA2OS4yOSA5Mi4yMSA2MC41NyAxMDQuODUgNTMuNzUgQyAxMjAuOTcgNDQuNjggMTM4LjM2IDM3LjQ1IDE1Ni4zMyAzMy4wMCBDIDE1Ni45OCAyMy44NSAxNTUuOTQgMTQuOTIgMTU3LjY0IDYuMTAgWiIgZmlsbD0iI2EyNDM0MiIgLz4NCjxwYXRoIGQ9Ik0gMTYxLjg2IDE1LjMxIEMgMTY4Ljc4IDIwLjc2IDE3NC4yNyAyOC4yNiAxODAuNjEgMzQuMzkgQyAxODYuODkgNDAuNDYgMTkyLjY0IDQ3LjAzIDE5OS4wNCA1Mi45OCBDIDIwMC4wMiA1NC4xMyAyMDIuMjAgNTUuNjcgMjAxLjMyIDU3LjM5IEMgMTk4Ljg4IDYwLjQ3IDE5NS4yNiA2Mi42NyAxOTIuNDkgNjUuNDkgQyAxODQuMTUgNzMuODIgMTc1Ljg3IDgyLjIwIDE2Ny40OCA5MC40OSBDIDE2My4xOSA5NC42NSAxNTkuMzkgOTkuMTMgMTU0LjY0IDEwMi44MSBDIDE1NC4yNSA5Ni45NyAxNTQuODkgOTEuMjMgMTU1LjMxIDg1LjQxIEMgMTQ4Ljg0IDg2LjA5IDE0My42MyA4OC45OSAxMzcuODIgOTEuNjQgQyAxMzEuMjYgOTQuODggMTI0LjQ5IDk4LjI1IDExOC41NyAxMDIuNTYgQyAxMTMuMDkgMTA2LjU1IDEwNy43MCAxMTAuMDYgMTAyLjkzIDExNC45MiBDIDk3LjA2IDEyMS4wMCA5MC45NSAxMjYuMjIgODYuMjcgMTMzLjM1IEMgNzIuMjQgMTUyLjg5IDY0LjgzIDE3Ni45NiA2NS40MyAyMDEuMDAgQyA2NS4wOCAyMTMuODAgNjcuMDkgMjI2LjI1IDcwLjE5IDIzOC42MyBDIDcxLjA0IDI0MS45MSA3MS41MSAyNDUuMjMgNzEuNzkgMjQ4LjU5IEMgNTkuNjAgMjUzLjQ4IDQ3LjI2IDI1Ny45MiAzNS4xMCAyNjIuODggQyAzMy44MSAyNjMuMzMgMzAuMjIgMjY0LjQ5IDI5Ljc4IDI2Mi40NSBDIDI1Ljc3IDI0OC4xNyAyMy41OCAyMzMuODUgMjIuMTQgMjE5LjEzIEMgMjEuMDcgMjExLjI3IDIxLjU2IDIwMi45OSAyMS40NCAxOTUuMDAgQyAyMS4zMiAxODcuMjUgMjIuNDcgMTc5LjkzIDIzLjUxIDE3Mi4yMSBDIDI2LjEwIDE1NC4yNCAzMi4zMSAxMzYuNzYgNDEuMTAgMTIwLjkwIEMgNDYuOTQgMTExLjA5IDUzLjYwIDEwMS42NSA2MS4xOSA5My4xMSBDIDc1LjQ5IDc3LjI3IDkzLjEzIDY1LjE3IDExMS42MyA1NC43NCBDIDExOC4yMSA1MS4xNyAxMjUuMTcgNDguMjYgMTMyLjA1IDQ1LjMwIEMgMTQxLjIyIDQxLjQ3IDE1MC43NiAzOC45OSAxNjAuMjIgMzYuMDQgQyAxNjEuMDggMjkuMTYgMTYwLjY2IDIyLjEwIDE2MS44NiAxNS4zMSBaIiBmaWxsPSIjZTdiYWI4IiAvPg0KPHBhdGggZD0iTSAyNDQuODAgMjguNTYgQyAyNDcuNDMgMjguMTAgMjUwLjA5IDI4LjY2IDI1Mi42NCAyOS4zMCBDIDI2My4wOCAzMi4xNiAyNzMuNDEgMzUuMzYgMjgzLjQ2IDM5LjM5IEMgMzAzLjQwIDQ3LjAxIDMyMi4yMiA1Ny43NiAzMzguNzkgNzEuMjMgQyAzNDUuNDggNzYuODEgMzUxLjY4IDgzLjAyIDM1Ny41MCA4OS41MCBDIDM3Mi43NCAxMDcuMDQgMzgzLjgzIDEyNy45NiAzODkuODcgMTUwLjM5IEMgMzkyLjQwIDE1OC43OCAzOTMuNzUgMTY3LjM4IDM5NS4wNyAxNzYuMDEgQyAzOTUuOTcgMTgyLjU3IDM5NS4zNyAxODkuMzcgMzk1Ljk3IDE5NS45MCBDIDM5Ni44OCAyMDMuNTYgMzk2LjYxIDIxMS4xMyAzOTUuNjggMjE4Ljc3IEMgMzk1LjQ2IDIyNS40OCAzOTQuNDIgMjMyLjA1IDM5My4zNiAyMzguNjYgQyAzOTIuNTkgMjQ0LjU2IDM5MC42MCAyNTAuMDkgMzkwLjI0IDI1Ni4wNSBDIDM5Ny40MyAyNjAuNDUgNDA0Ljc2IDI2NC41OSA0MTEuOTAgMjY5LjA3IEMgNDExLjc3IDI2OS44MyA0MTEuNjQgMjcwLjU4IDQxMS41MSAyNzEuMzQgQyA0MDYuMTcgMjcyLjY4IDQwMC44NSAyNzQuMDggMzk1LjU1IDI3NS41NyBDIDM4Mi44NCAyNzkuMzUgMzY5Ljk2IDI4Mi41MSAzNTcuMjIgMjg2LjE3IEMgMzUzLjI2IDI4Ny4yMiAzNDkuMjcgMjg4LjY4IDM0NS4yMSAyODkuMjcgQyAzNDMuNzYgMjg4LjU2IDM0My41OCAyODcuNDIgMzQzLjEwIDI4Ni4wMSBDIDMzNy45OSAyNjYuODcgMzMyLjM0IDI0Ny45MCAzMjcuMTUgMjI4Ljc3IEMgMzI1LjU0IDIyMi42MyAzMjIuODEgMjE3LjY0IDMyMy40NSAyMTEuMTEgQyAzMzAuMDEgMjE0LjMyIDMzNS4zNCAyMTkuOTQgMzQyLjIzIDIyMi4wMyBDIDM0Mi43NSAyMTcuMzUgMzQzLjUyIDIxMi43NCAzNDMuNDggMjA4LjAwIEMgMzQzLjU0IDIwMC4xMiAzNDMuODEgMTkxLjkwIDM0Mi41MCAxODQuMTcgQyAzNDEuMDUgMTc1LjA3IDMzOS40MiAxNjUuNTEgMzM2LjE0IDE1Ni44OCBDIDMzMi4zMiAxNDYuMjEgMzI2Ljg3IDEzNi4wMyAzMTkuOTYgMTI3LjA0IEMgMzA2LjQ3IDEwOS41NiAyODguMDggOTcuNTYgMjY3LjY2IDg5LjYwIEMgMjU5LjM0IDg2LjQ2IDI1MS4wMyA4My41OCAyNDIuMTkgODIuMjcgQyAyMzkuODEgODEuODEgMjM4LjA1IDgwLjgyIDIzOC40MSA3OC4wNSBDIDIzOS4wMyA2OC4yMSAyNDEuODYgNTguNzAgMjQxLjU1IDQ4LjcwIEMgMjQxLjg1IDQ4LjkyIDI0Mi4xNSA0OS4xNCAyNDIuNDUgNDkuMzYgQyAyNDIuOTkgNDIuNDAgMjQ0LjAxIDM1LjQ4IDI0NC44MCAyOC41NiBaIiBmaWxsPSIjNWI3MDM2IiAvPg0KPHBhdGggZD0iTSAyNTMuMzEgMzMuODIgQyAyNzMuMzkgMzkuMzcgMjkyLjgzIDQ2Ljg4IDMxMC45OCA1Ny4xNSBDIDMyMS4zNiA2My42NyAzMzIuMTQgNzAuNTQgMzQxLjA3IDc4LjkxIEMgMzQ1LjMwIDgyLjQyIDM0OS4yMiA4Ni4wNiAzNTIuNjEgOTAuNDIgQyAzNjEuNjMgMTAwLjQwIDM2OS4zNSAxMTEuNjkgMzc1LjE3IDEyMy44MyBDIDM4NC4yMCAxNDEuMjMgMzg5LjA5IDE2MS4xMSAzOTEuMzMgMTgwLjUxIEMgMzkzLjA4IDE5MC4wOCAzOTIuMjUgMTk5LjM0IDM5Mi40NiAyMDkuMDAgQyAzOTIuNjQgMjE1Ljc5IDM5MS4yMiAyMjIuMjEgMzkwLjUwIDIyOC45MSBDIDM4OS42MyAyMzcuMDkgMzg3LjkwIDI0NS4xMCAzODUuODQgMjUzLjA1IEMgMzg1LjY1IDI1NC40OSAzODQuNzAgMjU2Ljg0IDM4Ni4wMyAyNTcuOTUgQyAzODkuOTQgMjYxLjcyIDM5NS43NyAyNjQuMTMgNDAwLjQwIDI2Ni44NiBDIDQwMS4zMyAyNjcuMzcgNDAxLjQzIDI2OS4wMCA0MDEuODUgMjY5LjkyIEMgMzg5LjY2IDI3Mi40NSAzNzcuNzggMjc2LjQ1IDM2NS43MSAyNzkuNDkgQyAzNTkuMjIgMjgxLjA0IDM1My41MiAyODMuNjkgMzQ2LjcyIDI4My43NCBDIDM0NC4wNiAyNzMuMTkgMzQwLjkxIDI2Mi43NiAzMzguMDcgMjUyLjI1IEMgMzM1LjE3IDI0MS40OSAzMzEuNjcgMjMxLjA3IDMyOS4yMCAyMjAuMjMgQyAzMzQuNDMgMjIyLjg3IDMzOS4xNiAyMjYuMzIgMzQ0LjM5IDIyOC45NiBDIDM0Ni45MCAyMjMuNDMgMzQ2LjU4IDIxNy44NyAzNDcuMzEgMjEyLjAwIEMgMzQ4LjE4IDIwMy40NiAzNDcuOTQgMTk1LjAxIDM0Ni44NCAxODYuNTEgQyAzNDUuMTYgMTY2LjU5IDMzOC43NCAxNDcuMTggMzI3LjU2IDEzMC41NiBDIDMyMC4xMiAxMTguNzMgMzEwLjAzIDEwOS40NSAyOTguOTQgMTAxLjEwIEMgMjg1LjQ1IDkyLjEzIDI3MC40OCA4NS4yOCAyNTQuODcgODAuOTcgQyAyNTAuNjcgNzkuODcgMjQ2LjUzIDc4LjY1IDI0Mi40MCA3Ny4yOSBDIDI0NC41NCA2My4xOSAyNDYuMjYgNDkuMDYgMjQ4LjMyIDM0Ljk2IEMgMjQ4LjU1IDMyLjE5IDI1MS42MiAzMy42MSAyNTMuMzEgMzMuODIgWiIgZmlsbD0iI2MzZDg5YyIgLz4NCjxwYXRoIGQ9Ik0gNzQuOTUgMjkwLjMzIEMgODAuMTUgMjkxLjI5IDg0Ljk5IDI5My4yMSA5MC4yMCAyOTQuNTUgQyA5OS40NCAyOTYuOTEgMTA4LjQyIDMwMC4xNSAxMTcuNjYgMzAyLjUzIEMgMTI0LjcxIDMwNC44MCAxMzEuOTAgMzA2LjU1IDEzOC45NiAzMDguNzggQyAxNDMuNjMgMzEwLjMxIDE0OC4xNyAzMTAuNzMgMTUyLjE5IDMxMy44NCBDIDE0Ni4yOCAzMTcuMzcgMTM5LjkwIDMxOS44MSAxMzMuODEgMzIzLjA1IEMgMTM2LjA3IDMyNy41MSAxMzkuOTEgMzI5LjQxIDE0My43NyAzMzIuMjMgQyAxNTUuNDAgMzQwLjM4IDE2OC4zNSAzNDYuNzggMTgxLjg4IDM1MS4wNiBDIDE5MC41OCAzNTMuNDMgMTk5Ljk0IDM1NS44MyAyMDkuMDAgMzU1LjU5IEMgMjE1LjY1IDM1NS41MiAyMjIuNDEgMzU1Ljg2IDIyOS4wMiAzNTUuMTAgQyAyNDMuODIgMzUyLjk3IDI1OC4yMSAzNDcuNjMgMjcxLjAwIDMzOS45MiBDIDI4NC41NSAzMzEuOTAgMjk2LjQ3IDMyMS43NyAzMDcuMjkgMzEwLjM4IEMgMzA5LjMzIDMxMS43NyAzMTEuMzUgMzEzLjE2IDMxMy4yNCAzMTQuNzUgQyAzMTkuMTMgMzE5Ljg1IDMyNS4yMSAzMjQuNzMgMzMxLjEwIDMyOS44MyBDIDMzNi44OSAzMzQuODIgMzQzLjIyIDMzOS4zNCAzNDguNTIgMzQ0Ljg0IEMgMzQ0LjE0IDM0OS43MSAzMzkuMjYgMzU0LjAxIDMzNC4zNSAzNTguMzIgQyAzMTYuMTggMzc0LjAwIDI5NS40NiAzODguMjkgMjczLjA0IDM5Ny4xMiBDIDI2Ny43NCAzOTkuMjkgMjYyLjUyIDQwMS41MiAyNTYuOTQgNDAyLjkyIEMgMjQ1LjA3IDQwNi4wMyAyMzIuMzEgNDA5LjA1IDIyMC4wMCA0MDguNzMgQyAyMTAuMDEgNDA4LjY1IDE5OS40OCA0MDkuMzIgMTg5LjcwIDQwNy40MCBDIDE2OS41MiA0MDQuNTQgMTUxLjAwIDM5Ny4zMCAxMzMuMDEgMzg3Ljk0IEMgMTE3LjUyIDM3OS40MyAxMDMuMTUgMzY4Ljc3IDg5Ljk3IDM1Ny4wMiBDIDg2LjM3IDM1My45MiA4My4yNCAzNDkuNTggNzkuMDYgMzQ3LjM0IEMgNzAuNzggMzUwLjI2IDYzLjQyIDM1NS42NyA1NS4wMiAzNTguNDYgQyA1NS43MCAzNTEuMjUgNTguMzkgMzQ1LjI0IDYwLjI3IDMzOC4yNSBDIDYzLjI3IDMyOC41NyA2NS44OSAzMTguNzkgNjguOTggMzA5LjE0IEMgNzAuOTcgMzAyLjc2IDcyLjE2IDI5Ni40NiA3NC45NSAyOTAuMzMgWiIgZmlsbD0iIzNjNjU5NCIgLz4NCjxwYXRoIGQ9Ik0gOTIuODMgMzAwLjA4IEMgMTAyLjY1IDMwMi45MCAxMTIuNDMgMzA1Ljg1IDEyMi4yNSAzMDguNjUgQyAxMjguMzAgMzEwLjQxIDEzNC4zNiAzMTIuMDMgMTQwLjI4IDMxNC4yMiBDIDEzNS4zNyAzMTcuMzggMTI5LjkwIDMxOS4zOCAxMjQuOTEgMzIyLjQyIEMgMTI3LjA0IDMyNC44NiAxMjkuMjYgMzI3LjE5IDEzMS44NiAzMjkuMTQgQyAxNDcuNzggMzQxLjgwIDE2NS41MSAzNTEuNjEgMTg1LjMwIDM1Ni42OSBDIDE5OS45NCAzNjAuODAgMjE1LjY5IDM2MS4yNyAyMzAuNzQgMzU5LjQyIEMgMjU4LjA0IDM1NS4xNCAyODIuMzAgMzQxLjAyIDMwMi4wMiAzMjIuMDIgQyAzMDMuODEgMzIwLjM3IDMwNS43MCAzMTguMTggMzA3Ljk5IDMxNy4yNSBDIDMxMC41MiAzMTguMzEgMzEyLjgwIDMyMC4zNyAzMTQuODcgMzIyLjE0IEMgMzE4Ljk1IDMyNS43NCAzMjMuMjEgMzI5LjEyIDMyNy4zMyAzMzIuNjggQyAzMzIuMDYgMzM2LjgzIDMzNy4xOSAzNDAuMzggMzQxLjU0IDM0NC45NyBDIDMzNy4yOCAzNDkuOTkgMzMyLjE4IDM1My45NiAzMjcuMjEgMzU4LjIzIEMgMzE3Ljc2IDM2Ni4yOCAzMDcuNTggMzczLjQ5IDI5Ni45OSAzNzkuOTcgQyAyNzEuNjQgMzk1LjE1IDI0MS4xMiA0MDUuNjQgMjExLjMzIDQwNC40OSBDIDE5MC4xOCA0MDQuOTcgMTY4LjY1IDM5OS4wNyAxNDkuMzMgMzkwLjc1IEMgMTI0LjI4IDM3OS41NCAxMDEuNDggMzYzLjIzIDgyLjY4IDM0My4yNiBDIDgxLjU4IDM0Mi40NCA4MC45MyAzNDEuMjIgNzkuNDAgMzQxLjc1IEMgNzMuMzQgMzQzLjYzIDY4Ljc4IDM0OC4wMiA2Mi4zMSAzNDkuMDYgQyA2Mi44NiAzNDUuODkgNjMuNjAgMzQyLjc4IDY0LjU4IDMzOS43MSBDIDY5LjE5IDMyNS4zOSA3My4wNSAzMTAuNzYgNzcuNjIgMjk2LjM4IEMgODMuMDYgMjk2LjcxIDg3LjY1IDI5OC42NSA5Mi44MyAzMDAuMDggWiIgZmlsbD0iIzRjODFiZiIgLz4NCjwvc3ZnPg==\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnDQogICB2ZXJzaW9uPSIxLjEiDQogICB4PSIwcHgiDQogICB5PSIwcHgiDQogICB2aWV3Qm94PSIwIDAgMzAwIDMwMCINCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiDQogICBpZD0ic3ZnNjc2NDYiDQogICB3aWR0aD0iMzAwIg0KICAgaGVpZ2h0PSIzMDAiDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcw0KICAgICBpZD0iZGVmczY3NjUwIiAvPjxwYXRoDQogICAgIGZpbGw9IiNiYWI5YmIiDQogICAgIGQ9Im0gMjAuNjA1MDEyLDE4MC42NjkwMiBjIC0zLjA0OTg4Myw0NC43MzcyOSAzMS44MDgzNyw4My42Nzg2NiA3Ny43MDU1MjQsODYuODA3NjMgMTUuMTcwNDY0LDEuMDM0MjEgMjkuNjMzMjI0LC0yLjAzODkxIDQyLjM2NjYyNCwtOC4xMzkzOCAxMS43ODc2NSw3Ljc3MjAyIDI1LjY5OTUzLDEyLjc3OTY1IDQwLjg2OTk5LDEzLjgxMzg3IDQ1Ljg5NzE1LDMuMTI4OTYgODUuNzE3ODcsLTMwLjcyMTMyIDg4Ljc2Nzc1LC03NS40NTg2IDIuMDYzNjYsLTMwLjI3MDk5IC0xMy4yNjI5MSwtNTcuODQ0ODcgLTM3LjU4NjQ5LC03My41MDg4NyAwLjY5Nzk0LC0zLjQyMDI1IDEuMjU1NjUsLTYuODkxNjcgMS40OTkwMiwtMTAuNDYxNTMgQyAyMzcuMjc3MzEsNjguOTg0ODYxIDIwMi40MTkwNSwzMC4wNDM0NDkgMTU2LjUyMTksMjYuOTE0NDk1IDExMC42MjQ3NSwyMy43ODU1NDEgNzAuODA0MDUyLDU3LjYzNTg1IDY3Ljc1NDE3LDEwMi4zNzMxMiBjIC0wLjI0MzM0NCwzLjU2OTUgLTAuMTYxOTIzLDcuMDg0NTQgMC4wNjUzNSwxMC41NjgxNyAtMjYuMjI0NDk4LDEyLjIxOTg2IC00NS4xNTEzMzksMzcuNDU2NyAtNDcuMjE1MDA5LDY3LjcyNzcgeiBtIDI0MS4zODYyMDgsMTYuNDU2MDYgYyAtMi43NDQ4MSw0MC4yNjI0MyAtMzguNTg0NjcsNzAuNzI4NzUgLTc5Ljg5MDk3LDY3LjkxMjc3IC0xMi4xNTMwMSwtMC44Mjg1IC0yMy40MDQxOSwtNC41MDQ4MSAtMzMuMjI0MTYsLTEwLjIyODc4IDIxLjQ0ODM4LC0xMy40MDQzMiAzNi4zODQzMSwtMzYuMTI2MDUgMzguMjAyMDksLTYyLjc5MDEgMC4yNDMzNSwtMy41Njk0OCAwLjE2MTksLTcuMDg0NTUgLTAuMDY1MywtMTAuNTY4MTggMjAuNTM3MjIsLTkuNTcxMTkgMzYuNTI0MDcsLTI3LjE0Mjk2IDQzLjUwNzUxLC00OC44NjA0NyAyMC41MDE4NiwxNC4zMzAzMSAzMy4yNTk3OSwzOC4yOTAyOCAzMS40NzA1Niw2NC41MzU2OCB6IE0gMTEyLjk2NjM1LDE4MC4yNzc1NiBjIDkuODIyMDIsNC45NTc5NiAyMC43OTE5Nyw4LjEwNTQ4IDMyLjQ5NTAzLDguOTAzMzIgMTEuNzAzMDgsMC43OTc4NCAyMi45OTkxNywtMC44MzE4OCAzMy40MDI3LC00LjQxMDg2IDAuMDU0NywyLjIwODg5IDAuMDQ1LDQuNDMzMzQgLTAuMTA4MjUsNi42ODA2NSAtMS43MjIwNCwyNS4yNTk3NCAtMTYuNDc2MzIsNDYuNjU1NzEgLTM3LjQzMDY2LDU4LjM5OTIxIC0xOS4xNjYzOCwtMTQuNDgyODYgLTMwLjg4MDU4LC0zNy42ODA0NSAtMjkuMTU4NjMsLTYyLjkzODgyIDAuMTUzMTcsLTIuMjQ3NDggMC40NDU0MSwtNC40NTI2OSAwLjc5OTQxLC02LjYzMzUzIHogbSAzNi42MzEsLTUxLjc2NTI1IGMgMTUuMjQ4NzYsMTEuNTIxMyAyNS43NjU4NywyOC41NjU5MyAyOC41NjY2Miw0Ny43NzcxNSAtOS45Mzk1MiwzLjc0NzIzIC0yMC44MjEzNyw1LjU1MjY5IC0zMi4xNDk2NCw0Ljc4MDQxIC0xMS4zMjgyNSwtMC43NzIyOSAtMjEuODY0NCwtNC4wMzc3OCAtMzEuMjAzMDUsLTkuMTA0NDggNS4zODE2NiwtMTguNjQ5NjkgMTguMTE0NzUsLTM0LjEwNzQzIDM0Ljc4NjA0LC00My40NTI2NCB6IG0gLTQyLjA0NzI2LDM4Ljk2NDA3IEMgOTEuMDgzNjAxLDE1NS45NjQ3NCA3OS42MDkwOTksMTM4LjI1ODE4IDc2LjY3MTA4MSwxMTguMTA5MyBjIDkuOTM5NjYsLTMuNzQ5MDQgMjAuODIxNTA2LC01LjU1NDUzIDMyLjE0OTc2OSwtNC43ODIyNSAxMi4xNTMwMiwwLjgyODUxIDIzLjQwNDIsNC41MDQ4IDMzLjIyNDE4LDEwLjIyODc4IC0xNi4xNjY5MSwxMC4xMDUyNiAtMjguNTczMSwyNS41MDg5IC0zNC40OTUwNCw0My45MjE5MyB6IG0gNTAuMjAyMDIsLTQyLjg1MTE2IGMgMTAuNTA1OTUsLTQuMzM4MzMgMjIuMTUyNDIsLTYuNDUzNTcgMzQuMzA0OTksLTUuNjI1MDkgMTEuMzI3NzksMC43NzIyNSAyMS44NjQ0Miw0LjAzNzc4IDMxLjIwMzA3LDkuMTA0NDkgLTUuNjQzNTMsMTkuNTYxNTEgLTE5LjQxMTM1LDM1LjU0NzIyIC0zNy4yOTMyMiw0NC43MTk1NSAtMy4zNjc3OCwtMTkuMDQ5NjIgLTEzLjU2ODg4LC0zNS45OTQ0NyAtMjguMjE0NzQsLTQ4LjIwMDM0IHogTSA3Ni4wNzk4ODcsMTAyLjk0MjU3IGMgMi43NDQ4MTcsLTQwLjI2MjQyNyAzOC41ODQ2NjMsLTcwLjcyODc0IDc5Ljg5MDk0MywtNjcuOTEyNzYgNDEuMzA2MjgsMi44MTU5NzkgNzIuNjc5NzgsMzcuODY0NDM4IDY5LjkzNDk2LDc4LjEyNjg2IC0wLjE1MzE3LDIuMjQ3NDkgLTAuNDQ1NCw0LjQ1MjcgLTAuNzk5NCw2LjYzMzU0IC05LjgyMjAyLC00Ljk1Nzk2IC0yMC43OTE5NywtOC4xMDU0OSAtMzIuNDk1MDMsLTguOTAzMzIgLTE1LjE3MDQ4LC0xLjAzNDIyIC0yOS42MzMyNSwyLjAzODk0IC00Mi4zNjY2Miw4LjEzOTM4IC0xMS43ODc2NywtNy43NzIwMyAtMjUuNjk5NTQsLTEyLjc3OTY2IC00MC44NzAwMiwtMTMuODEzODggLTExLjcwMzA1NSwtMC43OTc4NCAtMjIuOTk5MTU0LDAuODMxODggLTMzLjQwMjY4OCw0LjQxMDg2IC0wLjA1NDczLC0yLjIwODg4IC0wLjA0NDk1LC00LjQzMzM1IDAuMTA4MjUzLC02LjY4MDY2IHogbSAtNy4yMTE2NzcsMTguNjMwNjUgYyAzLjk3MTU2MywyMi40NjI0OCAxNy40MjU0OCw0Mi4wNDUwNyAzNi40NzM4NSw1NC4zMTMwNSAtMC42OTc5NSwzLjQyMDI0IC0xLjI1NTY2LDYuODkxNjggLTEuNDk5MDIsMTAuNDYxNTMgLTEuODE3ODcsMjYuNjY1NDMgOS44OTY4MSw1MS4yMDE3MSAyOS4zMjcwNSw2Ny4zOTM3OCAtMTAuNTA1OTQsNC4zMzgzNyAtMjIuMTUyNDMsNi40NTM1OCAtMzQuMzA0OTg3LDUuNjI1MSBDIDU3LjU1ODgyMiwyNTYuNTUwNyAyNi4xODUzMjQsMjIxLjUwMjI1IDI4LjkzMDE0LDE4MS4yMzk4MyAzMC43MTkyMTUsMTU0Ljk5NjcyIDQ2LjYxMDg4NywxMzIuOTg5NDQgNjguODY4MDM1LDEyMS41NzIyOCBaIg0KICAgICBpZD0icGF0aDY3NjQwIg0KICAgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjIuNjA3NDQiIC8+PC9zdmc+DQo=\"","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/index.mdx\";\nimport {graphql} from 'gatsby';\nexport const pageQuery = graphql`\n query PageTemplate($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PageTemplate({children}) {\n return children;\n}\nPageTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PageTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n","import * as React from 'react'\r\nimport { Button as AriakitButton } from 'ariakit/button'\r\nimport styled, { css } from '@xstyled/styled-components'\r\n\r\nconst variant =\r\n ({ background, backgroundHover, on }) =>\r\n () => {\r\n return css`\r\n background-color: ${background};\r\n color: ${on};\r\n\r\n &:hover:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n\r\n &:active:not(:disabled) {\r\n background-color: ${backgroundHover};\r\n color: ${on};\r\n }\r\n `\r\n }\r\n\r\nconst InnerButton = styled.buttonBox`\r\n appearance: none;\r\n border-radius: base;\r\n transition: base;\r\n font-weight: 500;\r\n border: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n cursor: pointer;\r\n font-size: 16;\r\n padding: 2 3;\r\n text-decoration: none !important;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: default;\r\n }\r\n\r\n &[data-variant='primary'] {\r\n ${variant({\r\n background: 'primary-600',\r\n backgroundHover: 'primary-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='success'] {\r\n ${variant({\r\n background: 'green-600',\r\n backgroundHover: 'green-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='danger'] {\r\n ${variant({\r\n background: 'red-600',\r\n backgroundHover: 'red-700',\r\n on: 'white',\r\n })}\r\n }\r\n\r\n &[data-variant='neutral'] {\r\n ${variant({\r\n background: 'gray-300',\r\n backgroundHover: 'gray-400',\r\n on: 'black',\r\n })}\r\n }\r\n`\r\n\r\nexport const Button = React.forwardRef(\r\n ({ variant = 'primary', children, ...props }, ref) => {\r\n return (\r\n \r\n {(buttonProps) => (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n )\r\n },\r\n)\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { th, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst InnerFeature = styled.box`\r\n border-left: 1;\r\n border-left-style: dashed;\r\n border-left-color: layout-border;\r\n padding-left: 4 !important;\r\n padding-right: 5 !important;\r\n`\r\n\r\nexport const Feature = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureTitle = styled.h2`\r\n margin: 3 0;\r\n font-size: 16;\r\n font-weight: 500;\r\n border-left: 1;\r\n border-color: primary-400;\r\n margin-left: ${th.px(-9)};\r\n padding-left: ${th.px(9)};\r\n`\r\n\r\nexport const FeatureText = styled.p`\r\n color: on-background-light;\r\n font-size: 15;\r\n text-align: justify;\r\n margin: 4 0;\r\n`\r\n\r\nconst InnerFeatureImage = styled.img`\r\n margin-top: 3;\r\n`\r\n\r\nexport const FeatureImage = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureList = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const FeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nexport const HeroTitle = styled.h1Box`\r\n font-size: 38;\r\n font-weight: 600;\r\n line-height: 1.2;\r\n letter-spacing: -1.12px;\r\n margin: 0 0 2;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 4;\r\n font-size: 48;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 60;\r\n `,\r\n )}\r\n`\r\n\r\nexport const HeroTeaser = styled.pBox`\r\n font-size: 18;\r\n margin: 3 0;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\n\r\nconst InnerHero = styled(ScreenContainer)`\r\n background-repeat: no-repeat;\r\n background-position: top -5% center;\r\n background-size: 100% auto;\r\n padding-top: 65%;\r\n text-align: center;\r\n\r\n ${up(\r\n 'md',\r\n css`\r\n padding-top: 0;\r\n margin-top: 5;\r\n background-position: center right;\r\n background-size: 58% auto;\r\n min-height: 400;\r\n text-align: left;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n margin-top: 6;\r\n `,\r\n )}\r\n`\r\n\r\nexport const Hero = React.forwardRef(\r\n ({ backgroundImageURL, ...props }, ref) => {\r\n return (\r\n \r\n )\r\n },\r\n)\r\n\r\nexport const HeroBody = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const HeroSection = styled.sectionBox`\r\n overflow: hidden;\r\n padding-top: 2;\r\n padding-bottom: 5;\r\n`\r\n\r\nexport const HeroActionList = React.forwardRef((props, ref) => {\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport const HeroAction = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","/* eslint-disable jsx-a11y/accessible-emoji */\r\n/* eslint-disable import/no-extraneous-dependencies */\r\nimport React from 'react'\r\nimport styled, { useColorMode, th, x } from '@xstyled/styled-components'\r\n\r\nconst ImageContainer = styled.div`\r\n text-align: ${props => props.align};\r\n`\r\nconst InnerImage = styled.img`\r\n display: inline-block;\r\n`\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const Image = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React from 'react'\r\nimport styled, { up, css, x } from '@xstyled/styled-components'\r\nimport { ScreenContainer } from './ScreenContainer'\r\n\r\nconst Cite = styled(x.cite)`\r\n display: block;\r\n text-align: right;\r\n margin-top: 1rem;\r\n`\r\n\r\nexport const Quote = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n\r\nexport const QuoteAuthor = React.forwardRef((props, ref) => {\r\n return \r\n})\r\n","import styled, {up, css, x, useColorMode} from '@xstyled/styled-components'\r\nimport React from \"react\";\r\n\r\nexport const WideFeatureSection = React.forwardRef((props, ref) => (\r\n \r\n))\r\n\r\nexport const WideFeature = styled.divBox`\r\n display: block;\r\n ${up(\r\n 'md',\r\n css`\r\n margin: 0 20px;\r\n border-top: 1px dashed;\r\n border-bottom: 1px dotted;\r\n border-color: var(--xstyled-colors-layout-border,#d4d4d8);\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n `,\r\n )})\r\n`\r\n\r\nexport const WideFeatureText = styled.divBox`\r\n padding: 1rem;\r\n grid-column-start: span 2;\r\n\r\n font-size: 18;\r\n ${up(\r\n 'md',\r\n css`\r\n font-size: 20;\r\n padding: 3rem;\r\n padding-top: 2rem;\r\n `,\r\n )}\r\n\r\n ${up(\r\n 'xl',\r\n css`\r\n font-size: 24;\r\n `,\r\n )}\r\n`\r\nconst WideFeatureImageContainer = styled.divBox`\r\n padding: 1rem;\r\n text-align: center;\r\n`\r\n\r\nconst InnerImage = styled.imgBox`\r\n display: inline-block;\r\n //max-width: 300px;\r\n`\r\n\r\nconst src = (props, colorMode) => {\r\n return colorMode === 'dark'? props.dark || props.src : props.light || props.src;\r\n}\r\nexport const WideFeatureImage = React.forwardRef((props, ref) => (\r\n \r\n \r\n \r\n))\r\n","import React, { useRef, useEffect } from 'react';\r\nimport { marginLeft } from '@xstyled/styled-components'\r\n\r\nconst Gist = ({ gist, file }) => {\r\n const iframeRef = useRef(null);\r\n\r\n const fetchGistContent = async () => {\r\n const url = file\r\n ? `https://gist.githubusercontent.com/${gist}/raw/${file}`\r\n : `https://gist.githubusercontent.com/${gist}/raw`;\r\n try {\r\n const response = await fetch(url);\r\n if (response.ok) {\r\n const text = await response.text();\r\n const lineCount = text.split('\\n').length;\r\n const lineHeight = 22; // Approximate line height in pixels\r\n const height = lineCount * lineHeight + 40;\r\n if (iframeRef.current) {\r\n iframeRef.current.style.height = `${height}px`;\r\n }\r\n } else {\r\n console.error('Failed to fetch Gist content');\r\n }\r\n } catch (error) {\r\n console.error('Error fetching Gist content:', error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchGistContent();\r\n }, [gist, file]);\r\n\r\n const src = file\r\n ? `https://gist.github.com/${gist}.pibb?file=${file}`\r\n : `https://gist.github.com/${gist}.pibb`;\r\n\r\n const gistUrl = file\r\n ? `https://gist.github.com/${gist}#file-${file.replace(/\\./g, '-').toLowerCase()}`\r\n : `https://gist.github.com/${gist}`;\r\n\r\n return (\r\n
\r\n {file && (\r\n
\r\n 🗒️\r\n \r\n {file}\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport { Gist };\r\n","export default __webpack_public_path__ + \"static/bounded-context-mapping-e7606a1679b367a38b685ca1bb77ef45.svg\";","export default __webpack_public_path__ + \"static/EventStorming-ZDL-Mapping-cb9c987d5d0aff110c5890481034ae20.png\";","export default __webpack_public_path__ + \"static/plugin-screenshot-a27ba0713f3d33cf5b761c45e4c3debc.png\";"],"names":["_createMdxContent","props","_components","Object","assign","p","ul","li","_provideComponents","components","React","ScreenContainer","HeroSection","Hero","backgroundImageURL","heroBackgroundImageURL","HeroBody","HeroTitle","HeroTeaser","HeroActionList","HeroAction","Button","variant","as","Link","to","style","marginRight","FeatureSection","FeatureList","Feature","FeatureImage","src","FeatureTitle","FeatureText","display","sdkImageURL","asyncApiImageURL","WideFeatureSection","WideFeature","WideFeatureImage","dddLogosImage","alt","className","WideFeatureText","gearsDarkImage","width","href","Image","eventStormingZDL","boundedContextMapping","pluginScreenshot","pluginRunScreenshot","wrapper","MDXLayout","PageTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX","background","backgroundHover","on","css","InnerButton","styled","ref","_ref2","AriakitButton","buttonProps","InnerFeature","col","xs","md","px","pt","pb","th","InnerFeatureImage","height","row","my","x","py","borderTop","borderBottom","borderColor","up","InnerHero","withConfig","backgroundImage","w","m","justifyContent","ImageContainer","align","InnerImage","colorMode","dark","light","visible","useColorMode","Cite","Quote","QuoteAuthor","WideFeatureImageContainer","Gist","gist","file","iframeRef","useRef","useEffect","async","url","response","fetch","ok","text","split","length","current","console","error","fetchGistContent","gistUrl","replace","toLowerCase","border","padding","borderRadius","marginLeft","fontStyle","role","target","rel","title","frameBorder","margin"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js similarity index 51% rename from component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js rename to component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js index f3cdf13..18accef 100644 --- a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js +++ b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[682],{40250:function(e,n,t){t.r(n),t.d(n,{default:function(){return o}});var a=t(27378),i=t(20951);function l(e){const n=Object.assign({h1:"h1",a:"a",div:"div",p:"p",img:"img",h2:"h2",pre:"pre",code:"code",blockquote:"blockquote",ul:"ul",li:"li"},(0,i.ah)(),e.components);return a.createElement(a.Fragment,null,a.createElement(n.h1,{id:"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk",style:{position:"relative"}},a.createElement(n.a,{href:"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk","aria-label":"generating asyncapi definition files from jdl with zenwavesdk permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating AsyncAPI definition files from JDL with ZenWaveSDK"),"\n",a.createElement(n.p,null,a.createElement(n.img,{src:"./JDL-2-AsyncAPI.svg",alt:"JDL-2-AsyncAPI"})),"\n",a.createElement(n.p,null,"Writing YAML by hand is no fun, but you can simplify the process of writing AsyncAPI definition files by using a Domain Specific Language (DSL)."),"\n",a.createElement(n.p,null,"Thanks to ZenWave SDK, you can convert JDL models into AsyncAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards."),"\n",a.createElement(n.h2,{id:"jdl-example",style:{position:"relative"}},a.createElement(n.a,{href:"#jdl-example","aria-label":"jdl example permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"JDL Example"),"\n",a.createElement(n.pre,null,a.createElement(n.code,{className:"language-zdl"},"@aggregate\r\nentity Customer {\r\n username String required minlength(3) maxlength(250)\r\n password String required minlength(3) maxlength(250)\r\n email String required minlength(3) maxlength(250)\r\n firstName String required minlength(3) maxlength(250)\r\n lastName String required minlength(3) maxlength(250)\r\n}\r\nentity Address {\r\n street String\r\n city String\r\n country String\r\n zipCode String\r\n}\r\n\r\nrelationship OneToOne {\r\n Customer{address} to Address{customer}\r\n}\n")),"\n",a.createElement(n.h2,{id:"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1",style:{position:"relative"}},a.createElement(n.a,{href:"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1","aria-label":"generating asyncapi definition files from jdl with zenwavesdk 1 permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating AsyncAPI definition files from JDL with ZenWaveSDK"),"\n",a.createElement(n.blockquote,null,"\n",a.createElement(n.p,null,"See ",a.createElement(n.a,{href:"https://zenwave360.github.io/zenwave-sdk/plugins/jdl-to-asyncapi/"},"JDL To AsyncAPI Generator")," for a complete list of options and ",a.createElement(n.a,{href:"https://github.com/zenwave360/zenwave-sdk"},"GitHub repository")," for install instructions."),"\n"),"\n",a.createElement(n.p,null,"Because JDL can only describe static aspects of your models and doesn't cover dynamic behaviour, ZenWave SDK can only infer CRUD operations from your entities, generating:"),"\n",a.createElement(n.ul,null,"\n",a.createElement(n.li,null,"One channel for each entity for both publishing Domain Events and subscribing to Commands/Requests."),"\n",a.createElement(n.li,null,"Messages and payloads for each entity Create/Update/Delete events (AVRO and AsyncAPI schema)"),"\n"),"\n",a.createElement(n.pre,null,a.createElement(n.code,{className:"language-shell"},"jbang zw -p io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin \\\r\n includeCommands=false \\\r\n zdlFile=src/main/resources/model/entities-model.jdl \\\r\n idType=integer \\\r\n idTypeFormat=int64 \\\r\n annotations=aggregate \\\r\n payloadStyle=event \\\r\n targetFile=src/main/resources/model/asyncapi.yml\n")),"\n",a.createElement(n.p,null,"You can choose to generate only Events or Commands using ",a.createElement(n.code,null,"includeEvents")," (default: true) and ",a.createElement(n.code,null,"includeCommands")," (default: false) to filter which channels you want to include in your AsyncAPI definition file."),"\n",a.createElement(n.p,null,"You can also filter which entities you want to include Messages for in your AsyncAPI definition file using: ",a.createElement(n.code,null,"entities"),", ",a.createElement(n.code,null,"skipEntities"),", ",a.createElement(n.code,null,"annotations")," and ",a.createElement(n.code,null,"skipForAnnotations"),"."),"\n",a.createElement(n.h2,{id:"supported-schema-formats-and-message-styles",style:{position:"relative"}},a.createElement(n.a,{href:"#supported-schema-formats-and-message-styles","aria-label":"supported schema formats and message styles permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Supported Schema Formats and Message Styles"),"\n",a.createElement(n.p,null,"You can generate AsyncAPI definition files with the following options:"),"\n",a.createElement(n.ul,null,"\n",a.createElement(n.li,null,"Supported Schema Formats: AVRO and AsyncAPI schema"),"\n",a.createElement(n.li,null,"Supported ",a.createElement(n.a,{href:"https://zenwave360.github.io/Event-Driven-Architectures/API-First-with-AsyncAPI#different-styles-of-message-payloads"},"Payload Styles"),': "Entity State Transfer" and "Domain Event" (for Create/Update/Delete events):',"\n",a.createElement(n.ul,null,"\n",a.createElement(n.li,null,"State Transfer message contains the entire state of the aggregate so consumer does not need to make additional calls."),"\n",a.createElement(n.li,null,"Domain Event Messages contains information about the event and interesting portions of the underlying aggregate, but not the entire state of the aggregate."),"\n"),"\n"),"\n"),"\n",a.createElement(n.p,null,"By using JDL to define your domain model and ZenWave SDK to convert it into an AsyncAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies."))}var r=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?a.createElement(n,e,a.createElement(l,e)):l(e)};function s(e){let{children:n}=e;return n}function o(e){return a.createElement(s,e,a.createElement(r,e))}}}]); -//# sourceMappingURL=component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js.map \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[682],{40250:function(e,n,t){t.r(n),t.d(n,{default:function(){return o}});var a=t(27378),i=t(20951);function l(e){const n=Object.assign({h1:"h1",a:"a",div:"div",p:"p",img:"img",h2:"h2",pre:"pre",code:"code",blockquote:"blockquote",ul:"ul",li:"li"},(0,i.ah)(),e.components);return a.createElement(a.Fragment,null,a.createElement(n.h1,{id:"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk",style:{position:"relative"}},a.createElement(n.a,{href:"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk","aria-label":"generating asyncapi definition files from jdl with zenwavesdk permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating AsyncAPI definition files from JDL with ZenWaveSDK"),"\n",a.createElement(n.p,null,a.createElement(n.img,{src:"./JDL-2-AsyncAPI.svg",alt:"JDL-2-AsyncAPI"})),"\n",a.createElement(n.p,null,"Writing YAML by hand is no fun, but you can simplify the process of writing AsyncAPI definition files by using a Domain Specific Language (DSL)."),"\n",a.createElement(n.p,null,"Thanks to ZenWave SDK, you can convert JDL models into AsyncAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards."),"\n",a.createElement(n.h2,{id:"jdl-example",style:{position:"relative"}},a.createElement(n.a,{href:"#jdl-example","aria-label":"jdl example permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"JDL Example"),"\n",a.createElement(n.pre,null,a.createElement(n.code,{className:"language-zdl"},"@aggregate\r\nentity Customer {\r\n username String required minlength(3) maxlength(250)\r\n password String required minlength(3) maxlength(250)\r\n email String required minlength(3) maxlength(250)\r\n firstName String required minlength(3) maxlength(250)\r\n lastName String required minlength(3) maxlength(250)\r\n}\r\nentity Address {\r\n street String\r\n city String\r\n country String\r\n zipCode String\r\n}\r\n\r\nrelationship OneToOne {\r\n Customer{address} to Address{customer}\r\n}\n")),"\n",a.createElement(n.h2,{id:"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1",style:{position:"relative"}},a.createElement(n.a,{href:"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1","aria-label":"generating asyncapi definition files from jdl with zenwavesdk 1 permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating AsyncAPI definition files from JDL with ZenWaveSDK"),"\n",a.createElement(n.blockquote,null,"\n",a.createElement(n.p,null,"See ",a.createElement(n.a,{href:"https://www.zenwave360.io/zenwave-sdk/plugins/jdl-to-asyncapi/"},"JDL To AsyncAPI Generator")," for a complete list of options and ",a.createElement(n.a,{href:"https://github.com/zenwave360/zenwave-sdk"},"GitHub repository")," for install instructions."),"\n"),"\n",a.createElement(n.p,null,"Because JDL can only describe static aspects of your models and doesn't cover dynamic behaviour, ZenWave SDK can only infer CRUD operations from your entities, generating:"),"\n",a.createElement(n.ul,null,"\n",a.createElement(n.li,null,"One channel for each entity for both publishing Domain Events and subscribing to Commands/Requests."),"\n",a.createElement(n.li,null,"Messages and payloads for each entity Create/Update/Delete events (AVRO and AsyncAPI schema)"),"\n"),"\n",a.createElement(n.pre,null,a.createElement(n.code,{className:"language-shell"},"jbang zw -p io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin \\\r\n includeCommands=false \\\r\n zdlFile=src/main/resources/model/entities-model.jdl \\\r\n idType=integer \\\r\n idTypeFormat=int64 \\\r\n annotations=aggregate \\\r\n payloadStyle=event \\\r\n targetFile=src/main/resources/model/asyncapi.yml\n")),"\n",a.createElement(n.p,null,"You can choose to generate only Events or Commands using ",a.createElement(n.code,null,"includeEvents")," (default: true) and ",a.createElement(n.code,null,"includeCommands")," (default: false) to filter which channels you want to include in your AsyncAPI definition file."),"\n",a.createElement(n.p,null,"You can also filter which entities you want to include Messages for in your AsyncAPI definition file using: ",a.createElement(n.code,null,"entities"),", ",a.createElement(n.code,null,"skipEntities"),", ",a.createElement(n.code,null,"annotations")," and ",a.createElement(n.code,null,"skipForAnnotations"),"."),"\n",a.createElement(n.h2,{id:"supported-schema-formats-and-message-styles",style:{position:"relative"}},a.createElement(n.a,{href:"#supported-schema-formats-and-message-styles","aria-label":"supported schema formats and message styles permalink",className:"anchor before"},a.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Supported Schema Formats and Message Styles"),"\n",a.createElement(n.p,null,"You can generate AsyncAPI definition files with the following options:"),"\n",a.createElement(n.ul,null,"\n",a.createElement(n.li,null,"Supported Schema Formats: AVRO and AsyncAPI schema"),"\n",a.createElement(n.li,null,"Supported ",a.createElement(n.a,{href:"https://www.zenwave360.io/Event-Driven-Architectures/API-First-with-AsyncAPI#different-styles-of-message-payloads"},"Payload Styles"),': "Entity State Transfer" and "Domain Event" (for Create/Update/Delete events):',"\n",a.createElement(n.ul,null,"\n",a.createElement(n.li,null,"State Transfer message contains the entire state of the aggregate so consumer does not need to make additional calls."),"\n",a.createElement(n.li,null,"Domain Event Messages contains information about the event and interesting portions of the underlying aggregate, but not the entire state of the aggregate."),"\n"),"\n"),"\n"),"\n",a.createElement(n.p,null,"By using JDL to define your domain model and ZenWave SDK to convert it into an AsyncAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies."))}var r=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?a.createElement(n,e,a.createElement(l,e)):l(e)};function s(e){let{children:n}=e;return n}function o(e){return a.createElement(s,e,a.createElement(r,e))}}}]); +//# sourceMappingURL=component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js.map b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js.map similarity index 57% rename from component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js.map rename to component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js.map index d2a6984..35743b4 100644 --- a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js.map +++ b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js.map @@ -1 +1 @@ -{"version":3,"file":"component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-a6f63d6edd6e691a4bde.js","mappings":"+KAGA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,WAAY,aACZC,GAAI,KACJC,GAAI,OACHC,EAAAA,EAAAA,MAAsBf,EAAMgB,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBhB,EAAYG,GAAI,CACnFc,GAAI,gEACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,iEACN,aAAc,0EACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,iEAAkE,KAAMP,EAAAA,cAAoBhB,EAAYM,EAAG,KAAMU,EAAAA,cAAoBhB,EAAYO,IAAK,CACzJiB,IAAK,uBACLC,IAAK,oBACF,KAAMT,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,oJAAqJ,KAAMU,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,iNAAkN,KAAMU,EAAAA,cAAoBhB,EAAYQ,GAAI,CAClfS,GAAI,cACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,eACN,aAAc,wBACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,eAAgB,KAAMP,EAAAA,cAAoBhB,EAAYS,IAAK,KAAMO,EAAAA,cAAoBhB,EAAYU,KAAM,CAC1GW,UAAW,gBACV,ohBAAqhB,KAAML,EAAAA,cAAoBhB,EAAYQ,GAAI,CAChkBS,GAAI,kEACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,mEACN,aAAc,4EACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,iEAAkE,KAAMP,EAAAA,cAAoBhB,EAAYW,WAAY,KAAM,KAAMK,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,OAAQU,EAAAA,cAAoBhB,EAAYI,EAAG,CACvNgB,KAAM,qEACL,6BAA8B,uCAAwCJ,EAAAA,cAAoBhB,EAAYI,EAAG,CAC1GgB,KAAM,6CACL,qBAAsB,8BAA+B,MAAO,KAAMJ,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,+KAAgL,KAAMU,EAAAA,cAAoBhB,EAAYY,GAAI,KAAM,KAAMI,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,uGAAwG,KAAMG,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,gGAAiG,MAAO,KAAMG,EAAAA,cAAoBhB,EAAYS,IAAK,KAAMO,EAAAA,cAAoBhB,EAAYU,KAAM,CACntBW,UAAW,kBACV,4UAA6U,KAAML,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,4DAA6DU,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,iBAAkB,yBAA0BM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,mBAAoB,oGAAqG,KAAMM,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,+GAAgHU,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,YAAa,KAAMM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,gBAAiB,KAAMM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,eAAgB,QAASM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,sBAAuB,KAAM,KAAMM,EAAAA,cAAoBhB,EAAYQ,GAAI,CAChpCS,GAAI,8CACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,+CACN,aAAc,wDACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,+CAAgD,KAAMP,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,0EAA2E,KAAMU,EAAAA,cAAoBhB,EAAYY,GAAI,KAAM,KAAMI,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,sDAAuD,KAAMG,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,aAAcG,EAAAA,cAAoBhB,EAAYI,EAAG,CACragB,KAAM,wHACL,kBAAmB,kFAAuF,KAAMJ,EAAAA,cAAoBhB,EAAYY,GAAI,KAAM,KAAMI,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,yHAA0H,KAAMG,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,+JAAgK,MAAO,MAAO,MAAO,KAAMG,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,oSAC5lB,CAKD,MAJA,SAAoBP,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAO2B,QAASC,GAAa1B,OAAOC,OAAO,CAAC,GAAGY,EAAAA,EAAAA,MAAsBf,EAAMgB,YAC3E,OAAOY,EAAYX,EAAAA,cAAoBW,EAAW5B,EAAOiB,EAAAA,cAAoBlB,EAAmBC,IAAUD,EAAkBC,EAC7H,EC1ED,SAAS6B,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiBhC,GACvC,OAAOiB,EAAAA,cAAoBY,EAAc7B,EAAOiB,EAAAA,cAAoBgB,EAAqBjC,GAC1F,C","sources":["webpack://website/./pages/posts/JHipster-As-IDL-for-AsyncAPIv2.md","webpack://website/../smooth-doc/src/templates/post.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n img: \"img\",\n h2: \"h2\",\n pre: \"pre\",\n code: \"code\",\n blockquote: \"blockquote\",\n ul: \"ul\",\n li: \"li\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk\",\n \"aria-label\": \"generating asyncapi definition files from jdl with zenwavesdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating AsyncAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./JDL-2-AsyncAPI.svg\",\n alt: \"JDL-2-AsyncAPI\"\n })), \"\\n\", React.createElement(_components.p, null, \"Writing YAML by hand is no fun, but you can simplify the process of writing AsyncAPI definition files by using a Domain Specific Language (DSL).\"), \"\\n\", React.createElement(_components.p, null, \"Thanks to ZenWave SDK, you can convert JDL models into AsyncAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"jdl-example\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#jdl-example\",\n \"aria-label\": \"jdl example permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"JDL Example\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-zdl\"\n }, \"@aggregate\\r\\nentity Customer {\\r\\n username String required minlength(3) maxlength(250)\\r\\n password String required minlength(3) maxlength(250)\\r\\n email String required minlength(3) maxlength(250)\\r\\n firstName String required minlength(3) maxlength(250)\\r\\n lastName String required minlength(3) maxlength(250)\\r\\n}\\r\\nentity Address {\\r\\n street String\\r\\n city String\\r\\n country String\\r\\n zipCode String\\r\\n}\\r\\n\\r\\nrelationship OneToOne {\\r\\n Customer{address} to Address{customer}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1\",\n \"aria-label\": \"generating asyncapi definition files from jdl with zenwavesdk 1 permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating AsyncAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"See \", React.createElement(_components.a, {\n href: \"https://zenwave360.github.io/zenwave-sdk/plugins/jdl-to-asyncapi/\"\n }, \"JDL To AsyncAPI Generator\"), \" for a complete list of options and \", React.createElement(_components.a, {\n href: \"https://github.com/zenwave360/zenwave-sdk\"\n }, \"GitHub repository\"), \" for install instructions.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"Because JDL can only describe static aspects of your models and doesn't cover dynamic behaviour, ZenWave SDK can only infer CRUD operations from your entities, generating:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"One channel for each entity for both publishing Domain Events and subscribing to Commands/Requests.\"), \"\\n\", React.createElement(_components.li, null, \"Messages and payloads for each entity Create/Update/Delete events (AVRO and AsyncAPI schema)\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang zw -p io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin \\\\\\r\\n includeCommands=false \\\\\\r\\n zdlFile=src/main/resources/model/entities-model.jdl \\\\\\r\\n idType=integer \\\\\\r\\n idTypeFormat=int64 \\\\\\r\\n annotations=aggregate \\\\\\r\\n payloadStyle=event \\\\\\r\\n targetFile=src/main/resources/model/asyncapi.yml\\n\")), \"\\n\", React.createElement(_components.p, null, \"You can choose to generate only Events or Commands using \", React.createElement(_components.code, null, \"includeEvents\"), \" (default: true) and \", React.createElement(_components.code, null, \"includeCommands\"), \" (default: false) to filter which channels you want to include in your AsyncAPI definition file.\"), \"\\n\", React.createElement(_components.p, null, \"You can also filter which entities you want to include Messages for in your AsyncAPI definition file using: \", React.createElement(_components.code, null, \"entities\"), \", \", React.createElement(_components.code, null, \"skipEntities\"), \", \", React.createElement(_components.code, null, \"annotations\"), \" and \", React.createElement(_components.code, null, \"skipForAnnotations\"), \".\"), \"\\n\", React.createElement(_components.h2, {\n id: \"supported-schema-formats-and-message-styles\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#supported-schema-formats-and-message-styles\",\n \"aria-label\": \"supported schema formats and message styles permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Supported Schema Formats and Message Styles\"), \"\\n\", React.createElement(_components.p, null, \"You can generate AsyncAPI definition files with the following options:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Supported Schema Formats: AVRO and AsyncAPI schema\"), \"\\n\", React.createElement(_components.li, null, \"Supported \", React.createElement(_components.a, {\n href: \"https://zenwave360.github.io/Event-Driven-Architectures/API-First-with-AsyncAPI#different-styles-of-message-payloads\"\n }, \"Payload Styles\"), \": \\\"Entity State Transfer\\\" and \\\"Domain Event\\\" (for Create/Update/Delete events):\", \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"State Transfer message contains the entire state of the aggregate so consumer does not need to make additional calls.\"), \"\\n\", React.createElement(_components.li, null, \"Domain Event Messages contains information about the event and interesting portions of the underlying aggregate, but not the entire state of the aggregate.\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"By using JDL to define your domain model and ZenWave SDK to convert it into an AsyncAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies.\"));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/posts/JHipster-As-IDL-for-AsyncAPIv2.md\";\nimport {graphql} from \"gatsby\";\nexport const postQuery = graphql`\n query PostPage($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PostTemplate({children}) {\n return children;\n}\nPostTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PostTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","img","h2","pre","code","blockquote","ul","li","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","src","alt","wrapper","MDXLayout","PostTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-async-ap-iv-2-md-507f64f13c794e5fddb2.js","mappings":"+KAGA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,WAAY,aACZC,GAAI,KACJC,GAAI,OACHC,EAAAA,EAAAA,MAAsBf,EAAMgB,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBhB,EAAYG,GAAI,CACnFc,GAAI,gEACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,iEACN,aAAc,0EACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,iEAAkE,KAAMP,EAAAA,cAAoBhB,EAAYM,EAAG,KAAMU,EAAAA,cAAoBhB,EAAYO,IAAK,CACzJiB,IAAK,uBACLC,IAAK,oBACF,KAAMT,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,oJAAqJ,KAAMU,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,iNAAkN,KAAMU,EAAAA,cAAoBhB,EAAYQ,GAAI,CAClfS,GAAI,cACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,eACN,aAAc,wBACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,eAAgB,KAAMP,EAAAA,cAAoBhB,EAAYS,IAAK,KAAMO,EAAAA,cAAoBhB,EAAYU,KAAM,CAC1GW,UAAW,gBACV,ohBAAqhB,KAAML,EAAAA,cAAoBhB,EAAYQ,GAAI,CAChkBS,GAAI,kEACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,mEACN,aAAc,4EACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,iEAAkE,KAAMP,EAAAA,cAAoBhB,EAAYW,WAAY,KAAM,KAAMK,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,OAAQU,EAAAA,cAAoBhB,EAAYI,EAAG,CACvNgB,KAAM,kEACL,6BAA8B,uCAAwCJ,EAAAA,cAAoBhB,EAAYI,EAAG,CAC1GgB,KAAM,6CACL,qBAAsB,8BAA+B,MAAO,KAAMJ,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,+KAAgL,KAAMU,EAAAA,cAAoBhB,EAAYY,GAAI,KAAM,KAAMI,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,uGAAwG,KAAMG,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,gGAAiG,MAAO,KAAMG,EAAAA,cAAoBhB,EAAYS,IAAK,KAAMO,EAAAA,cAAoBhB,EAAYU,KAAM,CACntBW,UAAW,kBACV,4UAA6U,KAAML,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,4DAA6DU,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,iBAAkB,yBAA0BM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,mBAAoB,oGAAqG,KAAMM,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,+GAAgHU,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,YAAa,KAAMM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,gBAAiB,KAAMM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,eAAgB,QAASM,EAAAA,cAAoBhB,EAAYU,KAAM,KAAM,sBAAuB,KAAM,KAAMM,EAAAA,cAAoBhB,EAAYQ,GAAI,CAChpCS,GAAI,8CACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBhB,EAAYI,EAAG,CACpCgB,KAAM,+CACN,aAAc,wDACdC,UAAW,iBACVL,EAAAA,cAAoBhB,EAAYK,IAAK,CACtCiB,wBAAyB,CACvBC,OAAQ,meAEP,+CAAgD,KAAMP,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,0EAA2E,KAAMU,EAAAA,cAAoBhB,EAAYY,GAAI,KAAM,KAAMI,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,sDAAuD,KAAMG,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,aAAcG,EAAAA,cAAoBhB,EAAYI,EAAG,CACragB,KAAM,qHACL,kBAAmB,kFAAuF,KAAMJ,EAAAA,cAAoBhB,EAAYY,GAAI,KAAM,KAAMI,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,yHAA0H,KAAMG,EAAAA,cAAoBhB,EAAYa,GAAI,KAAM,+JAAgK,MAAO,MAAO,MAAO,KAAMG,EAAAA,cAAoBhB,EAAYM,EAAG,KAAM,oSAC5lB,CAKD,MAJA,SAAoBP,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAO2B,QAASC,GAAa1B,OAAOC,OAAO,CAAC,GAAGY,EAAAA,EAAAA,MAAsBf,EAAMgB,YAC3E,OAAOY,EAAYX,EAAAA,cAAoBW,EAAW5B,EAAOiB,EAAAA,cAAoBlB,EAAmBC,IAAUD,EAAkBC,EAC7H,EC1ED,SAAS6B,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiBhC,GACvC,OAAOiB,EAAAA,cAAoBY,EAAc7B,EAAOiB,EAAAA,cAAoBgB,EAAqBjC,GAC1F,C","sources":["webpack://website/./pages/posts/JHipster-As-IDL-for-AsyncAPIv2.md","webpack://website/../smooth-doc/src/templates/post.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n img: \"img\",\n h2: \"h2\",\n pre: \"pre\",\n code: \"code\",\n blockquote: \"blockquote\",\n ul: \"ul\",\n li: \"li\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk\",\n \"aria-label\": \"generating asyncapi definition files from jdl with zenwavesdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating AsyncAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./JDL-2-AsyncAPI.svg\",\n alt: \"JDL-2-AsyncAPI\"\n })), \"\\n\", React.createElement(_components.p, null, \"Writing YAML by hand is no fun, but you can simplify the process of writing AsyncAPI definition files by using a Domain Specific Language (DSL).\"), \"\\n\", React.createElement(_components.p, null, \"Thanks to ZenWave SDK, you can convert JDL models into AsyncAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"jdl-example\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#jdl-example\",\n \"aria-label\": \"jdl example permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"JDL Example\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-zdl\"\n }, \"@aggregate\\r\\nentity Customer {\\r\\n username String required minlength(3) maxlength(250)\\r\\n password String required minlength(3) maxlength(250)\\r\\n email String required minlength(3) maxlength(250)\\r\\n firstName String required minlength(3) maxlength(250)\\r\\n lastName String required minlength(3) maxlength(250)\\r\\n}\\r\\nentity Address {\\r\\n street String\\r\\n city String\\r\\n country String\\r\\n zipCode String\\r\\n}\\r\\n\\r\\nrelationship OneToOne {\\r\\n Customer{address} to Address{customer}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-asyncapi-definition-files-from-jdl-with-zenwavesdk-1\",\n \"aria-label\": \"generating asyncapi definition files from jdl with zenwavesdk 1 permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating AsyncAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"See \", React.createElement(_components.a, {\n href: \"https://www.zenwave360.io/zenwave-sdk/plugins/jdl-to-asyncapi/\"\n }, \"JDL To AsyncAPI Generator\"), \" for a complete list of options and \", React.createElement(_components.a, {\n href: \"https://github.com/zenwave360/zenwave-sdk\"\n }, \"GitHub repository\"), \" for install instructions.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"Because JDL can only describe static aspects of your models and doesn't cover dynamic behaviour, ZenWave SDK can only infer CRUD operations from your entities, generating:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"One channel for each entity for both publishing Domain Events and subscribing to Commands/Requests.\"), \"\\n\", React.createElement(_components.li, null, \"Messages and payloads for each entity Create/Update/Delete events (AVRO and AsyncAPI schema)\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang zw -p io.zenwave360.sdk.plugins.JDLToAsyncAPIPlugin \\\\\\r\\n includeCommands=false \\\\\\r\\n zdlFile=src/main/resources/model/entities-model.jdl \\\\\\r\\n idType=integer \\\\\\r\\n idTypeFormat=int64 \\\\\\r\\n annotations=aggregate \\\\\\r\\n payloadStyle=event \\\\\\r\\n targetFile=src/main/resources/model/asyncapi.yml\\n\")), \"\\n\", React.createElement(_components.p, null, \"You can choose to generate only Events or Commands using \", React.createElement(_components.code, null, \"includeEvents\"), \" (default: true) and \", React.createElement(_components.code, null, \"includeCommands\"), \" (default: false) to filter which channels you want to include in your AsyncAPI definition file.\"), \"\\n\", React.createElement(_components.p, null, \"You can also filter which entities you want to include Messages for in your AsyncAPI definition file using: \", React.createElement(_components.code, null, \"entities\"), \", \", React.createElement(_components.code, null, \"skipEntities\"), \", \", React.createElement(_components.code, null, \"annotations\"), \" and \", React.createElement(_components.code, null, \"skipForAnnotations\"), \".\"), \"\\n\", React.createElement(_components.h2, {\n id: \"supported-schema-formats-and-message-styles\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#supported-schema-formats-and-message-styles\",\n \"aria-label\": \"supported schema formats and message styles permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Supported Schema Formats and Message Styles\"), \"\\n\", React.createElement(_components.p, null, \"You can generate AsyncAPI definition files with the following options:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Supported Schema Formats: AVRO and AsyncAPI schema\"), \"\\n\", React.createElement(_components.li, null, \"Supported \", React.createElement(_components.a, {\n href: \"https://www.zenwave360.io/Event-Driven-Architectures/API-First-with-AsyncAPI#different-styles-of-message-payloads\"\n }, \"Payload Styles\"), \": \\\"Entity State Transfer\\\" and \\\"Domain Event\\\" (for Create/Update/Delete events):\", \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"State Transfer message contains the entire state of the aggregate so consumer does not need to make additional calls.\"), \"\\n\", React.createElement(_components.li, null, \"Domain Event Messages contains information about the event and interesting portions of the underlying aggregate, but not the entire state of the aggregate.\"), \"\\n\"), \"\\n\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"By using JDL to define your domain model and ZenWave SDK to convert it into an AsyncAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies.\"));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/posts/JHipster-As-IDL-for-AsyncAPIv2.md\";\nimport {graphql} from \"gatsby\";\nexport const postQuery = graphql`\n query PostPage($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PostTemplate({children}) {\n return children;\n}\nPostTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PostTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","img","h2","pre","code","blockquote","ul","li","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","src","alt","wrapper","MDXLayout","PostTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js similarity index 77% rename from component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js rename to component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js index 55140f3..4dc4a92 100644 --- a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js +++ b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[402],{69807:function(e,n,t){t.r(n),t.d(n,{default:function(){return s}});var i=t(27378),a=t(20951);function r(e){const n=Object.assign({h1:"h1",a:"a",div:"div",p:"p",img:"img",h2:"h2",pre:"pre",code:"code",blockquote:"blockquote"},(0,a.ah)(),e.components);return i.createElement(i.Fragment,null,i.createElement(n.h1,{id:"generating-openapi-definition-files-from-jdl-with-zenwavesdk",style:{position:"relative"}},i.createElement(n.a,{href:"#generating-openapi-definition-files-from-jdl-with-zenwavesdk","aria-label":"generating openapi definition files from jdl with zenwavesdk permalink",className:"anchor before"},i.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating OpenAPI definition files from JDL with ZenWaveSDK"),"\n",i.createElement(n.p,null,i.createElement(n.img,{src:"./JDL-2-OpenAPI.svg",alt:"JDL-2-OpenAPI"})),"\n",i.createElement(n.p,null,"Writing YAML by hand is no fun, but you can simplify the process of writing OpenAPI definition files by using a Domain Specific Language (DSL)."),"\n",i.createElement(n.p,null,"Thanks to ZenWave SDK, you can convert JDL models into OpenAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards."),"\n",i.createElement(n.h2,{id:"jdl-example",style:{position:"relative"}},i.createElement(n.a,{href:"#jdl-example","aria-label":"jdl example permalink",className:"anchor before"},i.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"JDL Example"),"\n",i.createElement(n.pre,null,i.createElement(n.code,{className:"language-zdl"},"@aggregate\r\nentity Customer {\r\n username String required minlength(3) maxlength(250)\r\n password String required minlength(3) maxlength(250)\r\n email String required minlength(3) maxlength(250)\r\n firstName String required minlength(3) maxlength(250)\r\n lastName String required minlength(3) maxlength(250)\r\n}\r\nentity Address {\r\n street String\r\n city String\r\n country String\r\n zipCode String\r\n}\r\n\r\nrelationship OneToOne {\r\n Customer{address} to Address{customer}\r\n}\n")),"\n",i.createElement(n.p,null,"It will add ",i.createElement(n.code,null,"x-business-entity")," and ",i.createElement(n.code,null,"x-business-entity-paginated")," to generated schemas, very useful if you are also using ZenWave to generate a complete backend from JDL"),"\n",i.createElement(n.h2,{id:"generating-openapi-definition-files-from-jdl-with-zenwavesdk-1",style:{position:"relative"}},i.createElement(n.a,{href:"#generating-openapi-definition-files-from-jdl-with-zenwavesdk-1","aria-label":"generating openapi definition files from jdl with zenwavesdk 1 permalink",className:"anchor before"},i.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating OpenAPI definition files from JDL with ZenWaveSDK"),"\n",i.createElement(n.blockquote,null,"\n",i.createElement(n.p,null,"See ",i.createElement(n.a,{href:"https://zenwave360.github.io/zenwave-sdk/plugins/jdl-to-openapi/"},"JDL To OpenAPI Generator")," for a complete list of options and ",i.createElement(n.a,{href:"https://github.com/zenwave360/zenwave-sdk"},"GitHub repository")," for install instructions."),"\n"),"\n",i.createElement(n.p,null,"ZenWave SDK will generate CRUD operations for your entities, including paginated lists and search operations."),"\n",i.createElement(n.pre,null,i.createElement(n.code,{className:"language-shell"},"jbang zw -p io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin \\\r\n zdlFile=entities-model.jdl \\\r\n idType=integer \\\r\n idTypeFormat=int64 \\\r\n targetFolder=. \\\r\n targetFile=openapi.yml\n")),"\n",i.createElement(n.p,null,"By using JDL to define your domain model and ZenWave SDK to convert it into an OpenAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies."))}var l=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?i.createElement(n,e,i.createElement(r,e)):r(e)};function o(e){let{children:n}=e;return n}function s(e){return i.createElement(o,e,i.createElement(l,e))}}}]); -//# sourceMappingURL=component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js.map \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[402],{69807:function(e,n,t){t.r(n),t.d(n,{default:function(){return s}});var i=t(27378),a=t(20951);function r(e){const n=Object.assign({h1:"h1",a:"a",div:"div",p:"p",img:"img",h2:"h2",pre:"pre",code:"code",blockquote:"blockquote"},(0,a.ah)(),e.components);return i.createElement(i.Fragment,null,i.createElement(n.h1,{id:"generating-openapi-definition-files-from-jdl-with-zenwavesdk",style:{position:"relative"}},i.createElement(n.a,{href:"#generating-openapi-definition-files-from-jdl-with-zenwavesdk","aria-label":"generating openapi definition files from jdl with zenwavesdk permalink",className:"anchor before"},i.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating OpenAPI definition files from JDL with ZenWaveSDK"),"\n",i.createElement(n.p,null,i.createElement(n.img,{src:"./JDL-2-OpenAPI.svg",alt:"JDL-2-OpenAPI"})),"\n",i.createElement(n.p,null,"Writing YAML by hand is no fun, but you can simplify the process of writing OpenAPI definition files by using a Domain Specific Language (DSL)."),"\n",i.createElement(n.p,null,"Thanks to ZenWave SDK, you can convert JDL models into OpenAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards."),"\n",i.createElement(n.h2,{id:"jdl-example",style:{position:"relative"}},i.createElement(n.a,{href:"#jdl-example","aria-label":"jdl example permalink",className:"anchor before"},i.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"JDL Example"),"\n",i.createElement(n.pre,null,i.createElement(n.code,{className:"language-zdl"},"@aggregate\r\nentity Customer {\r\n username String required minlength(3) maxlength(250)\r\n password String required minlength(3) maxlength(250)\r\n email String required minlength(3) maxlength(250)\r\n firstName String required minlength(3) maxlength(250)\r\n lastName String required minlength(3) maxlength(250)\r\n}\r\nentity Address {\r\n street String\r\n city String\r\n country String\r\n zipCode String\r\n}\r\n\r\nrelationship OneToOne {\r\n Customer{address} to Address{customer}\r\n}\n")),"\n",i.createElement(n.p,null,"It will add ",i.createElement(n.code,null,"x-business-entity")," and ",i.createElement(n.code,null,"x-business-entity-paginated")," to generated schemas, very useful if you are also using ZenWave to generate a complete backend from JDL"),"\n",i.createElement(n.h2,{id:"generating-openapi-definition-files-from-jdl-with-zenwavesdk-1",style:{position:"relative"}},i.createElement(n.a,{href:"#generating-openapi-definition-files-from-jdl-with-zenwavesdk-1","aria-label":"generating openapi definition files from jdl with zenwavesdk 1 permalink",className:"anchor before"},i.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Generating OpenAPI definition files from JDL with ZenWaveSDK"),"\n",i.createElement(n.blockquote,null,"\n",i.createElement(n.p,null,"See ",i.createElement(n.a,{href:"https://www.zenwave360.io/zenwave-sdk/plugins/jdl-to-openapi/"},"JDL To OpenAPI Generator")," for a complete list of options and ",i.createElement(n.a,{href:"https://github.com/zenwave360/zenwave-sdk"},"GitHub repository")," for install instructions."),"\n"),"\n",i.createElement(n.p,null,"ZenWave SDK will generate CRUD operations for your entities, including paginated lists and search operations."),"\n",i.createElement(n.pre,null,i.createElement(n.code,{className:"language-shell"},"jbang zw -p io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin \\\r\n zdlFile=entities-model.jdl \\\r\n idType=integer \\\r\n idTypeFormat=int64 \\\r\n targetFolder=. \\\r\n targetFile=openapi.yml\n")),"\n",i.createElement(n.p,null,"By using JDL to define your domain model and ZenWave SDK to convert it into an OpenAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies."))}var l=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?i.createElement(n,e,i.createElement(r,e)):r(e)};function o(e){let{children:n}=e;return n}function s(e){return i.createElement(o,e,i.createElement(l,e))}}}]); +//# sourceMappingURL=component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js.map b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js.map similarity index 74% rename from component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js.map rename to component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js.map index 561f7dd..0fafd31 100644 --- a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js.map +++ b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js.map @@ -1 +1 @@ -{"version":3,"file":"component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-79b7485333813be65b9a.js","mappings":"+KAGA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,WAAY,eACXC,EAAAA,EAAAA,MAAsBb,EAAMc,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBd,EAAYG,GAAI,CACnFY,GAAI,+DACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBd,EAAYI,EAAG,CACpCc,KAAM,gEACN,aAAc,yEACdC,UAAW,iBACVL,EAAAA,cAAoBd,EAAYK,IAAK,CACtCe,wBAAyB,CACvBC,OAAQ,meAEP,gEAAiE,KAAMP,EAAAA,cAAoBd,EAAYM,EAAG,KAAMQ,EAAAA,cAAoBd,EAAYO,IAAK,CACxJe,IAAK,sBACLC,IAAK,mBACF,KAAMT,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,mJAAoJ,KAAMQ,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,gNAAiN,KAAMQ,EAAAA,cAAoBd,EAAYQ,GAAI,CAChfO,GAAI,cACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBd,EAAYI,EAAG,CACpCc,KAAM,eACN,aAAc,wBACdC,UAAW,iBACVL,EAAAA,cAAoBd,EAAYK,IAAK,CACtCe,wBAAyB,CACvBC,OAAQ,meAEP,eAAgB,KAAMP,EAAAA,cAAoBd,EAAYS,IAAK,KAAMK,EAAAA,cAAoBd,EAAYU,KAAM,CAC1GS,UAAW,gBACV,ohBAAqhB,KAAML,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,eAAgBQ,EAAAA,cAAoBd,EAAYU,KAAM,KAAM,qBAAsB,QAASI,EAAAA,cAAoBd,EAAYU,KAAM,KAAM,+BAAgC,4GAA6G,KAAMI,EAAAA,cAAoBd,EAAYQ,GAAI,CACn4BO,GAAI,iEACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBd,EAAYI,EAAG,CACpCc,KAAM,kEACN,aAAc,2EACdC,UAAW,iBACVL,EAAAA,cAAoBd,EAAYK,IAAK,CACtCe,wBAAyB,CACvBC,OAAQ,meAEP,gEAAiE,KAAMP,EAAAA,cAAoBd,EAAYW,WAAY,KAAM,KAAMG,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,OAAQQ,EAAAA,cAAoBd,EAAYI,EAAG,CACtNc,KAAM,oEACL,4BAA6B,uCAAwCJ,EAAAA,cAAoBd,EAAYI,EAAG,CACzGc,KAAM,6CACL,qBAAsB,8BAA+B,MAAO,KAAMJ,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,iHAAkH,KAAMQ,EAAAA,cAAoBd,EAAYS,IAAK,KAAMK,EAAAA,cAAoBd,EAAYU,KAAM,CACrTS,UAAW,kBACV,oNAAqN,KAAML,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,mSACxQ,CAKD,MAJA,SAAoBP,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAOyB,QAASC,GAAaxB,OAAOC,OAAO,CAAC,GAAGU,EAAAA,EAAAA,MAAsBb,EAAMc,YAC3E,OAAOY,EAAYX,EAAAA,cAAoBW,EAAW1B,EAAOe,EAAAA,cAAoBhB,EAAmBC,IAAUD,EAAkBC,EAC7H,ECzDD,SAAS2B,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiB9B,GACvC,OAAOe,EAAAA,cAAoBY,EAAc3B,EAAOe,EAAAA,cAAoBgB,EAAqB/B,GAC1F,C","sources":["webpack://website/./pages/posts/JHipster-As-IDL-for-OpenAPIv3.md","webpack://website/../smooth-doc/src/templates/post.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n img: \"img\",\n h2: \"h2\",\n pre: \"pre\",\n code: \"code\",\n blockquote: \"blockquote\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"generating-openapi-definition-files-from-jdl-with-zenwavesdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-openapi-definition-files-from-jdl-with-zenwavesdk\",\n \"aria-label\": \"generating openapi definition files from jdl with zenwavesdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating OpenAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./JDL-2-OpenAPI.svg\",\n alt: \"JDL-2-OpenAPI\"\n })), \"\\n\", React.createElement(_components.p, null, \"Writing YAML by hand is no fun, but you can simplify the process of writing OpenAPI definition files by using a Domain Specific Language (DSL).\"), \"\\n\", React.createElement(_components.p, null, \"Thanks to ZenWave SDK, you can convert JDL models into OpenAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"jdl-example\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#jdl-example\",\n \"aria-label\": \"jdl example permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"JDL Example\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-zdl\"\n }, \"@aggregate\\r\\nentity Customer {\\r\\n username String required minlength(3) maxlength(250)\\r\\n password String required minlength(3) maxlength(250)\\r\\n email String required minlength(3) maxlength(250)\\r\\n firstName String required minlength(3) maxlength(250)\\r\\n lastName String required minlength(3) maxlength(250)\\r\\n}\\r\\nentity Address {\\r\\n street String\\r\\n city String\\r\\n country String\\r\\n zipCode String\\r\\n}\\r\\n\\r\\nrelationship OneToOne {\\r\\n Customer{address} to Address{customer}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"It will add \", React.createElement(_components.code, null, \"x-business-entity\"), \" and \", React.createElement(_components.code, null, \"x-business-entity-paginated\"), \" to generated schemas, very useful if you are also using ZenWave to generate a complete backend from JDL\"), \"\\n\", React.createElement(_components.h2, {\n id: \"generating-openapi-definition-files-from-jdl-with-zenwavesdk-1\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-openapi-definition-files-from-jdl-with-zenwavesdk-1\",\n \"aria-label\": \"generating openapi definition files from jdl with zenwavesdk 1 permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating OpenAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"See \", React.createElement(_components.a, {\n href: \"https://zenwave360.github.io/zenwave-sdk/plugins/jdl-to-openapi/\"\n }, \"JDL To OpenAPI Generator\"), \" for a complete list of options and \", React.createElement(_components.a, {\n href: \"https://github.com/zenwave360/zenwave-sdk\"\n }, \"GitHub repository\"), \" for install instructions.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK will generate CRUD operations for your entities, including paginated lists and search operations.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang zw -p io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin \\\\\\r\\n zdlFile=entities-model.jdl \\\\\\r\\n idType=integer \\\\\\r\\n idTypeFormat=int64 \\\\\\r\\n targetFolder=. \\\\\\r\\n targetFile=openapi.yml\\n\")), \"\\n\", React.createElement(_components.p, null, \"By using JDL to define your domain model and ZenWave SDK to convert it into an OpenAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies.\"));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/posts/JHipster-As-IDL-for-OpenAPIv3.md\";\nimport {graphql} from \"gatsby\";\nexport const postQuery = graphql`\n query PostPage($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PostTemplate({children}) {\n return children;\n}\nPostTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PostTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","img","h2","pre","code","blockquote","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","src","alt","wrapper","MDXLayout","PostTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-j-hipster-as-idl-for-open-ap-iv-3-md-710c3ea99bf130317b22.js","mappings":"+KAGA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,IAAK,MACLC,KAAM,OACNC,WAAY,eACXC,EAAAA,EAAAA,MAAsBb,EAAMc,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBd,EAAYG,GAAI,CACnFY,GAAI,+DACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBd,EAAYI,EAAG,CACpCc,KAAM,gEACN,aAAc,yEACdC,UAAW,iBACVL,EAAAA,cAAoBd,EAAYK,IAAK,CACtCe,wBAAyB,CACvBC,OAAQ,meAEP,gEAAiE,KAAMP,EAAAA,cAAoBd,EAAYM,EAAG,KAAMQ,EAAAA,cAAoBd,EAAYO,IAAK,CACxJe,IAAK,sBACLC,IAAK,mBACF,KAAMT,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,mJAAoJ,KAAMQ,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,gNAAiN,KAAMQ,EAAAA,cAAoBd,EAAYQ,GAAI,CAChfO,GAAI,cACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBd,EAAYI,EAAG,CACpCc,KAAM,eACN,aAAc,wBACdC,UAAW,iBACVL,EAAAA,cAAoBd,EAAYK,IAAK,CACtCe,wBAAyB,CACvBC,OAAQ,meAEP,eAAgB,KAAMP,EAAAA,cAAoBd,EAAYS,IAAK,KAAMK,EAAAA,cAAoBd,EAAYU,KAAM,CAC1GS,UAAW,gBACV,ohBAAqhB,KAAML,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,eAAgBQ,EAAAA,cAAoBd,EAAYU,KAAM,KAAM,qBAAsB,QAASI,EAAAA,cAAoBd,EAAYU,KAAM,KAAM,+BAAgC,4GAA6G,KAAMI,EAAAA,cAAoBd,EAAYQ,GAAI,CACn4BO,GAAI,iEACJC,MAAO,CACLC,SAAU,aAEXH,EAAAA,cAAoBd,EAAYI,EAAG,CACpCc,KAAM,kEACN,aAAc,2EACdC,UAAW,iBACVL,EAAAA,cAAoBd,EAAYK,IAAK,CACtCe,wBAAyB,CACvBC,OAAQ,meAEP,gEAAiE,KAAMP,EAAAA,cAAoBd,EAAYW,WAAY,KAAM,KAAMG,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,OAAQQ,EAAAA,cAAoBd,EAAYI,EAAG,CACtNc,KAAM,iEACL,4BAA6B,uCAAwCJ,EAAAA,cAAoBd,EAAYI,EAAG,CACzGc,KAAM,6CACL,qBAAsB,8BAA+B,MAAO,KAAMJ,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,iHAAkH,KAAMQ,EAAAA,cAAoBd,EAAYS,IAAK,KAAMK,EAAAA,cAAoBd,EAAYU,KAAM,CACrTS,UAAW,kBACV,oNAAqN,KAAML,EAAAA,cAAoBd,EAAYM,EAAG,KAAM,mSACxQ,CAKD,MAJA,SAAoBP,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAOyB,QAASC,GAAaxB,OAAOC,OAAO,CAAC,GAAGU,EAAAA,EAAAA,MAAsBb,EAAMc,YAC3E,OAAOY,EAAYX,EAAAA,cAAoBW,EAAW1B,EAAOe,EAAAA,cAAoBhB,EAAmBC,IAAUD,EAAkBC,EAC7H,ECzDD,SAAS2B,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiB9B,GACvC,OAAOe,EAAAA,cAAoBY,EAAc3B,EAAOe,EAAAA,cAAoBgB,EAAqB/B,GAC1F,C","sources":["webpack://website/./pages/posts/JHipster-As-IDL-for-OpenAPIv3.md","webpack://website/../smooth-doc/src/templates/post.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n h1: \"h1\",\n a: \"a\",\n div: \"div\",\n p: \"p\",\n img: \"img\",\n h2: \"h2\",\n pre: \"pre\",\n code: \"code\",\n blockquote: \"blockquote\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.h1, {\n id: \"generating-openapi-definition-files-from-jdl-with-zenwavesdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-openapi-definition-files-from-jdl-with-zenwavesdk\",\n \"aria-label\": \"generating openapi definition files from jdl with zenwavesdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating OpenAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./JDL-2-OpenAPI.svg\",\n alt: \"JDL-2-OpenAPI\"\n })), \"\\n\", React.createElement(_components.p, null, \"Writing YAML by hand is no fun, but you can simplify the process of writing OpenAPI definition files by using a Domain Specific Language (DSL).\"), \"\\n\", React.createElement(_components.p, null, \"Thanks to ZenWave SDK, you can convert JDL models into OpenAPI definition files. This can save time and effort in the development process while ensuring that your APIs follow best practices and standards.\"), \"\\n\", React.createElement(_components.h2, {\n id: \"jdl-example\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#jdl-example\",\n \"aria-label\": \"jdl example permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"JDL Example\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-zdl\"\n }, \"@aggregate\\r\\nentity Customer {\\r\\n username String required minlength(3) maxlength(250)\\r\\n password String required minlength(3) maxlength(250)\\r\\n email String required minlength(3) maxlength(250)\\r\\n firstName String required minlength(3) maxlength(250)\\r\\n lastName String required minlength(3) maxlength(250)\\r\\n}\\r\\nentity Address {\\r\\n street String\\r\\n city String\\r\\n country String\\r\\n zipCode String\\r\\n}\\r\\n\\r\\nrelationship OneToOne {\\r\\n Customer{address} to Address{customer}\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"It will add \", React.createElement(_components.code, null, \"x-business-entity\"), \" and \", React.createElement(_components.code, null, \"x-business-entity-paginated\"), \" to generated schemas, very useful if you are also using ZenWave to generate a complete backend from JDL\"), \"\\n\", React.createElement(_components.h2, {\n id: \"generating-openapi-definition-files-from-jdl-with-zenwavesdk-1\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#generating-openapi-definition-files-from-jdl-with-zenwavesdk-1\",\n \"aria-label\": \"generating openapi definition files from jdl with zenwavesdk 1 permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Generating OpenAPI definition files from JDL with ZenWaveSDK\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"See \", React.createElement(_components.a, {\n href: \"https://www.zenwave360.io/zenwave-sdk/plugins/jdl-to-openapi/\"\n }, \"JDL To OpenAPI Generator\"), \" for a complete list of options and \", React.createElement(_components.a, {\n href: \"https://github.com/zenwave360/zenwave-sdk\"\n }, \"GitHub repository\"), \" for install instructions.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK will generate CRUD operations for your entities, including paginated lists and search operations.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-shell\"\n }, \"jbang zw -p io.zenwave360.sdk.plugins.ZDLToOpenAPIPlugin \\\\\\r\\n zdlFile=entities-model.jdl \\\\\\r\\n idType=integer \\\\\\r\\n idTypeFormat=int64 \\\\\\r\\n targetFolder=. \\\\\\r\\n targetFile=openapi.yml\\n\")), \"\\n\", React.createElement(_components.p, null, \"By using JDL to define your domain model and ZenWave SDK to convert it into an OpenAPI definition file, you can simplify the process of designing and documenting your APIs. This can improve the overall quality and consistency of your APIs, while also reducing errors and inconsistencies.\"));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/posts/JHipster-As-IDL-for-OpenAPIv3.md\";\nimport {graphql} from \"gatsby\";\nexport const postQuery = graphql`\n query PostPage($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PostTemplate({children}) {\n return children;\n}\nPostTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PostTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n"],"names":["_createMdxContent","props","_components","Object","assign","h1","a","div","p","img","h2","pre","code","blockquote","_provideComponents","components","React","id","style","position","href","className","dangerouslySetInnerHTML","__html","src","alt","wrapper","MDXLayout","PostTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js new file mode 100644 index 0000000..d6b1021 --- /dev/null +++ b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[542],{740:function(e,n,r){r.r(n),r.d(n,{default:function(){return l}});var t=r(27378),a=r(20951);function o(e){const n=Object.assign({p:"p",img:"img",h2:"h2",a:"a",div:"div",code:"code",ul:"ul",li:"li",strong:"strong",pre:"pre",h3:"h3",blockquote:"blockquote",em:"em"},(0,a.ah)(),e.components);return t.createElement(t.Fragment,null,t.createElement(n.p,null,t.createElement(n.img,{src:"./ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg",alt:"AsyncAPI and Spring Cloud Streams 3"})),"\n",t.createElement(n.h2,{id:"api-first-with-asyncapi-and-zenwave-sdk",style:{position:"relative"}},t.createElement(n.a,{href:"#api-first-with-asyncapi-and-zenwave-sdk","aria-label":"api first with asyncapi and zenwave sdk permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"API-First with AsyncAPI and ZenWave SDK"),"\n",t.createElement(n.p,null,"With ZenWave's ",t.createElement(n.code,null,"spring-cloud-streams3")," and ",t.createElement(n.code,null,"jsonschema2pojo")," plugins you can generate:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Strongly typed ",t.createElement(n.strong,null,"business interfaces")),"\n",t.createElement(n.li,null,t.createElement(n.strong,null,"Payload DTOs")," and"),"\n",t.createElement(n.li,null,t.createElement(n.strong,null,"Header objects")," from AsyncAPI definitions."),"\n"),"\n",t.createElement(n.p,null,"It uses Spring Cloud Streams as default implementation, so it can connect to many different brokers via provided binders."),"\n",t.createElement(n.p,null,"And because everything is hidden behind interfaces we can encapsulate many Enterprise Integration Patterns:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Transactional Outbox: with MongoDB ChangeStreams, Plain SQL and Debezium SQL flavors"),"\n",t.createElement(n.li,null,"Business DeadLetter Queues: allowing you to route different business Exceptions to different DeadLetter queues for non-retrayable errors."),"\n",t.createElement(n.li,null,"Enterprise Envelope: when your organization uses a common Envelope for messages, you can still express your AsyncAPI definition in terms of your business payload."),"\n"),"\n",t.createElement(n.p,null,"See ",t.createElement(n.a,{href:"https://www.zenwave360.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/#options"},"AsyncAPI and Spring Cloud Streams 3 Configuration Options")," and ",t.createElement(n.a,{href:"/ZenWave-Code-Generator/Maven-Plugin"},"ZenWave Maven Plugin")," for more details."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-xml"},"\r\n io.github.zenwave360.zenwave-sdk\r\n zenwave-sdk-maven-plugin\r\n ${zenwave.version}\r\n \r\n classpath:/model/asyncapi.yml\r\n true\r\n true\r\n \r\n \r\n \x3c!-- DTOs --\x3e\r\n \r\n generate-asyncapi-dtos\r\n generate-sources\r\n \r\n generate\r\n \r\n \r\n jsonschema2pojo\r\n \r\n io.zenwave360.example.core.domain.events\r\n \x3c!-- true--\x3e\r\n true\r\n \r\n \r\n \r\n \x3c!-- Generate PROVIDER --\x3e\r\n \r\n generate-asyncapi\r\n generate-sources\r\n \r\n generate\r\n \r\n \r\n spring-cloud-streams3\r\n \r\n provider\r\n \r\n mongodb\r\n io.zenwave360.example.core.domain.events\r\n io.zenwave360.example.core.outbound.events\r\n io.zenwave360.example.adapters.commands\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-spring-cloud-streams3\r\n ${zenwave.version}\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-jsonschema2pojo\r\n ${zenwave.version}\r\n \r\n \r\n\n")),"\n",t.createElement(n.p,null,t.createElement(n.img,{src:"./spring-cloud-streams3-generated.png",alt:"ZenWave StreamCloudStreams AsyncAPI"})),"\n",t.createElement(n.h3,{id:"provider-vs-client",style:{position:"relative"}},t.createElement(n.a,{href:"#provider-vs-client","aria-label":"provider vs client permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Provider vs Client"),"\n",t.createElement(n.p,null,"Because broker based API definitions are inherently ",t.createElement(n.strong,null,"symmetrical")," it's difficult to establish the roles of client/server. ZenWave generates code based on ",t.createElement(n.code,null,"provider")," and ",t.createElement(n.code,null,"client")," roles, where a ",t.createElement(n.code,null,"provider"),' "produces events" and "consumes commands". See ',t.createElement(n.a,{href:"API-First-with-AsyncAPI"},"API-First with AsyncAPI"),' page for more details on "publish/subscribe", "producer/consumer" and "provider/client" roles.'),"\n",t.createElement(n.blockquote,null,"\n",t.createElement(n.p,null,"Write your AsyncAPI definitions from the ",t.createElement(n.code,null,"provider")," perspective and then configure the code generator to generate either a ",t.createElement(n.code,null,"provider")," or a ",t.createElement(n.code,null,"client"),"."),"\n"),"\n",t.createElement(n.p,null,"If you still find confusing which is a provider and a client just use this rule: In a given messaging scenario, there can be only one provider of a message, while there can be multiple clients.. If the provider is producing messages, use the ",t.createElement(n.code,null,"publish")," section. If the provider is consuming messages, use the ",t.createElement(n.code,null,"subscribe")," section."),"\n",t.createElement(n.h3,{id:"spring-cloud-streams-producer-using-generated-code-to-produce-messages",style:{position:"relative"}},t.createElement(n.a,{href:"#spring-cloud-streams-producer-using-generated-code-to-produce-messages","aria-label":"spring cloud streams producer using generated code to produce messages permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Spring Cloud Streams Producer: Using generated code to produce messages"),"\n",t.createElement(n.p,null,"On the producer side generates:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Interface ",t.createElement(n.code,null,"ICustomerEventsProducer")," to produce typed messages that uses your domain names: ",t.createElement(n.code,null,"onCustomerEvent"),", ",t.createElement(n.code,null,"CustomerEventPayload")," and ",t.createElement(n.code,null,"CustomerEventPayloadHeaders"),"."),"\n",t.createElement(n.li,null,"Producer ",t.createElement(n.code,null,"@Component")," ",t.createElement(n.code,null,"CustomerEventsProducer")," you can autowire in your services."),"\n"),"\n",t.createElement(n.p,null,t.createElement(n.strong,null,"In order to produce messages all you need to do is @Autowire the generated producer as part of your code.")),"\n",t.createElement(n.p,null,"This producer component, because sits behind a business oriented interface, can be implemented in different flavors and integration patterns like transactional outbox (for mongodb and sql) or enterprise envelop depending on how you configure zenwave maven generator."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// Autogenerated: you can @Autowire it in your code\r\npublic interface ICustomerEventsProducer {\r\n // headers object omitted for brevity\r\n /**\r\n * Customer Domain Events\r\n */\r\n boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers);\r\n\r\n}\n")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},'// Autogenerated: add it to your autoscan packages\r\n@Component\r\npublic class CustomerEventsProducer implements ICustomerEventsProducer {\r\n \r\n // details omitted for brevity\r\n \r\n /**\r\n * Customer Domain Events\r\n */\r\n public boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {\r\n // this is one of the many flavors, you shouldn\'t need to worry about the details\r\n log.debug("Sending message to topic: {}", onCustomerEventBindingName);\r\n Message message = MessageBuilder.createMessage(payload, new MessageHeaders(headers));\r\n return streamBridge.send(onCustomerEventBindingName, message);\r\n }\r\n}\n')),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},'// Autowire this producer in your code\r\n@Autowired\r\nICustomerEventsProducer customerEventsProducer;\r\n\r\n// and use it to produce messages\r\nvar message = new CustomerEventPayload()\r\n .withCustomerId("123")\r\n // [...] set some more data\r\n .withEventType(CustomerEventPayload.EventType.CREATED);\r\n// notice how headers are also strongly typed\r\nvar headers = new ICustomerEventsProducer.CustomerEventPayloadHeaders()\r\n .entityId("123")\r\n .commonHeader("value")\r\n .set("undocumented-header", "value");\r\n\r\ncustomerEventsProducer.onCustomerEvent(message, headers);\n')),"\n",t.createElement(n.h3,{id:"spring-cloud-streams-consumer-using-generated-code-to-consume-messages",style:{position:"relative"}},t.createElement(n.a,{href:"#spring-cloud-streams-consumer-using-generated-code-to-consume-messages","aria-label":"spring cloud streams consumer using generated code to consume messages permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Spring Cloud Streams Consumer: Using generated code to consume messages"),"\n",t.createElement(n.p,null,"On the consumer side generates:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Functional Consumer ",t.createElement(n.code,null,"DoCustomerRequestConsumer")," for Spring Cloud Streams bindings."),"\n",t.createElement(n.li,null,"Business Interface ",t.createElement(n.code,null,"IDoCustomerRequestConsumerService")," you need to implement in order to receive strongly typed messages."),"\n"),"\n",t.createElement(n.p,null,"This Functional Consumer can abstract away different integration patterns like Business Dead Letter Queue and others... depending on how you configure zenwave maven generator."),"\n",t.createElement(n.p,null,t.createElement(n.strong,null,"To consume messages you need to implement generated business interface and register it as a Spring bean.")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// Autogenerated: you need to implement and provide this business interface\r\npublic interface IOnCustomerEventConsumerService {\r\n /**\r\n * Customer Domain Events\r\n */\r\n default void onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {};\r\n}\n")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},'// Autogenerated: add it to your autoscan packages and provide business interface implementation\r\n@Component("on-customer-event")\r\npublic class OnCustomerEventConsumer implements Consumer> {\r\n\r\n // you need to implement this interface\r\n protected IOnCustomerEventConsumerService service;\r\n\r\n @Override\r\n public void accept(Message message) {\r\n log.debug("Received message: {}", message);\r\n try {\r\n Object payload = message.getPayload();\r\n if (payload instanceof CustomerEventPayload) {\r\n var headers = new IOnCustomerEventConsumerService.CustomerEventPayloadHeaders();\r\n headers.putAll(message.getHeaders());\r\n service.onCustomerEvent((CustomerEventPayload) payload, headers);\r\n return;\r\n }\r\n log.error("Received message without any business handler: [payload: {}, message: {}]", payload.getClass().getName(), message);\r\n } catch (Exception e) {\r\n // error handling and dead-letter-queue routing omitted for brevity\r\n }\r\n }\r\n}\n')),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// Implement the business interface and add it to your context\r\n@Component\r\nclass DoCustomerRequestConsumerService implements IDoCustomerRequestConsumerService {\r\n\r\n @Override\r\n public void doCustomerRequest(CustomerRequestPayload payload, CustomerRequestPayloadHeaders headers) {\r\n log.info(\"Received '{}' message with payload: {}\", payload.getClass(), payload);\r\n // [...] do something with this message\r\n }\r\n}\n")),"\n",t.createElement(n.h3,{id:"exception-handling-with-business-dead-letter-queue",style:{position:"relative"}},t.createElement(n.a,{href:"#exception-handling-with-business-dead-letter-queue","aria-label":"exception handling with business dead letter queue permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Exception Handling with Business Dead Letter Queue"),"\n",t.createElement(n.p,null,"ZenWave SDK consumers can be configured to route exceptions to different error queues. This is useful to manage non-retryable business exceptions so the stream processing is not interrupted. If your code throws an exception not configured for error routing it will be rethrow and it will follow the standard error handling mechanism for your particular Spring Cloud Stream binder."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-yaml"},"spring.cloud.stream.bindings:\r\n on-customer-event-in-0:\r\n destination: customer.events\r\n content-type: application/json\r\n # configuring error routing for this consumer\r\n dead-letter-queue-error-map: >\r\n {\r\n 'javax.validation.ValidationException': 'on-customer-event-validation-error-out-0',\r\n 'java.lang.Exception': 'on-customer-event-error-out-0'\r\n }\n")),"\n",t.createElement(n.h2,{id:"populating-headers-at-runtime-automatically",style:{position:"relative"}},t.createElement(n.a,{href:"#populating-headers-at-runtime-automatically","aria-label":"populating headers at runtime automatically permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Populating Headers at Runtime Automatically"),"\n",t.createElement(n.p,null,"ZenWave SDK provides ",t.createElement(n.code,null,"x-runtime-expression")," for automatic header population at runtime. Values for this extension property are:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,t.createElement(n.code,null,"$message.payload#/"),": follows the same format as AsyncAPI ",t.createElement(n.a,{href:"https://www.asyncapi.com/docs/reference/specification/v2.5.0#correlationIdObject"},"Correlation ID")," object."),"\n",t.createElement(n.li,null,t.createElement(n.code,null,"$tracingIdSupplier"),": will use the tracing id ",t.createElement(n.code,null,"java.function.Supplier")," configured in your Spring context."),"\n"),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-yaml"}," CustomerEventMessage:\r\n name: CustomerEventMessage\r\n // [...] other properties omitted for brevity\r\n headers:\r\n type: object\r\n properties:\r\n kafka_messageKey:\r\n type: string\r\n description: This one will be populated automatically at runtime\r\n x-runtime-expression: $message.payload#/customer/id\r\n tracingId:\r\n type: string\r\n description: This one will be populated automatically at runtime\r\n x-runtime-expression: $tracingIdSupplier\n")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-xml"},'\r\n myTracingIdSupplier\x3c!-- default is "tracingIdSupplier" --\x3e\r\n x-custom-runtime-expression\x3c!-- you can also override this extension property name --\x3e\r\n\n')),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},' @Bean("myTracingIdSupplier")\r\n public Supplier tracingIdSupplier() {\r\n return () -> "test-tracing-id";\r\n }\n')),"\n",t.createElement(n.h3,{id:"inmemory-producers-as-testdoubles",style:{position:"relative"}},t.createElement(n.a,{href:"#inmemory-producers-as-testdoubles","aria-label":"inmemory producers as testdoubles permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"InMemory Producers as TestDoubles"),"\n",t.createElement(n.p,null,"Alongside the generated producer, ZenWave SDK also generates an ",t.createElement(n.em,null,"in-memory producer captor")," that can be used as a test double and a singletone manual context so you easily include them in your unit/integration tests."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// generated class, you can use in your tests\r\npublic class ProducerInMemoryContext {\r\n\r\n public static final ProducerInMemoryContext INSTANCE = new ProducerInMemoryContext();\r\n\r\n\r\n private CustomerEventsProducerCaptor customerEventsProducerCaptor = new CustomerEventsProducerCaptor();\r\n\r\n public T customerEventsProducer() {\r\n return (T) customerEventsProducerCaptor;\r\n }\r\n}\n")),"\n",t.createElement(n.p,null,"And use it in your tests to instantiate your service and perform assertions in your tests. You can find ",t.createElement(n.a,{href:"https://github.com/ivangsa/spring-boot-mongodb-elasticsearch-kafka-example/blob/e8fa9c89e5f3d72b90ac23749f636fc7640bdf39/src/test/java/io/zenwave360/example/core/implementation/CustomerUseCasesTest.java#L70"},"a working example here"),"."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// example of how you can instantiate your service using the in-memory producer captor\r\npublic class InMemoryTestsManualContext extends InMemoryTestsConfig {\r\n\r\n // [...] other beans omitted for brevity\r\n \r\n public CustomerUseCasesImpl customerUseCases() {\r\n // instantiating a bean with in-memory dependencies\r\n return new CustomerUseCasesImpl(customerRepository(), ProducerInMemoryContext.INSTANCE.customerEventsProducer());\r\n }\r\n}\r\n\r\n// and using it in your tests to perform assertions\r\npublic class CustomerUseCasesTest {\r\n \r\n // this is the in-memory producer captor wired\r\n CustomerEventsProducerCaptor customerEventsProducer = ProducerInMemoryContext.INSTANCE.customerEventsProducer();\r\n\r\n @Test\r\n void testCustomerUseCase() {\r\n // [...] test your use case\r\n Assertions.assertEquals(3, customerEventsProducer.getCapturedMessages(customerEventsProducer.onCustomerEventBindingName).size());\r\n }\r\n}\n")),"\n",t.createElement(n.h2,{id:"enterprise-integration-patterns",style:{position:"relative"}},t.createElement(n.a,{href:"#enterprise-integration-patterns","aria-label":"enterprise integration patterns permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Enterprise Integration Patterns"),"\n",t.createElement(n.p,null,"Because access to the underlying implementation is encapsulated behind the generated interfaces, it's possible to implement many Enterprise Integration Patterns (EIP) on top of them."),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Transactional-Outbox"},"Transactional Outbox:")," for MongoDB, plain JDBC and Debezium SQL"),"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Business-Dead-Letter-Queue"},"Business DeadLetterQueue")),"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Enterprise-Envelop"},"Enterprise Envelop")),"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Async-Request-Response"},"Async Request/Response")," (coming soon with AsyncAPI v3)"),"\n"))}var s=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?t.createElement(n,e,t.createElement(o,e)):o(e)};function i(e){let{children:n}=e;return n}function l(e){return t.createElement(i,e,t.createElement(s,e))}}}]); +//# sourceMappingURL=component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js.map b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js.map new file mode 100644 index 0000000..8f8540d --- /dev/null +++ b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-6b13679dd676d0afb475.js","mappings":"6KAGA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,KAAM,OACNC,GAAI,KACJC,GAAI,KACJC,OAAQ,SACRC,IAAK,MACLC,GAAI,KACJC,WAAY,aACZC,GAAI,OACHC,EAAAA,EAAAA,MAAsBjB,EAAMkB,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYI,IAAK,CAC7He,IAAK,0DACLC,IAAK,yCACF,KAAMF,EAAAA,cAAoBlB,EAAYK,GAAI,CAC7CgB,GAAI,0CACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,2CACN,aAAc,oDACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,2CAA4C,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,kBAAmBe,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,yBAA0B,QAASU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,mBAAoB,8BAA+B,KAAMU,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,kBAAmBQ,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,wBAAyB,KAAMO,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,gBAAiB,QAAS,KAAMO,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,kBAAmB,+BAAgC,MAAO,KAAMO,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,6HAA8H,KAAMe,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,+GAAgH,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,wFAAyF,KAAMQ,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,6IAA8I,KAAMQ,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,sKAAuK,MAAO,KAAMQ,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,OAAQe,EAAAA,cAAoBlB,EAAYM,EAAG,CACpuDkB,KAAM,yFACL,6DAA8D,QAASN,EAAAA,cAAoBlB,EAAYM,EAAG,CAC3GkB,KAAM,wCACL,wBAAyB,sBAAuB,KAAMN,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACxIiB,UAAW,gBACV,gqFAA+oF,KAAMP,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYI,IAAK,CACpuFe,IAAK,wCACLC,IAAK,yCACF,KAAMF,EAAAA,cAAoBlB,EAAYa,GAAI,CAC7CQ,GAAI,qBACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,sBACN,aAAc,+BACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,sBAAuB,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,uDAAwDe,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,eAAgB,4FAA6FO,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,QAASU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,UAAW,mBAAoBU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,mDAAwDU,EAAAA,cAAoBlB,EAAYM,EAAG,CAC7jBkB,KAAM,2BACL,2BAA4B,mGAA0G,KAAMN,EAAAA,cAAoBlB,EAAYc,WAAY,KAAM,KAAMI,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,4CAA6Ce,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,2EAA4EU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,SAAUU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,UAAW,KAAM,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,qPAAsPe,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,WAAY,4DAA6DU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,aAAc,aAAc,KAAMU,EAAAA,cAAoBlB,EAAYa,GAAI,CACnjCQ,GAAI,yEACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,0EACN,aAAc,mFACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,2EAA4E,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mCAAoC,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,aAAcQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,2BAA4B,2DAA4DU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,mBAAoB,KAAMU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,wBAAyB,QAASU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,+BAAgC,KAAM,KAAMU,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,YAAaQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,cAAe,IAAKU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,0BAA2B,uCAAwC,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,8GAA+G,KAAMO,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,8QAA+Q,KAAMe,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC98CiB,UAAW,iBACV,wTAAyT,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACjZiB,UAAW,iBACV,otBAAstB,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC9yBiB,UAAW,iBACV,2nBAAsoB,KAAMP,EAAAA,cAAoBlB,EAAYa,GAAI,CACjrBQ,GAAI,yEACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,0EACN,aAAc,mFACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,2EAA4E,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mCAAoC,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,uBAAwBQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,6BAA8B,wCAAyC,KAAMU,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,sBAAuBQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,qCAAsC,uEAAwE,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mLAAoL,KAAMe,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,6GAA8G,KAAMO,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC1nCiB,UAAW,iBACV,+SAAgT,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACxYiB,UAAW,iBACV,qqCAA4qC,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACpwCiB,UAAW,iBACV,8cAA+c,KAAMP,EAAAA,cAAoBlB,EAAYa,GAAI,CAC1fQ,GAAI,qDACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,sDACN,aAAc,+DACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,sDAAuD,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,gYAAiY,KAAMe,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACjkBiB,UAAW,iBACV,+aAAgb,KAAMP,EAAAA,cAAoBlB,EAAYK,GAAI,CAC3dgB,GAAI,8CACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,+CACN,aAAc,wDACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,+CAAgD,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,wBAAyBe,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,wBAAyB,wFAAyF,KAAMU,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,6CAA8C,yCAA0CU,EAAAA,cAAoBlB,EAAYM,EAAG,CAChiBkB,KAAM,oFACL,kBAAmB,YAAa,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,sBAAuB,6BAA8BU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,0BAA2B,uCAAwC,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC/XiB,UAAW,iBACV,skBAAukB,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC/pBiB,UAAW,gBACV,8TAAqT,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC7YiB,UAAW,iBACV,wIAA6I,KAAMP,EAAAA,cAAoBlB,EAAYa,GAAI,CACxLQ,GAAI,oCACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,qCACN,aAAc,8CACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,qCAAsC,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mEAAoEe,EAAAA,cAAoBlB,EAAYe,GAAI,KAAM,6BAA8B,iIAAkI,KAAMG,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC7biB,UAAW,iBACV,2cAA4c,KAAMP,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,2GAA4Ge,EAAAA,cAAoBlB,EAAYM,EAAG,CAC3oBkB,KAAM,kNACL,0BAA2B,KAAM,KAAMN,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACzHiB,UAAW,iBACV,m/BAAo/B,KAAMP,EAAAA,cAAoBlB,EAAYK,GAAI,CAC/hCgB,GAAI,kCACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,mCACN,aAAc,4CACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,mCAAoC,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,0LAA2L,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CACpZkB,KAAM,wDACL,yBAA0B,6CAA8C,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CAC5JkB,KAAM,8DACL,6BAA8B,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CAClHkB,KAAM,sDACL,uBAAwB,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CAC5GkB,KAAM,0DACL,0BAA2B,mCAAoC,MACnE,CAKD,MAJA,SAAoBzB,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAO6B,QAASC,GAAa5B,OAAOC,OAAO,CAAC,GAAGc,EAAAA,EAAAA,MAAsBjB,EAAMkB,YAC3E,OAAOY,EAAYX,EAAAA,cAAoBW,EAAW9B,EAAOmB,EAAAA,cAAoBpB,EAAmBC,IAAUD,EAAkBC,EAC7H,ECrKD,SAAS+B,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiBlC,GACvC,OAAOmB,EAAAA,cAAoBY,EAAc/B,EAAOmB,EAAAA,cAAoBgB,EAAqBnC,GAC1F,C","sources":["webpack://website/./pages/posts/ZenWave-AsyncAPI-Code-Generator.md","webpack://website/../smooth-doc/src/templates/post.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n p: \"p\",\n img: \"img\",\n h2: \"h2\",\n a: \"a\",\n div: \"div\",\n code: \"code\",\n ul: \"ul\",\n li: \"li\",\n strong: \"strong\",\n pre: \"pre\",\n h3: \"h3\",\n blockquote: \"blockquote\",\n em: \"em\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg\",\n alt: \"AsyncAPI and Spring Cloud Streams 3\"\n })), \"\\n\", React.createElement(_components.h2, {\n id: \"api-first-with-asyncapi-and-zenwave-sdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#api-first-with-asyncapi-and-zenwave-sdk\",\n \"aria-label\": \"api first with asyncapi and zenwave sdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"API-First with AsyncAPI and ZenWave SDK\"), \"\\n\", React.createElement(_components.p, null, \"With ZenWave's \", React.createElement(_components.code, null, \"spring-cloud-streams3\"), \" and \", React.createElement(_components.code, null, \"jsonschema2pojo\"), \" plugins you can generate:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Strongly typed \", React.createElement(_components.strong, null, \"business interfaces\")), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.strong, null, \"Payload DTOs\"), \" and\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.strong, null, \"Header objects\"), \" from AsyncAPI definitions.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"It uses Spring Cloud Streams as default implementation, so it can connect to many different brokers via provided binders.\"), \"\\n\", React.createElement(_components.p, null, \"And because everything is hidden behind interfaces we can encapsulate many Enterprise Integration Patterns:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Transactional Outbox: with MongoDB ChangeStreams, Plain SQL and Debezium SQL flavors\"), \"\\n\", React.createElement(_components.li, null, \"Business DeadLetter Queues: allowing you to route different business Exceptions to different DeadLetter queues for non-retrayable errors.\"), \"\\n\", React.createElement(_components.li, null, \"Enterprise Envelope: when your organization uses a common Envelope for messages, you can still express your AsyncAPI definition in terms of your business payload.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"See \", React.createElement(_components.a, {\n href: \"https://www.zenwave360.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/#options\"\n }, \"AsyncAPI and Spring Cloud Streams 3 Configuration Options\"), \" and \", React.createElement(_components.a, {\n href: \"/ZenWave-Code-Generator/Maven-Plugin\"\n }, \"ZenWave Maven Plugin\"), \" for more details.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n io.github.zenwave360.zenwave-sdk\\r\\n zenwave-sdk-maven-plugin\\r\\n ${zenwave.version}\\r\\n \\r\\n classpath:/model/asyncapi.yml\\r\\n true\\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi-dtos\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n jsonschema2pojo\\r\\n \\r\\n io.zenwave360.example.core.domain.events\\r\\n \\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n spring-cloud-streams3\\r\\n \\r\\n provider\\r\\n \\r\\n mongodb\\r\\n io.zenwave360.example.core.domain.events\\r\\n io.zenwave360.example.core.outbound.events\\r\\n io.zenwave360.example.adapters.commands\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-spring-cloud-streams3\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-jsonschema2pojo\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n\\n\")), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./spring-cloud-streams3-generated.png\",\n alt: \"ZenWave StreamCloudStreams AsyncAPI\"\n })), \"\\n\", React.createElement(_components.h3, {\n id: \"provider-vs-client\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#provider-vs-client\",\n \"aria-label\": \"provider vs client permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Provider vs Client\"), \"\\n\", React.createElement(_components.p, null, \"Because broker based API definitions are inherently \", React.createElement(_components.strong, null, \"symmetrical\"), \" it's difficult to establish the roles of client/server. ZenWave generates code based on \", React.createElement(_components.code, null, \"provider\"), \" and \", React.createElement(_components.code, null, \"client\"), \" roles, where a \", React.createElement(_components.code, null, \"provider\"), \" \\\"produces events\\\" and \\\"consumes commands\\\". See \", React.createElement(_components.a, {\n href: \"API-First-with-AsyncAPI\"\n }, \"API-First with AsyncAPI\"), \" page for more details on \\\"publish/subscribe\\\", \\\"producer/consumer\\\" and \\\"provider/client\\\" roles.\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"Write your AsyncAPI definitions from the \", React.createElement(_components.code, null, \"provider\"), \" perspective and then configure the code generator to generate either a \", React.createElement(_components.code, null, \"provider\"), \" or a \", React.createElement(_components.code, null, \"client\"), \".\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"If you still find confusing which is a provider and a client just use this rule: In a given messaging scenario, there can be only one provider of a message, while there can be multiple clients.. If the provider is producing messages, use the \", React.createElement(_components.code, null, \"publish\"), \" section. If the provider is consuming messages, use the \", React.createElement(_components.code, null, \"subscribe\"), \" section.\"), \"\\n\", React.createElement(_components.h3, {\n id: \"spring-cloud-streams-producer-using-generated-code-to-produce-messages\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#spring-cloud-streams-producer-using-generated-code-to-produce-messages\",\n \"aria-label\": \"spring cloud streams producer using generated code to produce messages permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Spring Cloud Streams Producer: Using generated code to produce messages\"), \"\\n\", React.createElement(_components.p, null, \"On the producer side generates:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Interface \", React.createElement(_components.code, null, \"ICustomerEventsProducer\"), \" to produce typed messages that uses your domain names: \", React.createElement(_components.code, null, \"onCustomerEvent\"), \", \", React.createElement(_components.code, null, \"CustomerEventPayload\"), \" and \", React.createElement(_components.code, null, \"CustomerEventPayloadHeaders\"), \".\"), \"\\n\", React.createElement(_components.li, null, \"Producer \", React.createElement(_components.code, null, \"@Component\"), \" \", React.createElement(_components.code, null, \"CustomerEventsProducer\"), \" you can autowire in your services.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.strong, null, \"In order to produce messages all you need to do is @Autowire the generated producer as part of your code.\")), \"\\n\", React.createElement(_components.p, null, \"This producer component, because sits behind a business oriented interface, can be implemented in different flavors and integration patterns like transactional outbox (for mongodb and sql) or enterprise envelop depending on how you configure zenwave maven generator.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: you can @Autowire it in your code\\r\\npublic interface ICustomerEventsProducer {\\r\\n // headers object omitted for brevity\\r\\n /**\\r\\n * Customer Domain Events\\r\\n */\\r\\n boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers);\\r\\n\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: add it to your autoscan packages\\r\\n@Component\\r\\npublic class CustomerEventsProducer implements ICustomerEventsProducer {\\r\\n \\r\\n // details omitted for brevity\\r\\n \\r\\n /**\\r\\n * Customer Domain Events\\r\\n */\\r\\n public boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {\\r\\n // this is one of the many flavors, you shouldn't need to worry about the details\\r\\n log.debug(\\\"Sending message to topic: {}\\\", onCustomerEventBindingName);\\r\\n Message message = MessageBuilder.createMessage(payload, new MessageHeaders(headers));\\r\\n return streamBridge.send(onCustomerEventBindingName, message);\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autowire this producer in your code\\r\\n@Autowired\\r\\nICustomerEventsProducer customerEventsProducer;\\r\\n\\r\\n// and use it to produce messages\\r\\nvar message = new CustomerEventPayload()\\r\\n .withCustomerId(\\\"123\\\")\\r\\n // [...] set some more data\\r\\n .withEventType(CustomerEventPayload.EventType.CREATED);\\r\\n// notice how headers are also strongly typed\\r\\nvar headers = new ICustomerEventsProducer.CustomerEventPayloadHeaders()\\r\\n .entityId(\\\"123\\\")\\r\\n .commonHeader(\\\"value\\\")\\r\\n .set(\\\"undocumented-header\\\", \\\"value\\\");\\r\\n\\r\\ncustomerEventsProducer.onCustomerEvent(message, headers);\\n\")), \"\\n\", React.createElement(_components.h3, {\n id: \"spring-cloud-streams-consumer-using-generated-code-to-consume-messages\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#spring-cloud-streams-consumer-using-generated-code-to-consume-messages\",\n \"aria-label\": \"spring cloud streams consumer using generated code to consume messages permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Spring Cloud Streams Consumer: Using generated code to consume messages\"), \"\\n\", React.createElement(_components.p, null, \"On the consumer side generates:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Functional Consumer \", React.createElement(_components.code, null, \"DoCustomerRequestConsumer\"), \" for Spring Cloud Streams bindings.\"), \"\\n\", React.createElement(_components.li, null, \"Business Interface \", React.createElement(_components.code, null, \"IDoCustomerRequestConsumerService\"), \" you need to implement in order to receive strongly typed messages.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"This Functional Consumer can abstract away different integration patterns like Business Dead Letter Queue and others... depending on how you configure zenwave maven generator.\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.strong, null, \"To consume messages you need to implement generated business interface and register it as a Spring bean.\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: you need to implement and provide this business interface\\r\\npublic interface IOnCustomerEventConsumerService {\\r\\n /**\\r\\n * Customer Domain Events\\r\\n */\\r\\n default void onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {};\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: add it to your autoscan packages and provide business interface implementation\\r\\n@Component(\\\"on-customer-event\\\")\\r\\npublic class OnCustomerEventConsumer implements Consumer> {\\r\\n\\r\\n // you need to implement this interface\\r\\n protected IOnCustomerEventConsumerService service;\\r\\n\\r\\n @Override\\r\\n public void accept(Message message) {\\r\\n log.debug(\\\"Received message: {}\\\", message);\\r\\n try {\\r\\n Object payload = message.getPayload();\\r\\n if (payload instanceof CustomerEventPayload) {\\r\\n var headers = new IOnCustomerEventConsumerService.CustomerEventPayloadHeaders();\\r\\n headers.putAll(message.getHeaders());\\r\\n service.onCustomerEvent((CustomerEventPayload) payload, headers);\\r\\n return;\\r\\n }\\r\\n log.error(\\\"Received message without any business handler: [payload: {}, message: {}]\\\", payload.getClass().getName(), message);\\r\\n } catch (Exception e) {\\r\\n // error handling and dead-letter-queue routing omitted for brevity\\r\\n }\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Implement the business interface and add it to your context\\r\\n@Component\\r\\nclass DoCustomerRequestConsumerService implements IDoCustomerRequestConsumerService {\\r\\n\\r\\n @Override\\r\\n public void doCustomerRequest(CustomerRequestPayload payload, CustomerRequestPayloadHeaders headers) {\\r\\n log.info(\\\"Received '{}' message with payload: {}\\\", payload.getClass(), payload);\\r\\n // [...] do something with this message\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h3, {\n id: \"exception-handling-with-business-dead-letter-queue\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#exception-handling-with-business-dead-letter-queue\",\n \"aria-label\": \"exception handling with business dead letter queue permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Exception Handling with Business Dead Letter Queue\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK consumers can be configured to route exceptions to different error queues. This is useful to manage non-retryable business exceptions so the stream processing is not interrupted. If your code throws an exception not configured for error routing it will be rethrow and it will follow the standard error handling mechanism for your particular Spring Cloud Stream binder.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-yaml\"\n }, \"spring.cloud.stream.bindings:\\r\\n on-customer-event-in-0:\\r\\n destination: customer.events\\r\\n content-type: application/json\\r\\n # configuring error routing for this consumer\\r\\n dead-letter-queue-error-map: >\\r\\n {\\r\\n 'javax.validation.ValidationException': 'on-customer-event-validation-error-out-0',\\r\\n 'java.lang.Exception': 'on-customer-event-error-out-0'\\r\\n }\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"populating-headers-at-runtime-automatically\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#populating-headers-at-runtime-automatically\",\n \"aria-label\": \"populating headers at runtime automatically permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Populating Headers at Runtime Automatically\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK provides \", React.createElement(_components.code, null, \"x-runtime-expression\"), \" for automatic header population at runtime. Values for this extension property are:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(_components.code, null, \"$message.payload#/\"), \": follows the same format as AsyncAPI \", React.createElement(_components.a, {\n href: \"https://www.asyncapi.com/docs/reference/specification/v2.5.0#correlationIdObject\"\n }, \"Correlation ID\"), \" object.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.code, null, \"$tracingIdSupplier\"), \": will use the tracing id \", React.createElement(_components.code, null, \"java.function.Supplier\"), \" configured in your Spring context.\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-yaml\"\n }, \" CustomerEventMessage:\\r\\n name: CustomerEventMessage\\r\\n // [...] other properties omitted for brevity\\r\\n headers:\\r\\n type: object\\r\\n properties:\\r\\n kafka_messageKey:\\r\\n type: string\\r\\n description: This one will be populated automatically at runtime\\r\\n x-runtime-expression: $message.payload#/customer/id\\r\\n tracingId:\\r\\n type: string\\r\\n description: This one will be populated automatically at runtime\\r\\n x-runtime-expression: $tracingIdSupplier\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n myTracingIdSupplier\\r\\n x-custom-runtime-expression\\r\\n\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \" @Bean(\\\"myTracingIdSupplier\\\")\\r\\n public Supplier tracingIdSupplier() {\\r\\n return () -> \\\"test-tracing-id\\\";\\r\\n }\\n\")), \"\\n\", React.createElement(_components.h3, {\n id: \"inmemory-producers-as-testdoubles\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#inmemory-producers-as-testdoubles\",\n \"aria-label\": \"inmemory producers as testdoubles permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"InMemory Producers as TestDoubles\"), \"\\n\", React.createElement(_components.p, null, \"Alongside the generated producer, ZenWave SDK also generates an \", React.createElement(_components.em, null, \"in-memory producer captor\"), \" that can be used as a test double and a singletone manual context so you easily include them in your unit/integration tests.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// generated class, you can use in your tests\\r\\npublic class ProducerInMemoryContext {\\r\\n\\r\\n public static final ProducerInMemoryContext INSTANCE = new ProducerInMemoryContext();\\r\\n\\r\\n\\r\\n private CustomerEventsProducerCaptor customerEventsProducerCaptor = new CustomerEventsProducerCaptor();\\r\\n\\r\\n public T customerEventsProducer() {\\r\\n return (T) customerEventsProducerCaptor;\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"And use it in your tests to instantiate your service and perform assertions in your tests. You can find \", React.createElement(_components.a, {\n href: \"https://github.com/ivangsa/spring-boot-mongodb-elasticsearch-kafka-example/blob/e8fa9c89e5f3d72b90ac23749f636fc7640bdf39/src/test/java/io/zenwave360/example/core/implementation/CustomerUseCasesTest.java#L70\"\n }, \"a working example here\"), \".\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// example of how you can instantiate your service using the in-memory producer captor\\r\\npublic class InMemoryTestsManualContext extends InMemoryTestsConfig {\\r\\n\\r\\n // [...] other beans omitted for brevity\\r\\n \\r\\n public CustomerUseCasesImpl customerUseCases() {\\r\\n // instantiating a bean with in-memory dependencies\\r\\n return new CustomerUseCasesImpl(customerRepository(), ProducerInMemoryContext.INSTANCE.customerEventsProducer());\\r\\n }\\r\\n}\\r\\n\\r\\n// and using it in your tests to perform assertions\\r\\npublic class CustomerUseCasesTest {\\r\\n \\r\\n // this is the in-memory producer captor wired\\r\\n CustomerEventsProducerCaptor customerEventsProducer = ProducerInMemoryContext.INSTANCE.customerEventsProducer();\\r\\n\\r\\n @Test\\r\\n void testCustomerUseCase() {\\r\\n // [...] test your use case\\r\\n Assertions.assertEquals(3, customerEventsProducer.getCapturedMessages(customerEventsProducer.onCustomerEventBindingName).size());\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"enterprise-integration-patterns\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#enterprise-integration-patterns\",\n \"aria-label\": \"enterprise integration patterns permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Enterprise Integration Patterns\"), \"\\n\", React.createElement(_components.p, null, \"Because access to the underlying implementation is encapsulated behind the generated interfaces, it's possible to implement many Enterprise Integration Patterns (EIP) on top of them.\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Transactional-Outbox\"\n }, \"Transactional Outbox:\"), \" for MongoDB, plain JDBC and Debezium SQL\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Business-Dead-Letter-Queue\"\n }, \"Business DeadLetterQueue\")), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Enterprise-Envelop\"\n }, \"Enterprise Envelop\")), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Async-Request-Response\"\n }, \"Async Request/Response\"), \" (coming soon with AsyncAPI v3)\"), \"\\n\"));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/posts/ZenWave-AsyncAPI-Code-Generator.md\";\nimport {graphql} from \"gatsby\";\nexport const postQuery = graphql`\n query PostPage($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PostTemplate({children}) {\n return children;\n}\nPostTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PostTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n"],"names":["_createMdxContent","props","_components","Object","assign","p","img","h2","a","div","code","ul","li","strong","pre","h3","blockquote","em","_provideComponents","components","React","src","alt","id","style","position","href","className","dangerouslySetInnerHTML","__html","wrapper","MDXLayout","PostTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX"],"sourceRoot":""} \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js deleted file mode 100644 index 2187a40..0000000 --- a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[542],{740:function(e,n,r){r.r(n),r.d(n,{default:function(){return l}});var t=r(27378),a=r(20951);function o(e){const n=Object.assign({p:"p",img:"img",h2:"h2",a:"a",div:"div",code:"code",ul:"ul",li:"li",strong:"strong",pre:"pre",h3:"h3",blockquote:"blockquote",em:"em"},(0,a.ah)(),e.components);return t.createElement(t.Fragment,null,t.createElement(n.p,null,t.createElement(n.img,{src:"./ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg",alt:"AsyncAPI and Spring Cloud Streams 3"})),"\n",t.createElement(n.h2,{id:"api-first-with-asyncapi-and-zenwave-sdk",style:{position:"relative"}},t.createElement(n.a,{href:"#api-first-with-asyncapi-and-zenwave-sdk","aria-label":"api first with asyncapi and zenwave sdk permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"API-First with AsyncAPI and ZenWave SDK"),"\n",t.createElement(n.p,null,"With ZenWave's ",t.createElement(n.code,null,"spring-cloud-streams3")," and ",t.createElement(n.code,null,"jsonschema2pojo")," plugins you can generate:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Strongly typed ",t.createElement(n.strong,null,"business interfaces")),"\n",t.createElement(n.li,null,t.createElement(n.strong,null,"Payload DTOs")," and"),"\n",t.createElement(n.li,null,t.createElement(n.strong,null,"Header objects")," from AsyncAPI definitions."),"\n"),"\n",t.createElement(n.p,null,"It uses Spring Cloud Streams as default implementation, so it can connect to many different brokers via provided binders."),"\n",t.createElement(n.p,null,"And because everything is hidden behind interfaces we can encapsulate many Enterprise Integration Patterns:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Transactional Outbox: with MongoDB ChangeStreams, Plain SQL and Debezium SQL flavors"),"\n",t.createElement(n.li,null,"Business DeadLetter Queues: allowing you to route different business Exceptions to different DeadLetter queues for non-retrayable errors."),"\n",t.createElement(n.li,null,"Enterprise Envelope: when your organization uses a common Envelope for messages, you can still express your AsyncAPI definition in terms of your business payload."),"\n"),"\n",t.createElement(n.p,null,"See ",t.createElement(n.a,{href:"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/#options"},"AsyncAPI and Spring Cloud Streams 3 Configuration Options")," and ",t.createElement(n.a,{href:"/ZenWave-Code-Generator/Maven-Plugin"},"ZenWave Maven Plugin")," for more details."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-xml"},"\r\n io.github.zenwave360.zenwave-sdk\r\n zenwave-sdk-maven-plugin\r\n ${zenwave.version}\r\n \r\n classpath:/model/asyncapi.yml\r\n true\r\n true\r\n \r\n \r\n \x3c!-- DTOs --\x3e\r\n \r\n generate-asyncapi-dtos\r\n generate-sources\r\n \r\n generate\r\n \r\n \r\n jsonschema2pojo\r\n \r\n io.zenwave360.example.core.domain.events\r\n \x3c!-- true--\x3e\r\n true\r\n \r\n \r\n \r\n \x3c!-- Generate PROVIDER --\x3e\r\n \r\n generate-asyncapi\r\n generate-sources\r\n \r\n generate\r\n \r\n \r\n spring-cloud-streams3\r\n \r\n provider\r\n \r\n mongodb\r\n io.zenwave360.example.core.domain.events\r\n io.zenwave360.example.core.outbound.events\r\n io.zenwave360.example.adapters.commands\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-spring-cloud-streams3\r\n ${zenwave.version}\r\n \r\n \r\n io.github.zenwave360.zenwave-sdk.plugins\r\n asyncapi-jsonschema2pojo\r\n ${zenwave.version}\r\n \r\n \r\n\n")),"\n",t.createElement(n.p,null,t.createElement(n.img,{src:"./spring-cloud-streams3-generated.png",alt:"ZenWave StreamCloudStreams AsyncAPI"})),"\n",t.createElement(n.h3,{id:"provider-vs-client",style:{position:"relative"}},t.createElement(n.a,{href:"#provider-vs-client","aria-label":"provider vs client permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Provider vs Client"),"\n",t.createElement(n.p,null,"Because broker based API definitions are inherently ",t.createElement(n.strong,null,"symmetrical")," it's difficult to establish the roles of client/server. ZenWave generates code based on ",t.createElement(n.code,null,"provider")," and ",t.createElement(n.code,null,"client")," roles, where a ",t.createElement(n.code,null,"provider"),' "produces events" and "consumes commands". See ',t.createElement(n.a,{href:"API-First-with-AsyncAPI"},"API-First with AsyncAPI"),' page for more details on "publish/subscribe", "producer/consumer" and "provider/client" roles.'),"\n",t.createElement(n.blockquote,null,"\n",t.createElement(n.p,null,"Write your AsyncAPI definitions from the ",t.createElement(n.code,null,"provider")," perspective and then configure the code generator to generate either a ",t.createElement(n.code,null,"provider")," or a ",t.createElement(n.code,null,"client"),"."),"\n"),"\n",t.createElement(n.p,null,"If you still find confusing which is a provider and a client just use this rule: In a given messaging scenario, there can be only one provider of a message, while there can be multiple clients.. If the provider is producing messages, use the ",t.createElement(n.code,null,"publish")," section. If the provider is consuming messages, use the ",t.createElement(n.code,null,"subscribe")," section."),"\n",t.createElement(n.h3,{id:"spring-cloud-streams-producer-using-generated-code-to-produce-messages",style:{position:"relative"}},t.createElement(n.a,{href:"#spring-cloud-streams-producer-using-generated-code-to-produce-messages","aria-label":"spring cloud streams producer using generated code to produce messages permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Spring Cloud Streams Producer: Using generated code to produce messages"),"\n",t.createElement(n.p,null,"On the producer side generates:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Interface ",t.createElement(n.code,null,"ICustomerEventsProducer")," to produce typed messages that uses your domain names: ",t.createElement(n.code,null,"onCustomerEvent"),", ",t.createElement(n.code,null,"CustomerEventPayload")," and ",t.createElement(n.code,null,"CustomerEventPayloadHeaders"),"."),"\n",t.createElement(n.li,null,"Producer ",t.createElement(n.code,null,"@Component")," ",t.createElement(n.code,null,"CustomerEventsProducer")," you can autowire in your services."),"\n"),"\n",t.createElement(n.p,null,t.createElement(n.strong,null,"In order to produce messages all you need to do is @Autowire the generated producer as part of your code.")),"\n",t.createElement(n.p,null,"This producer component, because sits behind a business oriented interface, can be implemented in different flavors and integration patterns like transactional outbox (for mongodb and sql) or enterprise envelop depending on how you configure zenwave maven generator."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// Autogenerated: you can @Autowire it in your code\r\npublic interface ICustomerEventsProducer {\r\n // headers object omitted for brevity\r\n /**\r\n * Customer Domain Events\r\n */\r\n boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers);\r\n\r\n}\n")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},'// Autogenerated: add it to your autoscan packages\r\n@Component\r\npublic class CustomerEventsProducer implements ICustomerEventsProducer {\r\n \r\n // details omitted for brevity\r\n \r\n /**\r\n * Customer Domain Events\r\n */\r\n public boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {\r\n // this is one of the many flavors, you shouldn\'t need to worry about the details\r\n log.debug("Sending message to topic: {}", onCustomerEventBindingName);\r\n Message message = MessageBuilder.createMessage(payload, new MessageHeaders(headers));\r\n return streamBridge.send(onCustomerEventBindingName, message);\r\n }\r\n}\n')),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},'// Autowire this producer in your code\r\n@Autowired\r\nICustomerEventsProducer customerEventsProducer;\r\n\r\n// and use it to produce messages\r\nvar message = new CustomerEventPayload()\r\n .withCustomerId("123")\r\n // [...] set some more data\r\n .withEventType(CustomerEventPayload.EventType.CREATED);\r\n// notice how headers are also strongly typed\r\nvar headers = new ICustomerEventsProducer.CustomerEventPayloadHeaders()\r\n .entityId("123")\r\n .commonHeader("value")\r\n .set("undocumented-header", "value");\r\n\r\ncustomerEventsProducer.onCustomerEvent(message, headers);\n')),"\n",t.createElement(n.h3,{id:"spring-cloud-streams-consumer-using-generated-code-to-consume-messages",style:{position:"relative"}},t.createElement(n.a,{href:"#spring-cloud-streams-consumer-using-generated-code-to-consume-messages","aria-label":"spring cloud streams consumer using generated code to consume messages permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Spring Cloud Streams Consumer: Using generated code to consume messages"),"\n",t.createElement(n.p,null,"On the consumer side generates:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,"Functional Consumer ",t.createElement(n.code,null,"DoCustomerRequestConsumer")," for Spring Cloud Streams bindings."),"\n",t.createElement(n.li,null,"Business Interface ",t.createElement(n.code,null,"IDoCustomerRequestConsumerService")," you need to implement in order to receive strongly typed messages."),"\n"),"\n",t.createElement(n.p,null,"This Functional Consumer can abstract away different integration patterns like Business Dead Letter Queue and others... depending on how you configure zenwave maven generator."),"\n",t.createElement(n.p,null,t.createElement(n.strong,null,"To consume messages you need to implement generated business interface and register it as a Spring bean.")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// Autogenerated: you need to implement and provide this business interface\r\npublic interface IOnCustomerEventConsumerService {\r\n /**\r\n * Customer Domain Events\r\n */\r\n default void onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {};\r\n}\n")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},'// Autogenerated: add it to your autoscan packages and provide business interface implementation\r\n@Component("on-customer-event")\r\npublic class OnCustomerEventConsumer implements Consumer> {\r\n\r\n // you need to implement this interface\r\n protected IOnCustomerEventConsumerService service;\r\n\r\n @Override\r\n public void accept(Message message) {\r\n log.debug("Received message: {}", message);\r\n try {\r\n Object payload = message.getPayload();\r\n if (payload instanceof CustomerEventPayload) {\r\n var headers = new IOnCustomerEventConsumerService.CustomerEventPayloadHeaders();\r\n headers.putAll(message.getHeaders());\r\n service.onCustomerEvent((CustomerEventPayload) payload, headers);\r\n return;\r\n }\r\n log.error("Received message without any business handler: [payload: {}, message: {}]", payload.getClass().getName(), message);\r\n } catch (Exception e) {\r\n // error handling and dead-letter-queue routing omitted for brevity\r\n }\r\n }\r\n}\n')),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// Implement the business interface and add it to your context\r\n@Component\r\nclass DoCustomerRequestConsumerService implements IDoCustomerRequestConsumerService {\r\n\r\n @Override\r\n public void doCustomerRequest(CustomerRequestPayload payload, CustomerRequestPayloadHeaders headers) {\r\n log.info(\"Received '{}' message with payload: {}\", payload.getClass(), payload);\r\n // [...] do something with this message\r\n }\r\n}\n")),"\n",t.createElement(n.h3,{id:"exception-handling-with-business-dead-letter-queue",style:{position:"relative"}},t.createElement(n.a,{href:"#exception-handling-with-business-dead-letter-queue","aria-label":"exception handling with business dead letter queue permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Exception Handling with Business Dead Letter Queue"),"\n",t.createElement(n.p,null,"ZenWave SDK consumers can be configured to route exceptions to different error queues. This is useful to manage non-retryable business exceptions so the stream processing is not interrupted. If your code throws an exception not configured for error routing it will be rethrow and it will follow the standard error handling mechanism for your particular Spring Cloud Stream binder."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-yaml"},"spring.cloud.stream.bindings:\r\n on-customer-event-in-0:\r\n destination: customer.events\r\n content-type: application/json\r\n # configuring error routing for this consumer\r\n dead-letter-queue-error-map: >\r\n {\r\n 'javax.validation.ValidationException': 'on-customer-event-validation-error-out-0',\r\n 'java.lang.Exception': 'on-customer-event-error-out-0'\r\n }\n")),"\n",t.createElement(n.h2,{id:"populating-headers-at-runtime-automatically",style:{position:"relative"}},t.createElement(n.a,{href:"#populating-headers-at-runtime-automatically","aria-label":"populating headers at runtime automatically permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Populating Headers at Runtime Automatically"),"\n",t.createElement(n.p,null,"ZenWave SDK provides ",t.createElement(n.code,null,"x-runtime-expression")," for automatic header population at runtime. Values for this extension property are:"),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,t.createElement(n.code,null,"$message.payload#/"),": follows the same format as AsyncAPI ",t.createElement(n.a,{href:"https://www.asyncapi.com/docs/reference/specification/v2.5.0#correlationIdObject"},"Correlation ID")," object."),"\n",t.createElement(n.li,null,t.createElement(n.code,null,"$tracingIdSupplier"),": will use the tracing id ",t.createElement(n.code,null,"java.function.Supplier")," configured in your Spring context."),"\n"),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-yaml"}," CustomerEventMessage:\r\n name: CustomerEventMessage\r\n // [...] other properties omitted for brevity\r\n headers:\r\n type: object\r\n properties:\r\n kafka_messageKey:\r\n type: string\r\n description: This one will be populated automatically at runtime\r\n x-runtime-expression: $message.payload#/customer/id\r\n tracingId:\r\n type: string\r\n description: This one will be populated automatically at runtime\r\n x-runtime-expression: $tracingIdSupplier\n")),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-xml"},'\r\n myTracingIdSupplier\x3c!-- default is "tracingIdSupplier" --\x3e\r\n x-custom-runtime-expression\x3c!-- you can also override this extension property name --\x3e\r\n\n')),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},' @Bean("myTracingIdSupplier")\r\n public Supplier tracingIdSupplier() {\r\n return () -> "test-tracing-id";\r\n }\n')),"\n",t.createElement(n.h3,{id:"inmemory-producers-as-testdoubles",style:{position:"relative"}},t.createElement(n.a,{href:"#inmemory-producers-as-testdoubles","aria-label":"inmemory producers as testdoubles permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"InMemory Producers as TestDoubles"),"\n",t.createElement(n.p,null,"Alongside the generated producer, ZenWave SDK also generates an ",t.createElement(n.em,null,"in-memory producer captor")," that can be used as a test double and a singletone manual context so you easily include them in your unit/integration tests."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// generated class, you can use in your tests\r\npublic class ProducerInMemoryContext {\r\n\r\n public static final ProducerInMemoryContext INSTANCE = new ProducerInMemoryContext();\r\n\r\n\r\n private CustomerEventsProducerCaptor customerEventsProducerCaptor = new CustomerEventsProducerCaptor();\r\n\r\n public T customerEventsProducer() {\r\n return (T) customerEventsProducerCaptor;\r\n }\r\n}\n")),"\n",t.createElement(n.p,null,"And use it in your tests to instantiate your service and perform assertions in your tests. You can find ",t.createElement(n.a,{href:"https://github.com/ivangsa/spring-boot-mongodb-elasticsearch-kafka-example/blob/e8fa9c89e5f3d72b90ac23749f636fc7640bdf39/src/test/java/io/zenwave360/example/core/implementation/CustomerUseCasesTest.java#L70"},"a working example here"),"."),"\n",t.createElement(n.pre,null,t.createElement(n.code,{className:"language-java"},"// example of how you can instantiate your service using the in-memory producer captor\r\npublic class InMemoryTestsManualContext extends InMemoryTestsConfig {\r\n\r\n // [...] other beans omitted for brevity\r\n \r\n public CustomerUseCasesImpl customerUseCases() {\r\n // instantiating a bean with in-memory dependencies\r\n return new CustomerUseCasesImpl(customerRepository(), ProducerInMemoryContext.INSTANCE.customerEventsProducer());\r\n }\r\n}\r\n\r\n// and using it in your tests to perform assertions\r\npublic class CustomerUseCasesTest {\r\n \r\n // this is the in-memory producer captor wired\r\n CustomerEventsProducerCaptor customerEventsProducer = ProducerInMemoryContext.INSTANCE.customerEventsProducer();\r\n\r\n @Test\r\n void testCustomerUseCase() {\r\n // [...] test your use case\r\n Assertions.assertEquals(3, customerEventsProducer.getCapturedMessages(customerEventsProducer.onCustomerEventBindingName).size());\r\n }\r\n}\n")),"\n",t.createElement(n.h2,{id:"enterprise-integration-patterns",style:{position:"relative"}},t.createElement(n.a,{href:"#enterprise-integration-patterns","aria-label":"enterprise integration patterns permalink",className:"anchor before"},t.createElement(n.div,{dangerouslySetInnerHTML:{__html:''}})),"Enterprise Integration Patterns"),"\n",t.createElement(n.p,null,"Because access to the underlying implementation is encapsulated behind the generated interfaces, it's possible to implement many Enterprise Integration Patterns (EIP) on top of them."),"\n",t.createElement(n.ul,null,"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Transactional-Outbox"},"Transactional Outbox:")," for MongoDB, plain JDBC and Debezium SQL"),"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Business-Dead-Letter-Queue"},"Business DeadLetterQueue")),"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Enterprise-Envelop"},"Enterprise Envelop")),"\n",t.createElement(n.li,null,t.createElement(n.a,{href:"Enterprise-Integration-Patterns/Async-Request-Response"},"Async Request/Response")," (coming soon with AsyncAPI v3)"),"\n"))}var s=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?t.createElement(n,e,t.createElement(o,e)):o(e)};function i(e){let{children:n}=e;return n}function l(e){return t.createElement(i,e,t.createElement(s,e))}}}]); -//# sourceMappingURL=component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js.map \ No newline at end of file diff --git a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js.map b/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js.map deleted file mode 100644 index fabe283..0000000 --- a/component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---smooth-doc-src-templates-post-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-posts-zen-wave-async-api-code-generator-md-f603b6db30d0d1723e19.js","mappings":"6KAGA,SAASA,EAAkBC,GACzB,MAAMC,EAAcC,OAAOC,OAAO,CAChCC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,EAAG,IACHC,IAAK,MACLC,KAAM,OACNC,GAAI,KACJC,GAAI,KACJC,OAAQ,SACRC,IAAK,MACLC,GAAI,KACJC,WAAY,aACZC,GAAI,OACHC,EAAAA,EAAAA,MAAsBjB,EAAMkB,YAC/B,OAAOC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMA,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYI,IAAK,CAC7He,IAAK,0DACLC,IAAK,yCACF,KAAMF,EAAAA,cAAoBlB,EAAYK,GAAI,CAC7CgB,GAAI,0CACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,2CACN,aAAc,oDACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,2CAA4C,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,kBAAmBe,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,yBAA0B,QAASU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,mBAAoB,8BAA+B,KAAMU,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,kBAAmBQ,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,wBAAyB,KAAMO,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,gBAAiB,QAAS,KAAMO,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,kBAAmB,+BAAgC,MAAO,KAAMO,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,6HAA8H,KAAMe,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,+GAAgH,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,wFAAyF,KAAMQ,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,6IAA8I,KAAMQ,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,sKAAuK,MAAO,KAAMQ,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,OAAQe,EAAAA,cAAoBlB,EAAYM,EAAG,CACpuDkB,KAAM,4FACL,6DAA8D,QAASN,EAAAA,cAAoBlB,EAAYM,EAAG,CAC3GkB,KAAM,wCACL,wBAAyB,sBAAuB,KAAMN,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACxIiB,UAAW,gBACV,gqFAA+oF,KAAMP,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYI,IAAK,CACpuFe,IAAK,wCACLC,IAAK,yCACF,KAAMF,EAAAA,cAAoBlB,EAAYa,GAAI,CAC7CQ,GAAI,qBACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,sBACN,aAAc,+BACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,sBAAuB,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,uDAAwDe,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,eAAgB,4FAA6FO,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,QAASU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,UAAW,mBAAoBU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,mDAAwDU,EAAAA,cAAoBlB,EAAYM,EAAG,CAC7jBkB,KAAM,2BACL,2BAA4B,mGAA0G,KAAMN,EAAAA,cAAoBlB,EAAYc,WAAY,KAAM,KAAMI,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,4CAA6Ce,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,2EAA4EU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,YAAa,SAAUU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,UAAW,KAAM,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,qPAAsPe,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,WAAY,4DAA6DU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,aAAc,aAAc,KAAMU,EAAAA,cAAoBlB,EAAYa,GAAI,CACnjCQ,GAAI,yEACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,0EACN,aAAc,mFACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,2EAA4E,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mCAAoC,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,aAAcQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,2BAA4B,2DAA4DU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,mBAAoB,KAAMU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,wBAAyB,QAASU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,+BAAgC,KAAM,KAAMU,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,YAAaQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,cAAe,IAAKU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,0BAA2B,uCAAwC,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,8GAA+G,KAAMO,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,8QAA+Q,KAAMe,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC98CiB,UAAW,iBACV,wTAAyT,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACjZiB,UAAW,iBACV,otBAAstB,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC9yBiB,UAAW,iBACV,2nBAAsoB,KAAMP,EAAAA,cAAoBlB,EAAYa,GAAI,CACjrBQ,GAAI,yEACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,0EACN,aAAc,mFACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,2EAA4E,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mCAAoC,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,uBAAwBQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,6BAA8B,wCAAyC,KAAMU,EAAAA,cAAoBlB,EAAYU,GAAI,KAAM,sBAAuBQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,qCAAsC,uEAAwE,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mLAAoL,KAAMe,EAAAA,cAAoBlB,EAAYG,EAAG,KAAMe,EAAAA,cAAoBlB,EAAYW,OAAQ,KAAM,6GAA8G,KAAMO,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC1nCiB,UAAW,iBACV,+SAAgT,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACxYiB,UAAW,iBACV,qqCAA4qC,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACpwCiB,UAAW,iBACV,8cAA+c,KAAMP,EAAAA,cAAoBlB,EAAYa,GAAI,CAC1fQ,GAAI,qDACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,sDACN,aAAc,+DACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,sDAAuD,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,gYAAiY,KAAMe,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACjkBiB,UAAW,iBACV,+aAAgb,KAAMP,EAAAA,cAAoBlB,EAAYK,GAAI,CAC3dgB,GAAI,8CACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,+CACN,aAAc,wDACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,+CAAgD,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,wBAAyBe,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,wBAAyB,wFAAyF,KAAMU,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,6CAA8C,yCAA0CU,EAAAA,cAAoBlB,EAAYM,EAAG,CAChiBkB,KAAM,oFACL,kBAAmB,YAAa,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,sBAAuB,6BAA8BU,EAAAA,cAAoBlB,EAAYQ,KAAM,KAAM,0BAA2B,uCAAwC,MAAO,KAAMU,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC/XiB,UAAW,iBACV,skBAAukB,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC/pBiB,UAAW,gBACV,8TAAqT,KAAMP,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC7YiB,UAAW,iBACV,wIAA6I,KAAMP,EAAAA,cAAoBlB,EAAYa,GAAI,CACxLQ,GAAI,oCACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,qCACN,aAAc,8CACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,qCAAsC,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,mEAAoEe,EAAAA,cAAoBlB,EAAYe,GAAI,KAAM,6BAA8B,iIAAkI,KAAMG,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CAC7biB,UAAW,iBACV,2cAA4c,KAAMP,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,2GAA4Ge,EAAAA,cAAoBlB,EAAYM,EAAG,CAC3oBkB,KAAM,kNACL,0BAA2B,KAAM,KAAMN,EAAAA,cAAoBlB,EAAYY,IAAK,KAAMM,EAAAA,cAAoBlB,EAAYQ,KAAM,CACzHiB,UAAW,iBACV,m/BAAo/B,KAAMP,EAAAA,cAAoBlB,EAAYK,GAAI,CAC/hCgB,GAAI,kCACJC,MAAO,CACLC,SAAU,aAEXL,EAAAA,cAAoBlB,EAAYM,EAAG,CACpCkB,KAAM,mCACN,aAAc,4CACdC,UAAW,iBACVP,EAAAA,cAAoBlB,EAAYO,IAAK,CACtCmB,wBAAyB,CACvBC,OAAQ,meAEP,mCAAoC,KAAMT,EAAAA,cAAoBlB,EAAYG,EAAG,KAAM,0LAA2L,KAAMe,EAAAA,cAAoBlB,EAAYS,GAAI,KAAM,KAAMS,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CACpZkB,KAAM,wDACL,yBAA0B,6CAA8C,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CAC5JkB,KAAM,8DACL,6BAA8B,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CAClHkB,KAAM,sDACL,uBAAwB,KAAMN,EAAAA,cAAoBlB,EAAYU,GAAI,KAAMQ,EAAAA,cAAoBlB,EAAYM,EAAG,CAC5GkB,KAAM,0DACL,0BAA2B,mCAAoC,MACnE,CAKD,MAJA,SAAoBzB,QAAY,IAAZA,IAAAA,EAAQ,CAAC,GAC3B,MAAO6B,QAASC,GAAa5B,OAAOC,OAAO,CAAC,GAAGc,EAAAA,EAAAA,MAAsBjB,EAAMkB,YAC3E,OAAOY,EAAYX,EAAAA,cAAoBW,EAAW9B,EAAOmB,EAAAA,cAAoBpB,EAAmBC,IAAUD,EAAkBC,EAC7H,ECrKD,SAAS+B,EAAT,GAAkC,IAAZ,SAACC,GAAWC,EAChC,OAAOD,CACR,CAEc,SAASE,EAAiBlC,GACvC,OAAOmB,EAAAA,cAAoBY,EAAc/B,EAAOmB,EAAAA,cAAoBgB,EAAqBnC,GAC1F,C","sources":["webpack://website/./pages/posts/ZenWave-AsyncAPI-Code-Generator.md","webpack://website/../smooth-doc/src/templates/post.js"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n p: \"p\",\n img: \"img\",\n h2: \"h2\",\n a: \"a\",\n div: \"div\",\n code: \"code\",\n ul: \"ul\",\n li: \"li\",\n strong: \"strong\",\n pre: \"pre\",\n h3: \"h3\",\n blockquote: \"blockquote\",\n em: \"em\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./ZenWave360-AsyncAPI-SpringCloudStreams.excalidraw.svg\",\n alt: \"AsyncAPI and Spring Cloud Streams 3\"\n })), \"\\n\", React.createElement(_components.h2, {\n id: \"api-first-with-asyncapi-and-zenwave-sdk\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#api-first-with-asyncapi-and-zenwave-sdk\",\n \"aria-label\": \"api first with asyncapi and zenwave sdk permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"API-First with AsyncAPI and ZenWave SDK\"), \"\\n\", React.createElement(_components.p, null, \"With ZenWave's \", React.createElement(_components.code, null, \"spring-cloud-streams3\"), \" and \", React.createElement(_components.code, null, \"jsonschema2pojo\"), \" plugins you can generate:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Strongly typed \", React.createElement(_components.strong, null, \"business interfaces\")), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.strong, null, \"Payload DTOs\"), \" and\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.strong, null, \"Header objects\"), \" from AsyncAPI definitions.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"It uses Spring Cloud Streams as default implementation, so it can connect to many different brokers via provided binders.\"), \"\\n\", React.createElement(_components.p, null, \"And because everything is hidden behind interfaces we can encapsulate many Enterprise Integration Patterns:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Transactional Outbox: with MongoDB ChangeStreams, Plain SQL and Debezium SQL flavors\"), \"\\n\", React.createElement(_components.li, null, \"Business DeadLetter Queues: allowing you to route different business Exceptions to different DeadLetter queues for non-retrayable errors.\"), \"\\n\", React.createElement(_components.li, null, \"Enterprise Envelope: when your organization uses a common Envelope for messages, you can still express your AsyncAPI definition in terms of your business payload.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"See \", React.createElement(_components.a, {\n href: \"https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/#options\"\n }, \"AsyncAPI and Spring Cloud Streams 3 Configuration Options\"), \" and \", React.createElement(_components.a, {\n href: \"/ZenWave-Code-Generator/Maven-Plugin\"\n }, \"ZenWave Maven Plugin\"), \" for more details.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n io.github.zenwave360.zenwave-sdk\\r\\n zenwave-sdk-maven-plugin\\r\\n ${zenwave.version}\\r\\n \\r\\n classpath:/model/asyncapi.yml\\r\\n true\\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi-dtos\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n jsonschema2pojo\\r\\n \\r\\n io.zenwave360.example.core.domain.events\\r\\n \\r\\n true\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n generate-asyncapi\\r\\n generate-sources\\r\\n \\r\\n generate\\r\\n \\r\\n \\r\\n spring-cloud-streams3\\r\\n \\r\\n provider\\r\\n \\r\\n mongodb\\r\\n io.zenwave360.example.core.domain.events\\r\\n io.zenwave360.example.core.outbound.events\\r\\n io.zenwave360.example.adapters.commands\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-spring-cloud-streams3\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n io.github.zenwave360.zenwave-sdk.plugins\\r\\n asyncapi-jsonschema2pojo\\r\\n ${zenwave.version}\\r\\n \\r\\n \\r\\n\\n\")), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.img, {\n src: \"./spring-cloud-streams3-generated.png\",\n alt: \"ZenWave StreamCloudStreams AsyncAPI\"\n })), \"\\n\", React.createElement(_components.h3, {\n id: \"provider-vs-client\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#provider-vs-client\",\n \"aria-label\": \"provider vs client permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Provider vs Client\"), \"\\n\", React.createElement(_components.p, null, \"Because broker based API definitions are inherently \", React.createElement(_components.strong, null, \"symmetrical\"), \" it's difficult to establish the roles of client/server. ZenWave generates code based on \", React.createElement(_components.code, null, \"provider\"), \" and \", React.createElement(_components.code, null, \"client\"), \" roles, where a \", React.createElement(_components.code, null, \"provider\"), \" \\\"produces events\\\" and \\\"consumes commands\\\". See \", React.createElement(_components.a, {\n href: \"API-First-with-AsyncAPI\"\n }, \"API-First with AsyncAPI\"), \" page for more details on \\\"publish/subscribe\\\", \\\"producer/consumer\\\" and \\\"provider/client\\\" roles.\"), \"\\n\", React.createElement(_components.blockquote, null, \"\\n\", React.createElement(_components.p, null, \"Write your AsyncAPI definitions from the \", React.createElement(_components.code, null, \"provider\"), \" perspective and then configure the code generator to generate either a \", React.createElement(_components.code, null, \"provider\"), \" or a \", React.createElement(_components.code, null, \"client\"), \".\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"If you still find confusing which is a provider and a client just use this rule: In a given messaging scenario, there can be only one provider of a message, while there can be multiple clients.. If the provider is producing messages, use the \", React.createElement(_components.code, null, \"publish\"), \" section. If the provider is consuming messages, use the \", React.createElement(_components.code, null, \"subscribe\"), \" section.\"), \"\\n\", React.createElement(_components.h3, {\n id: \"spring-cloud-streams-producer-using-generated-code-to-produce-messages\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#spring-cloud-streams-producer-using-generated-code-to-produce-messages\",\n \"aria-label\": \"spring cloud streams producer using generated code to produce messages permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Spring Cloud Streams Producer: Using generated code to produce messages\"), \"\\n\", React.createElement(_components.p, null, \"On the producer side generates:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Interface \", React.createElement(_components.code, null, \"ICustomerEventsProducer\"), \" to produce typed messages that uses your domain names: \", React.createElement(_components.code, null, \"onCustomerEvent\"), \", \", React.createElement(_components.code, null, \"CustomerEventPayload\"), \" and \", React.createElement(_components.code, null, \"CustomerEventPayloadHeaders\"), \".\"), \"\\n\", React.createElement(_components.li, null, \"Producer \", React.createElement(_components.code, null, \"@Component\"), \" \", React.createElement(_components.code, null, \"CustomerEventsProducer\"), \" you can autowire in your services.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.strong, null, \"In order to produce messages all you need to do is @Autowire the generated producer as part of your code.\")), \"\\n\", React.createElement(_components.p, null, \"This producer component, because sits behind a business oriented interface, can be implemented in different flavors and integration patterns like transactional outbox (for mongodb and sql) or enterprise envelop depending on how you configure zenwave maven generator.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: you can @Autowire it in your code\\r\\npublic interface ICustomerEventsProducer {\\r\\n // headers object omitted for brevity\\r\\n /**\\r\\n * Customer Domain Events\\r\\n */\\r\\n boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers);\\r\\n\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: add it to your autoscan packages\\r\\n@Component\\r\\npublic class CustomerEventsProducer implements ICustomerEventsProducer {\\r\\n \\r\\n // details omitted for brevity\\r\\n \\r\\n /**\\r\\n * Customer Domain Events\\r\\n */\\r\\n public boolean onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {\\r\\n // this is one of the many flavors, you shouldn't need to worry about the details\\r\\n log.debug(\\\"Sending message to topic: {}\\\", onCustomerEventBindingName);\\r\\n Message message = MessageBuilder.createMessage(payload, new MessageHeaders(headers));\\r\\n return streamBridge.send(onCustomerEventBindingName, message);\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autowire this producer in your code\\r\\n@Autowired\\r\\nICustomerEventsProducer customerEventsProducer;\\r\\n\\r\\n// and use it to produce messages\\r\\nvar message = new CustomerEventPayload()\\r\\n .withCustomerId(\\\"123\\\")\\r\\n // [...] set some more data\\r\\n .withEventType(CustomerEventPayload.EventType.CREATED);\\r\\n// notice how headers are also strongly typed\\r\\nvar headers = new ICustomerEventsProducer.CustomerEventPayloadHeaders()\\r\\n .entityId(\\\"123\\\")\\r\\n .commonHeader(\\\"value\\\")\\r\\n .set(\\\"undocumented-header\\\", \\\"value\\\");\\r\\n\\r\\ncustomerEventsProducer.onCustomerEvent(message, headers);\\n\")), \"\\n\", React.createElement(_components.h3, {\n id: \"spring-cloud-streams-consumer-using-generated-code-to-consume-messages\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#spring-cloud-streams-consumer-using-generated-code-to-consume-messages\",\n \"aria-label\": \"spring cloud streams consumer using generated code to consume messages permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Spring Cloud Streams Consumer: Using generated code to consume messages\"), \"\\n\", React.createElement(_components.p, null, \"On the consumer side generates:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, \"Functional Consumer \", React.createElement(_components.code, null, \"DoCustomerRequestConsumer\"), \" for Spring Cloud Streams bindings.\"), \"\\n\", React.createElement(_components.li, null, \"Business Interface \", React.createElement(_components.code, null, \"IDoCustomerRequestConsumerService\"), \" you need to implement in order to receive strongly typed messages.\"), \"\\n\"), \"\\n\", React.createElement(_components.p, null, \"This Functional Consumer can abstract away different integration patterns like Business Dead Letter Queue and others... depending on how you configure zenwave maven generator.\"), \"\\n\", React.createElement(_components.p, null, React.createElement(_components.strong, null, \"To consume messages you need to implement generated business interface and register it as a Spring bean.\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: you need to implement and provide this business interface\\r\\npublic interface IOnCustomerEventConsumerService {\\r\\n /**\\r\\n * Customer Domain Events\\r\\n */\\r\\n default void onCustomerEvent(CustomerEventPayload payload, CustomerEventPayloadHeaders headers) {};\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Autogenerated: add it to your autoscan packages and provide business interface implementation\\r\\n@Component(\\\"on-customer-event\\\")\\r\\npublic class OnCustomerEventConsumer implements Consumer> {\\r\\n\\r\\n // you need to implement this interface\\r\\n protected IOnCustomerEventConsumerService service;\\r\\n\\r\\n @Override\\r\\n public void accept(Message message) {\\r\\n log.debug(\\\"Received message: {}\\\", message);\\r\\n try {\\r\\n Object payload = message.getPayload();\\r\\n if (payload instanceof CustomerEventPayload) {\\r\\n var headers = new IOnCustomerEventConsumerService.CustomerEventPayloadHeaders();\\r\\n headers.putAll(message.getHeaders());\\r\\n service.onCustomerEvent((CustomerEventPayload) payload, headers);\\r\\n return;\\r\\n }\\r\\n log.error(\\\"Received message without any business handler: [payload: {}, message: {}]\\\", payload.getClass().getName(), message);\\r\\n } catch (Exception e) {\\r\\n // error handling and dead-letter-queue routing omitted for brevity\\r\\n }\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// Implement the business interface and add it to your context\\r\\n@Component\\r\\nclass DoCustomerRequestConsumerService implements IDoCustomerRequestConsumerService {\\r\\n\\r\\n @Override\\r\\n public void doCustomerRequest(CustomerRequestPayload payload, CustomerRequestPayloadHeaders headers) {\\r\\n log.info(\\\"Received '{}' message with payload: {}\\\", payload.getClass(), payload);\\r\\n // [...] do something with this message\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h3, {\n id: \"exception-handling-with-business-dead-letter-queue\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#exception-handling-with-business-dead-letter-queue\",\n \"aria-label\": \"exception handling with business dead letter queue permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Exception Handling with Business Dead Letter Queue\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK consumers can be configured to route exceptions to different error queues. This is useful to manage non-retryable business exceptions so the stream processing is not interrupted. If your code throws an exception not configured for error routing it will be rethrow and it will follow the standard error handling mechanism for your particular Spring Cloud Stream binder.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-yaml\"\n }, \"spring.cloud.stream.bindings:\\r\\n on-customer-event-in-0:\\r\\n destination: customer.events\\r\\n content-type: application/json\\r\\n # configuring error routing for this consumer\\r\\n dead-letter-queue-error-map: >\\r\\n {\\r\\n 'javax.validation.ValidationException': 'on-customer-event-validation-error-out-0',\\r\\n 'java.lang.Exception': 'on-customer-event-error-out-0'\\r\\n }\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"populating-headers-at-runtime-automatically\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#populating-headers-at-runtime-automatically\",\n \"aria-label\": \"populating headers at runtime automatically permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Populating Headers at Runtime Automatically\"), \"\\n\", React.createElement(_components.p, null, \"ZenWave SDK provides \", React.createElement(_components.code, null, \"x-runtime-expression\"), \" for automatic header population at runtime. Values for this extension property are:\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(_components.code, null, \"$message.payload#/\"), \": follows the same format as AsyncAPI \", React.createElement(_components.a, {\n href: \"https://www.asyncapi.com/docs/reference/specification/v2.5.0#correlationIdObject\"\n }, \"Correlation ID\"), \" object.\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.code, null, \"$tracingIdSupplier\"), \": will use the tracing id \", React.createElement(_components.code, null, \"java.function.Supplier\"), \" configured in your Spring context.\"), \"\\n\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-yaml\"\n }, \" CustomerEventMessage:\\r\\n name: CustomerEventMessage\\r\\n // [...] other properties omitted for brevity\\r\\n headers:\\r\\n type: object\\r\\n properties:\\r\\n kafka_messageKey:\\r\\n type: string\\r\\n description: This one will be populated automatically at runtime\\r\\n x-runtime-expression: $message.payload#/customer/id\\r\\n tracingId:\\r\\n type: string\\r\\n description: This one will be populated automatically at runtime\\r\\n x-runtime-expression: $tracingIdSupplier\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-xml\"\n }, \"\\r\\n myTracingIdSupplier\\r\\n x-custom-runtime-expression\\r\\n\\n\")), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \" @Bean(\\\"myTracingIdSupplier\\\")\\r\\n public Supplier tracingIdSupplier() {\\r\\n return () -> \\\"test-tracing-id\\\";\\r\\n }\\n\")), \"\\n\", React.createElement(_components.h3, {\n id: \"inmemory-producers-as-testdoubles\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#inmemory-producers-as-testdoubles\",\n \"aria-label\": \"inmemory producers as testdoubles permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"InMemory Producers as TestDoubles\"), \"\\n\", React.createElement(_components.p, null, \"Alongside the generated producer, ZenWave SDK also generates an \", React.createElement(_components.em, null, \"in-memory producer captor\"), \" that can be used as a test double and a singletone manual context so you easily include them in your unit/integration tests.\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// generated class, you can use in your tests\\r\\npublic class ProducerInMemoryContext {\\r\\n\\r\\n public static final ProducerInMemoryContext INSTANCE = new ProducerInMemoryContext();\\r\\n\\r\\n\\r\\n private CustomerEventsProducerCaptor customerEventsProducerCaptor = new CustomerEventsProducerCaptor();\\r\\n\\r\\n public T customerEventsProducer() {\\r\\n return (T) customerEventsProducerCaptor;\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.p, null, \"And use it in your tests to instantiate your service and perform assertions in your tests. You can find \", React.createElement(_components.a, {\n href: \"https://github.com/ivangsa/spring-boot-mongodb-elasticsearch-kafka-example/blob/e8fa9c89e5f3d72b90ac23749f636fc7640bdf39/src/test/java/io/zenwave360/example/core/implementation/CustomerUseCasesTest.java#L70\"\n }, \"a working example here\"), \".\"), \"\\n\", React.createElement(_components.pre, null, React.createElement(_components.code, {\n className: \"language-java\"\n }, \"// example of how you can instantiate your service using the in-memory producer captor\\r\\npublic class InMemoryTestsManualContext extends InMemoryTestsConfig {\\r\\n\\r\\n // [...] other beans omitted for brevity\\r\\n \\r\\n public CustomerUseCasesImpl customerUseCases() {\\r\\n // instantiating a bean with in-memory dependencies\\r\\n return new CustomerUseCasesImpl(customerRepository(), ProducerInMemoryContext.INSTANCE.customerEventsProducer());\\r\\n }\\r\\n}\\r\\n\\r\\n// and using it in your tests to perform assertions\\r\\npublic class CustomerUseCasesTest {\\r\\n \\r\\n // this is the in-memory producer captor wired\\r\\n CustomerEventsProducerCaptor customerEventsProducer = ProducerInMemoryContext.INSTANCE.customerEventsProducer();\\r\\n\\r\\n @Test\\r\\n void testCustomerUseCase() {\\r\\n // [...] test your use case\\r\\n Assertions.assertEquals(3, customerEventsProducer.getCapturedMessages(customerEventsProducer.onCustomerEventBindingName).size());\\r\\n }\\r\\n}\\n\")), \"\\n\", React.createElement(_components.h2, {\n id: \"enterprise-integration-patterns\",\n style: {\n position: \"relative\"\n }\n }, React.createElement(_components.a, {\n href: \"#enterprise-integration-patterns\",\n \"aria-label\": \"enterprise integration patterns permalink\",\n className: \"anchor before\"\n }, React.createElement(_components.div, {\n dangerouslySetInnerHTML: {\n __html: \"\"\n }\n })), \"Enterprise Integration Patterns\"), \"\\n\", React.createElement(_components.p, null, \"Because access to the underlying implementation is encapsulated behind the generated interfaces, it's possible to implement many Enterprise Integration Patterns (EIP) on top of them.\"), \"\\n\", React.createElement(_components.ul, null, \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Transactional-Outbox\"\n }, \"Transactional Outbox:\"), \" for MongoDB, plain JDBC and Debezium SQL\"), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Business-Dead-Letter-Queue\"\n }, \"Business DeadLetterQueue\")), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Enterprise-Envelop\"\n }, \"Enterprise Envelop\")), \"\\n\", React.createElement(_components.li, null, React.createElement(_components.a, {\n href: \"Enterprise-Integration-Patterns/Async-Request-Response\"\n }, \"Async Request/Response\"), \" (coming soon with AsyncAPI v3)\"), \"\\n\"));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/posts/ZenWave-AsyncAPI-Code-Generator.md\";\nimport {graphql} from \"gatsby\";\nexport const postQuery = graphql`\n query PostPage($id: String!) {\n mdx(id: { eq: $id }) {\n fields {\n pageType\n title\n }\n }\n }\n`;\nfunction PostTemplate({children}) {\n return children;\n}\nPostTemplate\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PostTemplate, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n"],"names":["_createMdxContent","props","_components","Object","assign","p","img","h2","a","div","code","ul","li","strong","pre","h3","blockquote","em","_provideComponents","components","React","src","alt","id","style","position","href","className","dangerouslySetInnerHTML","__html","wrapper","MDXLayout","PostTemplate","children","_ref","GatsbyMDXWrapper","GATSBY_COMPILED_MDX"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/domain-modeling/business-domain-modeling/index.html b/docs/domain-modeling/business-domain-modeling/index.html index 147c2b8..8a03431 100644 --- a/docs/domain-modeling/business-domain-modeling/index.html +++ b/docs/domain-modeling/business-domain-modeling/index.html @@ -223,10 +223,10 @@ } } }) - Business Domain Modeling - ZenWave 360ºBusiness Domain Modeling - ZenWave 360º

Business Domain Modeling

+ } catch (e) {} })();

Business Domain Modeling

A good model is a foundation that can accommodate change in the direction and perspective of business experts.

ZenWave 360º Business Domain Modeling is sustained in three pillars:

    @@ -267,7 +267,7 @@

    Automatically propagating the Ubiquitous Language across code and providing the building blocks to put together a working implementation of your domain in no time.

    Practical Event Storming with AsyncAPI v3 and ZenWave SDK

    -
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/event-driven-design/event-storming/index.html b/docs/event-driven-design/event-storming/index.html index 952169a..4319840 100644 --- a/docs/event-driven-design/event-storming/index.html +++ b/docs/event-driven-design/event-storming/index.html @@ -225,10 +225,10 @@ } } }) - Event Storming - ZenWave 360ºEvent Storming - ZenWave 360º

Event Storming

+ } catch (e) {} })();

Event Storming

Flexible workshop format for collaborative exploration of complex business domains

Event Storming provides a shared language that bridges the gap between business experts and technical teams.
Event Storming
@@ -298,7 +298,7 @@

Describe the Bounded Contexts using Bounded Context Canvas and ZDL Model Language

Use a Bounded Context Canvas to describe the inputs, outputs, aggregates and policies of Bounded Context.

You can describe the Bounded Context directly using the developer friendly and machine friendly ZDL Model Language.

-
Bounded Context Mapping with ZDL
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/event-driven-design/zenwave-domain-language/index.html b/docs/event-driven-design/zenwave-domain-language/index.html index 09c3576..fc7b9f4 100644 --- a/docs/event-driven-design/zenwave-domain-language/index.html +++ b/docs/event-driven-design/zenwave-domain-language/index.html @@ -231,10 +231,10 @@ } } }) - ZDL Domain Language - ZenWave 360ºZDL Domain Language - ZenWave 360º

ZDL Domain Modeling Language

+ } catch (e) {} })(); \ No newline at end of file + } \ No newline at end of file diff --git a/docs/examples/index/index.html b/docs/examples/index/index.html index 022cebc..9c1a601 100644 --- a/docs/examples/index/index.html +++ b/docs/examples/index/index.html @@ -221,16 +221,16 @@ } } }) - EDA Examples - ZenWave 360ºEDA Examples - ZenWave 360º

EDA Examples

+ } catch (e) {} })(); \ No newline at end of file + } \ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 9fb2d2c..10cd857 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -232,7 +232,7 @@ Getting Started - ZenWave 360º

Getting Started with ZenWave 360º

+ } catch (e) {} })();

Getting Started with ZenWave 360º

Installation

We recommend using SDKMAN! to install ZenWave SDK requirements: Java 17+, Maven and JBang.

NOTE: Temurin (Eclipse) is a good option for Java JDK as it is high performance, enterprise-caliber and open-sourced licensed.

@@ -274,7 +274,7 @@

Generating a complete Spring-Boot Application with ZenWave SDK

-
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/api-testing/karate/index.html b/docs/zenwave-sdk/api-testing/karate/index.html index 5e72a4e..c2f7618 100644 --- a/docs/zenwave-sdk/api-testing/karate/index.html +++ b/docs/zenwave-sdk/api-testing/karate/index.html @@ -225,10 +225,10 @@ } } }) - KarateDSL - ZenWave 360ºKarateDSL - ZenWave 360º

ZenWave KarateIDE for VSCode

+ } catch (e) {} })();
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/api-testing/spring-webtestclient/index.html b/docs/zenwave-sdk/api-testing/spring-webtestclient/index.html index d7df921..7724997 100644 --- a/docs/zenwave-sdk/api-testing/spring-webtestclient/index.html +++ b/docs/zenwave-sdk/api-testing/spring-webtestclient/index.html @@ -225,10 +225,10 @@ } } }) - Spring WebTestClient - ZenWave 360ºSpring WebTestClient - ZenWave 360º

Generating Spring WebTestClient

+ } catch (e) {} })();

Generating Spring WebTestClient

Generate Unit and Business Tests right from your OpenAPI definition.

Don't treat testing as an afterthought.

Generate SpringMVC or Spring WebFlux Unit or Business Tests skeletons using WebTestClient based on OpenAPI definition.

@@ -262,7 +262,7 @@

webTestClient.method(DELETE).uri("/api/customers/{customerId}", customerId2)
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isEqualTo(204);
// getCustomer: getCustomer
var customerId3 = "";
var getCustomerResponse3 = webTestClient.method(GET).uri("/api/customers/{customerId}", customerId3)
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isEqualTo(200)
.expectHeader().contentType(MediaType.APPLICATION_JSON)
.returnResult(CustomerDTO.class);
-
}
}
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/backend-application/index.html b/docs/zenwave-sdk/backend-application/index.html index 777387c..f5d6b2a 100644 --- a/docs/zenwave-sdk/backend-application/index.html +++ b/docs/zenwave-sdk/backend-application/index.html @@ -240,10 +240,10 @@ } } }) - Backend Application - ZenWave 360ºBackend Application - ZenWave 360º

Backend Application with ZenWave SDK

+ } catch (e) {} })();

Backend Application with ZenWave SDK

Converting your ZDL models into a Spring Boot/Spring Cloud backend application with ZenWave SDK.

The term 'model' has a dual meaning in DDD: it's a representation of a concept in the problem space and a representation of a concept in the solution space. - Eric Evans in Domain Driven Design

@@ -326,7 +326,7 @@

Generate draft versions of AsyncAPI and OpenAPI from your ZDL models. Then you can generate code from those API-First specifications using ZenWave AsyncAPI and OpenAPI Plugins.

ZDL Language is very compact and concise for this, but remember that API-First definitions are the source of truth for outside communication.

-

With ZDLToAsyncAPIPlugin and ZDLToOpenAPIPlugin plugins you can create complete draft versions of AsyncAPI and OpenAPI specifications from your annotated Services and Events.

+

With ZDLToAsyncAPIPlugin and ZDLToOpenAPIPlugin plugins you can create complete draft versions of AsyncAPI and OpenAPI specifications from your annotated Services and Events.

/**
* Customer Service annotated for REST and AsyncAPI serves two purposes:
* 1. Document how each service command will be exposed to the outside world.
* 2. Generate draft versions of AsyncAPI and OpenAPI from your ZDL models.
*/
@rest("/customers")
service CustomerService for (Customer) {
@post
createCustomer(Customer) Customer withEvents CustomerEvent
@put("/{customerId}")
updateCustomer(id, Customer) Customer? withEvents CustomerEvent
@put("/{customerId}/address/{identifier}")
updateCustomerAddress(id, AddressInput) Customer? withEvents CustomerEvent CustomerAddressUpdated
@delete("/{customerId}")
deleteCustomer(id) withEvents CustomerEvent
@get("/{customerId}")
getCustomer(id) Customer?
@get({params: {search: "string"}}) @paginated
listCustomers() Customer[]
}
@skip // skip generating this domain enum, it will genereate by asyncapi code generator.
enum EventType { CREATED(1), UPDATED(1), DELETED(1) }
@asyncapi({channel: "CustomerEventsChannel", topic: "customer.events"})
event CustomerEvent {
customerId String
eventType EventType
customer Customer
}

Generating Code with CLI or IntelliJ Plugin

-

Now you can ZenWave SDK BackendApplicationDefaultPlugin plugin to generate your backend application.

+

Now you can ZenWave SDK BackendApplicationDefaultPlugin plugin to generate your backend application.

From the command line using JBang:

jbang zw -p BackendApplicationDefaultPlugin \
zdlFile=orders.zdl \
basePackage="io.zenwave360.example.orders" \
persistence=mongodb \
useLombok=true \
includeEmitEventsImplementation=true \
targetFolder="modules/orders"

Or using ZenWave Model Editor in IntelliJ IDEA:

@@ -371,7 +371,7 @@

Project Structure Customization

Generated project package names can be (to some extent) customized via 'undocumented' plugin properties. If you need them you can dig into the source code to find them.

We believe that microservices do not need multi-module maven projects, but if you believe otherwise you can customize this by creating a custom generator plugin using BackendMultiModuleApplicationGenerator.java, which can generate multi-module projects, as a starting point.

-

ZenWave SDK Backend Application Plugin will generate an ArchitectureTest using ArchUnit to validate that your application follows hexagonal/onion/clean architecture and follow strict package import rules.

\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/consuming-async-commands/index.html b/docs/zenwave-sdk/consuming-async-commands/index.html index eb4e5c7..194c5a5 100644 --- a/docs/zenwave-sdk/consuming-async-commands/index.html +++ b/docs/zenwave-sdk/consuming-async-commands/index.html @@ -229,10 +229,10 @@ } } }) - Consuming Async Commands - ZenWave 360ºConsuming Async Commands - ZenWave 360º

Consuming Async Commands

+ } catch (e) {} })();

Consuming Async Commands

Listening for Async Requests and Third-Party Events

When consuming Event-Driven messages we need to differentiate between:

    @@ -253,7 +253,7 @@

    With ZenWave AsyncAPI API-First Plugin you can just define AsyncAPI definitions once for the perspective of the provider. And use the provider's AsyncAPI definition to generate the client's AsyncAPI definition using the client role.

    Or create two different AsyncAPI definitions, one for the provider and one for the client. But just don't mix them together in the same AsyncAPI definition file.

    Using ZenWave ZDL as Definition Language for AsyncAPI

    -

    You can use ZDL To AsyncAPI Generator to generate AsyncAPI definitions from ZDL Models with a command like this:

    +

    You can use ZDL To AsyncAPI Generator to generate AsyncAPI definitions from ZDL Models with a command like this:

    jbang zw -p io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin \
    zdlFile=orders-model.zdl \
    idType=integer \
    idTypeFormat=int64 \
    targetFile=src/main/resources/apis/asyncapi.yml

    But before that, first you need to define in your ZDL Model:

      @@ -276,8 +276,8 @@

      operations:
      doCancelOrder:
      action: receive
      channel:
      $ref: '#/channels/CancelOrdersChannel'
      onOrderStatusUpdated:
      action: send
      channel:
      $ref: '#/channels/OrderUpdatesChannel'

      It will not generate operations for those messages OrdersService is acting as a client, like listening for third-party events like { api: RestaurantsAsyncAPI, channel: "KitchenOrdersStatusChannel" }.

      API-First Code Generator from AsyncAPI

      -

      You can use API-First AsyncAPI Maven Plugin to generate models (DTOs) and a Listener implementation with error handling and other features.

      -
      ZenWave360 AsyncAPI Spring Cloud Streams
      +

      You can use API-First AsyncAPI Maven Plugin to generate models (DTOs) and a Listener implementation with error handling and other features.

      +
      ZenWave360 AsyncAPI Spring Cloud Streams

      By default, ZenWave generates Spring Cloud Streams implementation that counts with different binders for virtually any message broker.

      With this schema you just need to:

        @@ -291,10 +291,10 @@

Once you provide an implementation of this interface (in your Spring Boot context), you just need to set any required configuration for spring.streams.bindings in application.yml:

spring:
stream:
bindings:
do-cancel-order-in-0: ## you can find this name in OnOrderEventConsumer
destination: orders.cancel_orders
group: orders.consumer
-

You can consult how to configure API-First AsyncAPI Maven Plugin in Producing Domain Events section.

+

You can consult how to configure API-First AsyncAPI Maven Plugin in Producing Domain Events section.

Just note, in regards the distinction from commands and events, provider and clients. You can configure as many plugin <execution/> as you need, either in role provider or client.

Generating Async Listeners and Tests

-

You can use AsyncAPI Spring Cloud Streams 3 Adapter Generator to generate Async Adapters (stubs) and Tests from AsyncAPI definitions with a command like this:

+

You can use AsyncAPI Spring Cloud Streams 3 Adapter Generator to generate Async Adapters (stubs) and Tests from AsyncAPI definitions with a command like this:

jbang zw -p io.zenwave360.sdk.plugins.SpringCloudStreams3AdaptersPlugin --help
jbang zw -p io.zenwave360.sdk.plugins.SpringCloudStreams3AdaptersPlugin \
apiFile=src/main/resources/apis/asyncapi.yml \
zdlFile=src/main/resources/model/orders-model.jdl \
role=provider \
style=imperative \
basePackage=io.zenwave360.example \
consumerApiPackage=io.zenwave360.example.adapters.events \
modelPackage=io.zenwave360.example.core.domain.events \
targetFolder=.

This will generate Command Listeners and a Test for each operation in your AsyncAPI definition. Depending on configured role: it will generate Command Listeners for subscribe/receive operations for role provider and publish/send operations for role client.

@@ -305,7 +305,7 @@

\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/exposing-a-rest-api/index.html b/docs/zenwave-sdk/exposing-a-rest-api/index.html index 0ba641e..e982d98 100644 --- a/docs/zenwave-sdk/exposing-a-rest-api/index.html +++ b/docs/zenwave-sdk/exposing-a-rest-api/index.html @@ -229,10 +229,10 @@ } } }) - Exposing a REST API - ZenWave 360ºExposing a REST API - ZenWave 360º

Exposing a REST API for your Service

+ } catch (e) {} })();

Exposing a REST API for your Service

While ZDL Models the inside of your application, OpenAPI (whether generated, or manually written) will be the source of truth for your REST API.

You can still document your ZDL Models for:

    @@ -270,7 +270,7 @@

    Generating SpringMVC Controller Interfaces with official OpenAPI Generator

    Use the following configuration to generate SpringMVC Controller Interfaces from OpenAPI with the official OpenAPI Generator - Spring:

    <plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>6.6.0</version>
    <executions>
    <execution>
    <id>openapi-generator-server</id>
    <goals>
    <goal>generate</goal>
    </goals>
    <phase>generate-sources</phase>
    <configuration>
    <inputSpec>${project.basedir}/src/main/resources/apis/openapi.yml</inputSpec>
    <generatorName>spring</generatorName>
    <apiPackage>${basePackage}.adapters.web</apiPackage>
    <modelPackage>${basePackage}.adapters.web.model</modelPackage>
    <modelNameSuffix>DTO</modelNameSuffix>
    <addCompileSourceRoot>true</addCompileSourceRoot>
    <supportingFilesToGenerate>
    ApiUtil.java
    </supportingFilesToGenerate>
    <typeMappings>
    <typeMapping>Double=java.math.BigDecimal</typeMapping>
    </typeMappings>
    <configOptions>
    <useSpringBoot3>true</useSpringBoot3>
    <documentationProvider>none</documentationProvider>
    <openApiNullable>false</openApiNullable>
    <useOptional>true</useOptional>
    <useTags>true</useTags>
    <interfaceOnly>true</interfaceOnly>
    <delegatePattern>false</delegatePattern>
    </configOptions>
    </configuration>
    </execution>
    </executions>
    </plugin>
    -

    These settings are compatible with OpenAPI: REST Controllers Generator:

    +

    These settings are compatible with OpenAPI: REST Controllers Generator:

    • <typeMapping>Double=java.math.BigDecimal</typeMapping>
    • <useSpringBoot3>true</useSpringBoot3> (use SpringBoot 3 and jakarta annotations)
    • @@ -281,7 +281,7 @@

      Generating SpringMVC Controller from OpenAPI (skeletons)

      -

      You can use ZenWave SDK OpenAPI: REST Controllers Generator to generate SpringMVC Controllers (skeletons) from OpenAPI.

      +

      You can use ZenWave SDK OpenAPI: REST Controllers Generator to generate SpringMVC Controllers (skeletons) from OpenAPI.

      You can both use IntelliJ Plugin:

      /**
      * ZenWave Online Food Delivery - Customers Module.
      */
      config {
      title "ZenWave Online Food Delivery - Customers Module"
      basePackage "io.zenwave360.example.customers"
      targetFolder "modules/customers"
      persistence mongodb
      // these can be executed directly from ZenWave IntelliJ Plugin
      plugins {
      @@ -319,7 +319,7 @@

      @Test

      public void deleteCustomerTest() {
      String customerId = null;
      var response = controller.deleteCustomer(customerId);
      Assertions.assertEquals(204, response.getStatusCode().value());
      }
      @Test
      public void getCustomerTest() {
      String customerId = null;
      var response = controller.getCustomer(customerId);
      Assertions.assertEquals(200, response.getStatusCode().value());
      }
      @Test
      public void updateCustomerAddressTest() {
      String customerId = null;
      String identifier = null;
      AddressDTO reqBody = null;
      var response = controller.updateCustomerAddress(customerId, identifier, reqBody);
      Assertions.assertEquals(200, response.getStatusCode().value());
      }
      -
      }
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/index.html b/docs/zenwave-sdk/index.html index d34812d..bffe00c 100644 --- a/docs/zenwave-sdk/index.html +++ b/docs/zenwave-sdk/index.html @@ -231,10 +231,10 @@ } } }) - ZenWave SDK - ZenWave 360ºZenWave SDK - ZenWave 360º

ZenWave SDK

+ } catch (e) {} })();

ZenWave SDK

ZenWave SDK Helps you Create Software Easy to Understand

Maven Central GitHub release (latest by date) @@ -281,7 +281,7 @@

You can run any available (standard or custom) plugin as part of your maven build using the maven plugin:

Click to see the maven plugin configuration
<plugin>
<groupId>io.github.zenwave360.zenwave-sdk</groupId>
<artifactId>zenwave-sdk-maven-plugin</artifactId>
<version>${zenwave.version}</version>
<plugin>
<includeProjectClasspath>false</includeProjectClasspath><!-- default is false -->
<addCompileSourceRoot>true</addCompileSourceRoot><!-- default is true -->
<addTestCompileSourceRoot>true</addTestCompileSourceRoot><!-- default is true -->
</plugin>
<executions>
<!-- Add executions for each generation here: -->
<execution>
<id>generate-asyncapi</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<plugin>
<generatorName>spring-cloud-streams3</generatorName>
<inputSpec>classpath:model/asyncapi.yml</inputSpec>
<configOptions>
<!-- ... -->
<optionName>value</optionName>
</configOptions>
</plugin>
</execution>
</executions>
<!-- add any sdk plugin (custom or standard) as dependency here -->
<dependencies>
<dependency>
<groupId>io.github.zenwave360.zenwave-sdk.plugins</groupId>
<artifactId>asyncapi-spring-cloud-streams3</artifactId>
<version>${zenwave.version}</version>
</dependency>
<dependency>
<groupId>io.github.zenwave360.zenwave-sdk.plugins</groupId>
<artifactId>asyncapi-jsonschema2pojo</artifactId>
<version>${zenwave.version}</version>
</dependency>
</dependencies>
</plugin>

Notice how you can read spec files from the project classpath as well as the filesystem. If you want to read a spec file from inside a project dependency remember to set <includeProjectClasspath>true</includeProjectClasspath>.

NOTE: Remember to add any plugin you want to use as dependency.

-

Jump to ZenWave AsyncAPI Generator for multiple examples using the maven plugin.

+

Jump to ZenWave AsyncAPI Generator for multiple examples using the maven plugin.

ZenWave SDK Workflow

You can generate complete Event Driven Microservices using DDD and API-First principles:

@@ -400,7 +400,7 @@

ZenWave SDK Modeling Languages

Project structure:

📦 <basePackage>
📦 adapters
└─ web
| └─ RestControllers (spring mvc)
└─ events
└─ *EventListeners (spring-cloud-streams)
📦 core
├─ 📦 domain
| └─ (entities and aggregates)
├─ 📦 inbound
| ├─ dtos/
| └─ ServiceInterface (inbound service interface)
├─ 📦 outbound
| ├─ mongodb
| | └─ *RepositoryInterface (spring-data interface)
| └─ jpa
| └─ *RepositoryInterface (spring-data interface)
└─ 📦 implementation
├─ mappers/
└─ ServiceImplementation (inbound service implementation)
📦 infrastructure
├─ mongodb
| └─ CustomRepositoryImpl (spring-data custom implementation)
└─ jpa
└─ CustomRepositoryImpl (spring-data custom implementation)
-
ZenWave SDK Generated Code Screenshot
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/jpa/index.html b/docs/zenwave-sdk/jpa/index.html index 123e407..dc9f14b 100644 --- a/docs/zenwave-sdk/jpa/index.html +++ b/docs/zenwave-sdk/jpa/index.html @@ -225,10 +225,10 @@ } } }) - With JPA - ZenWave 360ºWith JPA - ZenWave 360º
\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/modeling-aggregates/index.html b/docs/zenwave-sdk/modeling-aggregates/index.html index eb74206..9632c2d 100644 --- a/docs/zenwave-sdk/modeling-aggregates/index.html +++ b/docs/zenwave-sdk/modeling-aggregates/index.html @@ -225,10 +225,10 @@ } } }) - Modeling Aggregates - ZenWave 360ºModeling Aggregates - ZenWave 360º

Modeling Aggregates

+ } catch (e) {} })(); \ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/mongodb/index.html b/docs/zenwave-sdk/mongodb/index.html index 9bff1f8..d19c1a0 100644 --- a/docs/zenwave-sdk/mongodb/index.html +++ b/docs/zenwave-sdk/mongodb/index.html @@ -225,10 +225,10 @@ } } }) - With Mongodb - ZenWave 360ºWith Mongodb - ZenWave 360º

Backend Application with MongoDB

+ } catch (e) {} })();

Backend Application with MongoDB

With MongoDB each DDD Aggregate becomes a Collection Document.

With a Documental Database like MongoDB, mapping OneToMany and OneToOne relationships is trivial because they are represented as nested documents.

On the other hand ManyToOne and ManyToMany relationships needs a little more thought, and it greatly depends on the use case how you decide to denormalize the data.

@@ -241,7 +241,7 @@

@aggregate
@auditting
entity Customer {
username String required unique /** username javadoc comment */
email String required unique /** email javadoc comment */
tags String[] /** tags javadoc comment */
/**
* addresses is a nested entity
*/
addresses Address[] {
street String /** street javadoc comment */
city String /** city javadoc comment */
state String /** state javadoc comment */
zip String /** zip javadoc comment */
type AddressType /** address type is an enum */
}
}

OneToMany and OneToOne with @DBRef and @DocumentedReference

@aggregate
@auditting
entity Customer {
username String required unique /** username javadoc comment */
email String required unique /** email javadoc comment */
tags String[] /** tags javadoc comment */
/**
* addresses is mapped using @DocumentedReference
*/
@ref addresses Address[]
}
-
@aggregate
@auditting
entity Address {
street String /** street javadoc comment */
city String /** city javadoc comment */
state String /** state javadoc comment */
zip String /** zip javadoc comment */
type AddressType /** address type is an enum */
}

\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave-sdk/producing-domain-events/index.html b/docs/zenwave-sdk/producing-domain-events/index.html index b1b6912..a582659 100644 --- a/docs/zenwave-sdk/producing-domain-events/index.html +++ b/docs/zenwave-sdk/producing-domain-events/index.html @@ -229,15 +229,15 @@ } } }) - Producing Domain Events - ZenWave 360ºProducing Domain Events - ZenWave 360º

Producing Domain Events

+ } catch (e) {} })();

Producing Domain Events

Producing Domain Events with AsyncAPI and ZenWave Maven Plugin

In this section you will learn how to produce domain events from your services and publish them to a message broker.

We will be using AsyncAPI specification to define our message structure, and use ZenWave SDK Maven Plugin to generate models (DTOs) and a producer implementation from your API-First definition.

Using ZenWave ZDL as Definition Language for AsyncAPI

-

While AsyncAPI is the source of truth for Event-Driven communication, with ZDLToAsyncAPIPlugin plugins you can create complete draft version of AsyncAPI specification from your annotated Services and Events.

+

While AsyncAPI is the source of truth for Event-Driven communication, with ZDLToAsyncAPIPlugin plugins you can create complete draft version of AsyncAPI specification from your annotated Services and Events.

jbang zw -p io.zenwave360.sdk.plugins.ZDLToAsyncAPIPlugin \
zdlFile=src/main/resources/model/orders-model.zdl \
idType=integer \
idTypeFormat=int64 \
targetFile=src/main/resources/model/asyncapi.yml

For instance the following ZDL model:

service OrdersService for (CustomerOrder) {
// only emited events will be included in the asyncapi definition
updateOrder(id, CustomerOrderInput) CustomerOrder withEvents OrderStatusUpdated
}
@@ -253,7 +253,7 @@

API-First Code Generator from AsyncAPI

-

You can use API-First AsyncAPI Maven Plugin to generate models (DTOs) and a producer implementation.

+

You can use API-First AsyncAPI Maven Plugin to generate models (DTOs) and a producer implementation.

Configure zenwave-sdk-maven-plugin as follows:

  • Set inputSpec to point to your AsyncAPI specification. You can use classpath, file, http(s) or https as inputSpec.
  • @@ -267,7 +267,7 @@

Producing Domain Events with Generated Code

By default, ZenWave generates Spring Cloud Streams implementation that counts with different binders for virtually any message broker:

-
ZenWave360 AsyncAPI Spring Cloud Streams
+
ZenWave360 AsyncAPI Spring Cloud Streams
📦 target/generated-sources/zenwave
📦 src/main/java
└─ <modelPackage> models (DTOs)
└─ AddressDTO.java
└─ CustomerDTO.java
└─ <producerPackage>
└─ ICustomerEventsProducer (interface and header objects)
└─ CustomerEventsProducer (spring-cloud-streams producer)
📦 src/test/java
└─ <producerPackage>
└─ CustomerEventsProducerCaptor (in-memory producer/captor)
└─ EventsProducerInMemoryContext (spring-boot/manual context)

With this schema you just need to:

    @@ -292,7 +292,7 @@

    // This will only be generated if includeEmitEventsImplementation is set to true
    private final EventsMapper eventsMapper = EventsMapper.INSTANCE;
    private final ICustomerEventsProducer eventsProducer;
    @Transactional
    public Customer createCustomer(Customer input) {
    log.debug("Request to save Customer: {}", input);
    var customer = customerServiceMapper.update(new Customer(), input);
    customer = customerRepository.save(customer);
    // This will only be generated if includeEmitEventsImplementation is set to true
    var customerEvent = eventsMapper.asCustomerEvent(customer);
    eventsProducer.onCustomerEvent(customerEvent);
    -
    return customer;
    }

\ No newline at end of file + } \ No newline at end of file diff --git a/docs/zenwave360/index.html b/docs/zenwave360/index.html index 1669d65..ab0ee78 100644 --- a/docs/zenwave360/index.html +++ b/docs/zenwave360/index.html @@ -223,10 +223,10 @@ } } }) - ZenWave 360º - ZenWave 360ºZenWave 360º - ZenWave 360º

ZenWave 360º

+ } catch (e) {} })();

ZenWave 360º

The critical complexity of most software projects is in understanding the domain itself. - Eric Evans in Domain-Driven Design

@@ -294,4 +294,4 @@

/**/ \ No newline at end of file + } \ No newline at end of file diff --git a/index.html b/index.html index b1d8af1..e2a6315 100644 --- a/index.html +++ b/index.html @@ -257,8 +257,8 @@ ZenWave 360º

Create Software
Easy To Understand!

-

DDD and API-First Modeling Tools for Modern Distributed Applications.

Domain Model Language

Concise and complete DDD modeling language for Event-Driven Architectures.

ZenWave SDK

ZenWave SDK helps you create SpringBoot/SpringCloud applications in no time.

Domain Driven Design

Business, Developer and Computer friendly Ubiquitous Language for your Domain Models and Bounded Contexts.

Event-Driven Architectures

Designed for Event-Driven Architectures, mapping Event-Storming discoveries into your models.

API-First

Leveraging open standards like OpenAPI and AsyncAPI.

API-Testing

Testing as first class citizen. Helps you create complete test suites from your Models and APIs.

Domain Driven Design is about Business Understanding

Maintainable Software

    + } catch (e) {} })();

    Create Software
    Easy To Understand!

    +

    DDD and API-First Modeling Tools for Modern Distributed Applications.

    Domain Model Language

    Concise and complete DDD modeling language for Event-Driven Architectures.

    ZenWave SDK

    ZenWave SDK helps you create SpringBoot/SpringCloud applications in no time.

    Domain Driven Design

    Business, Developer and Computer friendly Ubiquitous Language for your Domain Models and Bounded Contexts.

    Event-Driven Architectures

    Designed for Event-Driven Architectures, mapping Event-Storming discoveries into your models.

    API-First

    Leveraging open standards like OpenAPI and AsyncAPI.

    API-Testing

    Testing as first class citizen. Helps you create complete test suites from your Models and APIs.

    Domain Driven Design is about Business Understanding

    Maintainable Software

    • It is not a matter of code but a matter of understanding the business domain
    • Software well designed should be easy to understand by all
    Domain Driven Design is about Business Understanding
    Gap between Domain Experts - Technical Knwoledge

    Common Language (DSL)

    A common language closes the gap between:

      @@ -273,10 +273,10 @@
    • API Definitions: OpenAPI, AsyncAPI...
    • SpringBoot/SpringCloud Backend...
    • API Testing: KarateDSL, Spring WebTestClient...
    • -

    A Domain Language Designed for Event-Driven Architectures

    Event Storming

    ... And Bounded Context Mapping

    Bounded Context Mapping with ZDL

    Can be read as documentation

    And easily converted into working software & tests

A Domain Language Designed for Event-Driven Architectures

Event Storming

... And Bounded Context Mapping

Bounded Context Mapping with ZDL

Can be read as documentation

And easily converted into working software & tests

\ No newline at end of file + } \ No newline at end of file diff --git a/page-data/API-First/AsyncAPI/page-data.json b/page-data/API-First/AsyncAPI/page-data.json index 7398413..aacb06a 100644 --- a/page-data/API-First/AsyncAPI/page-data.json +++ b/page-data/API-First/AsyncAPI/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-first-async-api-md","path":"/API-First/AsyncAPI","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"AsyncAPI"},"tableOfContents":{"items":[{"url":"#api-first-with-asyncapi","title":"API-First with AsyncAPI"},{"url":"#api-first-with-asyncapi-and-zenwave-sdk","title":"API-First with AsyncAPI and ZenWave SDK"},{"url":"#broker-based-apis-are-symmetric","title":"Broker-based APIs are Symmetric"},{"url":"#events-commands-and-messages","title":"Events, Commands, and Messages"},{"url":"#understanding-asyncapi-specification","title":"Understanding AsyncAPI Specification","items":[{"url":"#different-styles-of-event-messages","title":"Different Styles of Event Messages"}]},{"url":"#api-first-code-generator-from-asyncapi","title":"API-First Code Generator from AsyncAPI"},{"url":"#some-patterns-supported-by-zenwave-asyncapi-code-generator","title":"Some Patterns supported by ZenWave AsyncAPI Code Generator","items":[{"url":"#exception-handling-with-business-dead-letter-queue","title":"Exception Handling with Business Dead Letter Queue"},{"url":"#populating-headers-at-runtime-automatically","title":"Populating Headers at Runtime Automatically"},{"url":"#transactional-outbox-with-mongodb-changestreams","title":"Transactional Outbox with MongoDB ChangeStreams"}]},{"url":"#asyncapi-conference-on-tour-madrid-2023","title":"AsyncAPI Conference On Tour Madrid 2023"}]}}},"pageContext":{"id":"f6eaa6c0-e673-5f35-a03e-990fd192ec10","frontmatter":{"section":"ZenWave & API-First","title":"AsyncAPI","slug":"/API-First/AsyncAPI","parent":"API-First","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-First/AsyncAPI.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-first-async-api-md","path":"/API-First/AsyncAPI/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"AsyncAPI"},"tableOfContents":{"items":[{"url":"#api-first-with-asyncapi","title":"API-First with AsyncAPI"},{"url":"#api-first-with-asyncapi-and-zenwave-sdk","title":"API-First with AsyncAPI and ZenWave SDK"},{"url":"#broker-based-apis-are-symmetric","title":"Broker-based APIs are Symmetric"},{"url":"#events-commands-and-messages","title":"Events, Commands, and Messages"},{"url":"#understanding-asyncapi-specification","title":"Understanding AsyncAPI Specification","items":[{"url":"#different-styles-of-event-messages","title":"Different Styles of Event Messages"}]},{"url":"#api-first-code-generator-from-asyncapi","title":"API-First Code Generator from AsyncAPI"},{"url":"#some-patterns-supported-by-zenwave-asyncapi-code-generator","title":"Some Patterns supported by ZenWave AsyncAPI Code Generator","items":[{"url":"#exception-handling-with-business-dead-letter-queue","title":"Exception Handling with Business Dead Letter Queue"},{"url":"#populating-headers-at-runtime-automatically","title":"Populating Headers at Runtime Automatically"},{"url":"#transactional-outbox-with-mongodb-changestreams","title":"Transactional Outbox with MongoDB ChangeStreams"}]},{"url":"#asyncapi-conference-on-tour-madrid-2023","title":"AsyncAPI Conference On Tour Madrid 2023"}]}}},"pageContext":{"id":"f6eaa6c0-e673-5f35-a03e-990fd192ec10","frontmatter":{"section":"ZenWave & API-First","title":"AsyncAPI","slug":"/API-First/AsyncAPI/","parent":"API-First","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-First/AsyncAPI.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/API-First/OpenAPI/page-data.json b/page-data/API-First/OpenAPI/page-data.json index d835e14..2a922c4 100644 --- a/page-data/API-First/OpenAPI/page-data.json +++ b/page-data/API-First/OpenAPI/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-first-open-api-md","path":"/API-First/OpenAPI","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"OpenAPI"},"tableOfContents":{"items":[{"url":"#api-first-with-openapi","title":"API-First with OpenAPI"}]}}},"pageContext":{"id":"e311f46c-6c29-5eb3-abce-fbc28a529cf0","frontmatter":{"section":"ZenWave & API-First","title":"OpenAPI","slug":"/API-First/OpenAPI","parent":"API-First","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-First/OpenAPI.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-first-open-api-md","path":"/API-First/OpenAPI/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"OpenAPI"},"tableOfContents":{"items":[{"url":"#api-first-with-openapi","title":"API-First with OpenAPI"}]}}},"pageContext":{"id":"e311f46c-6c29-5eb3-abce-fbc28a529cf0","frontmatter":{"section":"ZenWave & API-First","title":"OpenAPI","slug":"/API-First/OpenAPI/","parent":"API-First","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-First/OpenAPI.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index d073a34..41be10c 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"9bdb59df5592f9a8ae7a"} +{"webpackCompilationHash":"a252cc9d25c71c378fab"} diff --git a/page-data/docs/domain-modeling/business-domain-modeling/page-data.json b/page-data/docs/domain-modeling/business-domain-modeling/page-data.json index eb6a7b5..547aa47 100644 --- a/page-data/docs/domain-modeling/business-domain-modeling/page-data.json +++ b/page-data/docs/domain-modeling/business-domain-modeling/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-ddd-business-domain-modeling-mdx","path":"/docs/domain-modeling/business-domain-modeling","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Business Domain Modeling"},"tableOfContents":{"items":[{"url":"#business-domain-modeling","title":"Business Domain Modeling","items":[{"url":"#understand-the-mental-model-of-the-business-experts","title":"Understand the mental model of the business experts"},{"url":"#create-and-ubiquitous-language-to-reflect-the-mental-model-of-the-business-experts","title":"Create and Ubiquitous Language to reflect the mental model of the Business Experts"},{"url":"#convert-the-ubiquitous-language-into-different-software-artifacts-with-zenwave-sdk","title":"Convert the Ubiquitous Language into different Software Artifacts with ZenWave SDK"},{"url":"#practical-event-storming-with-asyncapi-v3-and-zenwave-sdk","title":"Practical Event Storming with AsyncAPI v3 and ZenWave SDK"}]}]}}},"pageContext":{"id":"526696a4-5c3b-56d6-acd0-4770d47c3c52","frontmatter":{"section":"Domain Modeling","title":"Business Domain Modeling","slug":"/docs/domain-modeling/business-domain-modeling","order":0},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/DDD/BusinessDomainModeling.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-ddd-business-domain-modeling-mdx","path":"/docs/domain-modeling/business-domain-modeling/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Business Domain Modeling"},"tableOfContents":{"items":[{"url":"#business-domain-modeling","title":"Business Domain Modeling","items":[{"url":"#understand-the-mental-model-of-the-business-experts","title":"Understand the mental model of the business experts"},{"url":"#create-and-ubiquitous-language-to-reflect-the-mental-model-of-the-business-experts","title":"Create and Ubiquitous Language to reflect the mental model of the Business Experts"},{"url":"#convert-the-ubiquitous-language-into-different-software-artifacts-with-zenwave-sdk","title":"Convert the Ubiquitous Language into different Software Artifacts with ZenWave SDK"},{"url":"#practical-event-storming-with-asyncapi-v3-and-zenwave-sdk","title":"Practical Event Storming with AsyncAPI v3 and ZenWave SDK"}]}]}}},"pageContext":{"id":"526696a4-5c3b-56d6-acd0-4770d47c3c52","frontmatter":{"section":"Domain Modeling","title":"Business Domain Modeling","slug":"/docs/domain-modeling/business-domain-modeling/","order":0},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/DDD/BusinessDomainModeling.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/event-driven-design/event-storming/page-data.json b/page-data/docs/event-driven-design/event-storming/page-data.json index 30d7e49..2fad7ea 100644 --- a/page-data/docs/event-driven-design/event-storming/page-data.json +++ b/page-data/docs/event-driven-design/event-storming/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-ddd-event-storming-mdx","path":"/docs/event-driven-design/event-storming","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Event Storming"},"tableOfContents":{"items":[{"url":"#event-storming","title":"Event Storming","items":[{"url":"#event-storming-1","title":"Event Storming"},{"url":"#zdl--a-domain-modeling-language-for-ddd-and-event-storming","title":"ZDL ~ A Domain Modeling Language for DDD and Event Storming"},{"url":"#from-vision-to-detail","title":"From Vision To Detail"},{"url":"#big-picture-eventstorming","title":"Big Picture EventStorming"},{"url":"#design-level-eventstorming-for-designing-event-driven-systems-for-a-bonded-context","title":"Design Level EventStorming for Designing Event-Driven Systems for a Bonded Context"},{"url":"#event-storming-elements","title":"Event Storming Elements","items":[{"url":"#events","title":"Events"},{"url":"#commands-and-policies","title":"Commands and Policies","items":[{"url":"#user-initiated-command-produces-event","title":"User Initiated Command Produces Event"},{"url":"#policy-initiated-command","title":"Policy Initiated Command"}]},{"url":"#command-invoked-on-system-produces-event","title":"Command invoked on System produces Event"},{"url":"#command-invoked-on-aggregate-produces-event","title":"Command invoked on Aggregate produces Event"},{"url":"#read-models-in-commands-and-events","title":"Read Models in Commands and Events"}]},{"url":"#event-storming-steps","title":"Event Storming Steps","items":[{"url":"#establish-the-timeline","title":"Establish the Timeline"},{"url":"#join-events-with-commands-and-policies","title":"Join events with commands and policies"},{"url":"#identify-aggregates","title":"Identify Aggregates"},{"url":"#split-into-bounded-contexts","title":"Split into Bounded Contexts"},{"url":"#describe-the-bounded-contexts-using-bounded-context-canvas-and-zdl-model-language","title":"Describe the Bounded Contexts using Bounded Context Canvas and ZDL Model Language"}]}]}]}}},"pageContext":{"id":"1147a6f5-4a53-5cee-a2f1-6e8602e9709d","frontmatter":{"section":"Domain Modeling","title":"Event Storming","slug":"/docs/event-driven-design/event-storming","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/DDD/Event-Storming.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-ddd-event-storming-mdx","path":"/docs/event-driven-design/event-storming/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Event Storming"},"tableOfContents":{"items":[{"url":"#event-storming","title":"Event Storming","items":[{"url":"#event-storming-1","title":"Event Storming"},{"url":"#zdl--a-domain-modeling-language-for-ddd-and-event-storming","title":"ZDL ~ A Domain Modeling Language for DDD and Event Storming"},{"url":"#from-vision-to-detail","title":"From Vision To Detail"},{"url":"#big-picture-eventstorming","title":"Big Picture EventStorming"},{"url":"#design-level-eventstorming-for-designing-event-driven-systems-for-a-bonded-context","title":"Design Level EventStorming for Designing Event-Driven Systems for a Bonded Context"},{"url":"#event-storming-elements","title":"Event Storming Elements","items":[{"url":"#events","title":"Events"},{"url":"#commands-and-policies","title":"Commands and Policies","items":[{"url":"#user-initiated-command-produces-event","title":"User Initiated Command Produces Event"},{"url":"#policy-initiated-command","title":"Policy Initiated Command"}]},{"url":"#command-invoked-on-system-produces-event","title":"Command invoked on System produces Event"},{"url":"#command-invoked-on-aggregate-produces-event","title":"Command invoked on Aggregate produces Event"},{"url":"#read-models-in-commands-and-events","title":"Read Models in Commands and Events"}]},{"url":"#event-storming-steps","title":"Event Storming Steps","items":[{"url":"#establish-the-timeline","title":"Establish the Timeline"},{"url":"#join-events-with-commands-and-policies","title":"Join events with commands and policies"},{"url":"#identify-aggregates","title":"Identify Aggregates"},{"url":"#split-into-bounded-contexts","title":"Split into Bounded Contexts"},{"url":"#describe-the-bounded-contexts-using-bounded-context-canvas-and-zdl-model-language","title":"Describe the Bounded Contexts using Bounded Context Canvas and ZDL Model Language"}]}]}]}}},"pageContext":{"id":"1147a6f5-4a53-5cee-a2f1-6e8602e9709d","frontmatter":{"section":"Domain Modeling","title":"Event Storming","slug":"/docs/event-driven-design/event-storming/","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/DDD/Event-Storming.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/event-driven-design/zenwave-domain-language/page-data.json b/page-data/docs/event-driven-design/zenwave-domain-language/page-data.json index f518c27..5292404 100644 --- a/page-data/docs/event-driven-design/zenwave-domain-language/page-data.json +++ b/page-data/docs/event-driven-design/zenwave-domain-language/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-ddd-zdl-domain-language-mdx","path":"/docs/event-driven-design/zenwave-domain-language","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"ZDL Domain Language"},"tableOfContents":{"items":[{"url":"#zdl-domain-modeling-language","title":"ZDL Domain Modeling Language","items":[{"url":"#file-structure","title":"File Structure"},{"url":"#entities-and-aggregates","title":"Entities and Aggregates","items":[{"url":"#annotations","title":"Annotations"},{"url":"#fields","title":"Fields","items":[{"url":"#field-types-and-validations","title":"Field Types and Validations"}]},{"url":"#documentation-comments","title":"Documentation Comments"},{"url":"#relationships","title":"Relationships","items":[{"url":"#relationships-between-aggregates","title":"Relationships between aggregates"}]},{"url":"#nested-entities","title":"Nested Entities"}]},{"url":"#enums","title":"Enums"},{"url":"#aggregate-objects","title":"Aggregate Objects"},{"url":"#services-and-commands","title":"Services and Commands","items":[{"url":"#service-commands","title":"Service Commands"},{"url":"#service-crud-commands","title":"Service CRUD Commands"},{"url":"#business-policies","title":"Business Policies"},{"url":"#inputs","title":"Inputs"},{"url":"#outputs","title":"Outputs"}]},{"url":"#domain-events","title":"Domain Events"},{"url":"#configuration-section","title":"Configuration Section","items":[{"url":"#sdk-plugins","title":"SDK Plugins"}]},{"url":"#apis-section","title":"APIs Section"}]}]}}},"pageContext":{"id":"5fef1d7b-d7b6-51c8-9866-9f18e6aa455a","frontmatter":{"section":"Domain Modeling","title":"ZDL Domain Language","slug":"/docs/event-driven-design/zenwave-domain-language","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/DDD/ZDL-Domain-Language.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-ddd-zdl-domain-language-mdx","path":"/docs/event-driven-design/zenwave-domain-language/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"ZDL Domain Language"},"tableOfContents":{"items":[{"url":"#zdl-domain-modeling-language","title":"ZDL Domain Modeling Language","items":[{"url":"#file-structure","title":"File Structure"},{"url":"#entities-and-aggregates","title":"Entities and Aggregates","items":[{"url":"#annotations","title":"Annotations"},{"url":"#fields","title":"Fields","items":[{"url":"#field-types-and-validations","title":"Field Types and Validations"}]},{"url":"#documentation-comments","title":"Documentation Comments"},{"url":"#relationships","title":"Relationships","items":[{"url":"#relationships-between-aggregates","title":"Relationships between aggregates"}]},{"url":"#nested-entities","title":"Nested Entities"}]},{"url":"#enums","title":"Enums"},{"url":"#aggregate-objects","title":"Aggregate Objects"},{"url":"#services-and-commands","title":"Services and Commands","items":[{"url":"#service-commands","title":"Service Commands"},{"url":"#service-crud-commands","title":"Service CRUD Commands"},{"url":"#business-policies","title":"Business Policies"},{"url":"#inputs","title":"Inputs"},{"url":"#outputs","title":"Outputs"}]},{"url":"#domain-events","title":"Domain Events"},{"url":"#configuration-section","title":"Configuration Section","items":[{"url":"#sdk-plugins","title":"SDK Plugins"}]},{"url":"#apis-section","title":"APIs Section"}]}]}}},"pageContext":{"id":"5fef1d7b-d7b6-51c8-9866-9f18e6aa455a","frontmatter":{"section":"Domain Modeling","title":"ZDL Domain Language","slug":"/docs/event-driven-design/zenwave-domain-language/","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/DDD/ZDL-Domain-Language.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/examples/index/page-data.json b/page-data/docs/examples/index/page-data.json index dc35e92..6153c82 100644 --- a/page-data/docs/examples/index/page-data.json +++ b/page-data/docs/examples/index/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-examples-index-mdx","path":"/docs/examples/index","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"EDA Examples"},"tableOfContents":{"items":[{"url":"#eda-examples","title":"EDA Examples","items":[{"url":"#fooddeliveryservice-kit-asyncapi-in-action","title":"FoodDeliveryService-KIT-AsyncAPI-In-Action"}]}]}}},"pageContext":{"id":"08c94789-a8b1-5b3d-a7ba-c7752e441946","frontmatter":{"section":"Examples","title":"EDA Examples","slug":"/docs/examples/index","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/Examples/index.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-examples-index-mdx","path":"/docs/examples/index/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"EDA Examples"},"tableOfContents":{"items":[{"url":"#eda-examples","title":"EDA Examples","items":[{"url":"#fooddeliveryservice-kit-asyncapi-in-action","title":"FoodDeliveryService-KIT-AsyncAPI-In-Action"}]}]}}},"pageContext":{"id":"08c94789-a8b1-5b3d-a7ba-c7752e441946","frontmatter":{"section":"Examples","title":"EDA Examples","slug":"/docs/examples/index/","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/Examples/index.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/api-testing/karate/page-data.json b/page-data/docs/zenwave-sdk/api-testing/karate/page-data.json index 5b1d9de..b0ad5ba 100644 --- a/page-data/docs/zenwave-sdk/api-testing/karate/page-data.json +++ b/page-data/docs/zenwave-sdk/api-testing/karate/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-testing-karate-mdx","path":"/docs/zenwave-sdk/api-testing/karate","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"KarateDSL"},"tableOfContents":{"items":[{"url":"#zenwave-karateide-for-vscode","title":"ZenWave KarateIDE for VSCode","items":[{"url":"#test-runner-and-rest-client","title":"Test Runner and Rest Client"},{"url":"#many-options-to-explore-your-logs-and-response-payloads","title":"Many options to explore your logs and response payloads"},{"url":"#generate-karate-tests-from-openapi-definitions","title":"Generate Karate Tests from OpenAPI definitions"},{"url":"#integrated-with-native-test-api-from-vscode","title":"Integrated with native Test API from VSCode"},{"url":"#generate-stateful-mocks-and-start-them-from-the-editor-or-tests-explorer-side-bar","title":"Generate Stateful Mocks and Start them from the Editor (or Tests Explorer side bar)"},{"url":"#generate-tests-that-spans-multiple-api-calls-simulating-business-flows","title":"Generate Tests that spans multiple API calls simulating Business Flows"},{"url":"#contract-testing","title":"Contract Testing","items":[{"items":[{"url":"#warning-spanish-content","title":"Warning: Spanish Content"}]}]}]}]}}},"pageContext":{"id":"e3cca46d-0c35-5f45-8196-759f6e199957","frontmatter":{"section":"ZenWave & API Testing","title":"KarateDSL","slug":"/docs/zenwave-sdk/api-testing/karate","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-Testing/Karate.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-testing-karate-mdx","path":"/docs/zenwave-sdk/api-testing/karate/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"KarateDSL"},"tableOfContents":{"items":[{"url":"#zenwave-karateide-for-vscode","title":"ZenWave KarateIDE for VSCode","items":[{"url":"#test-runner-and-rest-client","title":"Test Runner and Rest Client"},{"url":"#many-options-to-explore-your-logs-and-response-payloads","title":"Many options to explore your logs and response payloads"},{"url":"#generate-karate-tests-from-openapi-definitions","title":"Generate Karate Tests from OpenAPI definitions"},{"url":"#integrated-with-native-test-api-from-vscode","title":"Integrated with native Test API from VSCode"},{"url":"#generate-stateful-mocks-and-start-them-from-the-editor-or-tests-explorer-side-bar","title":"Generate Stateful Mocks and Start them from the Editor (or Tests Explorer side bar)"},{"url":"#generate-tests-that-spans-multiple-api-calls-simulating-business-flows","title":"Generate Tests that spans multiple API calls simulating Business Flows"},{"url":"#contract-testing","title":"Contract Testing","items":[{"items":[{"url":"#warning-spanish-content","title":"Warning: Spanish Content"}]}]}]}]}}},"pageContext":{"id":"e3cca46d-0c35-5f45-8196-759f6e199957","frontmatter":{"section":"ZenWave & API Testing","title":"KarateDSL","slug":"/docs/zenwave-sdk/api-testing/karate/","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-Testing/Karate.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/api-testing/spring-webtestclient/page-data.json b/page-data/docs/zenwave-sdk/api-testing/spring-webtestclient/page-data.json index 25bb39b..ebffe9e 100644 --- a/page-data/docs/zenwave-sdk/api-testing/spring-webtestclient/page-data.json +++ b/page-data/docs/zenwave-sdk/api-testing/spring-webtestclient/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-testing-spring-web-test-client-mdx","path":"/docs/zenwave-sdk/api-testing/spring-webtestclient","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Spring WebTestClient"},"tableOfContents":{"items":[{"url":"#generating-spring-webtestclient","title":"Generating Spring WebTestClient","items":[{"url":"#unit-tests-for-each-openapi-operation","title":"Unit Tests for each OpenAPI Operation"},{"url":"#business-flow-test-for-some-openapi-operations-that-work-together","title":"Business Flow Test for some OpenAPI Operations that work together"}]}]}}},"pageContext":{"id":"f1014418-1665-5273-811a-b5acc62184b3","frontmatter":{"section":"ZenWave & API Testing","title":"Spring WebTestClient","slug":"/docs/zenwave-sdk/api-testing/spring-webtestclient","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-Testing/Spring-WebTestClient.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-api-testing-spring-web-test-client-mdx","path":"/docs/zenwave-sdk/api-testing/spring-webtestclient/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Spring WebTestClient"},"tableOfContents":{"items":[{"url":"#generating-spring-webtestclient","title":"Generating Spring WebTestClient","items":[{"url":"#unit-tests-for-each-openapi-operation","title":"Unit Tests for each OpenAPI Operation"},{"url":"#business-flow-test-for-some-openapi-operations-that-work-together","title":"Business Flow Test for some OpenAPI Operations that work together"}]}]}}},"pageContext":{"id":"f1014418-1665-5273-811a-b5acc62184b3","frontmatter":{"section":"ZenWave & API Testing","title":"Spring WebTestClient","slug":"/docs/zenwave-sdk/api-testing/spring-webtestclient/","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/API-Testing/Spring-WebTestClient.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/backend-application/page-data.json b/page-data/docs/zenwave-sdk/backend-application/page-data.json index f96dd50..3d2d548 100644 --- a/page-data/docs/zenwave-sdk/backend-application/page-data.json +++ b/page-data/docs/zenwave-sdk/backend-application/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-backend-application-mdx","path":"/docs/zenwave-sdk/backend-application","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Backend Application"},"tableOfContents":{"items":[{"url":"#backend-application-with-zenwave-sdk","title":"Backend Application with ZenWave SDK","items":[{"url":"#project-structure","title":"Project structure"},{"url":"#start-modeling-with-zdl","title":"Start Modeling with ZDL"},{"url":"#entities-and-aggregates","title":"Entities and Aggregates","items":[{"url":"#special-annotations","title":"Special annotations"}]},{"url":"#services--commands","title":"Services Commands"},{"url":"#inputs-and-outputs","title":"Inputs and Outputs"},{"url":"#exposing-your-services-to-outside-world","title":"Exposing your Services to Outside World"},{"url":"#events","title":"Events"},{"url":"#including-event-publishing-code","title":"Including Event Publishing Code"},{"url":"#generating-code-with-cli-or-intellij-plugin","title":"Generating Code with CLI or IntelliJ Plugin"},{"url":"#notes-about-generated-hexagonal-architecture","title":"Notes about Generated Hexagonal Architecture","items":[{"items":[{"url":"#project-structure-customization","title":"Project Structure Customization"}]}]}]}]}}},"pageContext":{"id":"d4ac8b32-bf45-54fa-9f9a-6587522dfebf","frontmatter":{"section":"ZenWave SDK","title":"Backend Application","slug":"/docs/zenwave-sdk/backend-application","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/BackendApplication.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-backend-application-mdx","path":"/docs/zenwave-sdk/backend-application/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Backend Application"},"tableOfContents":{"items":[{"url":"#backend-application-with-zenwave-sdk","title":"Backend Application with ZenWave SDK","items":[{"url":"#project-structure","title":"Project structure"},{"url":"#start-modeling-with-zdl","title":"Start Modeling with ZDL"},{"url":"#entities-and-aggregates","title":"Entities and Aggregates","items":[{"url":"#special-annotations","title":"Special annotations"}]},{"url":"#services--commands","title":"Services Commands"},{"url":"#inputs-and-outputs","title":"Inputs and Outputs"},{"url":"#exposing-your-services-to-outside-world","title":"Exposing your Services to Outside World"},{"url":"#events","title":"Events"},{"url":"#including-event-publishing-code","title":"Including Event Publishing Code"},{"url":"#generating-code-with-cli-or-intellij-plugin","title":"Generating Code with CLI or IntelliJ Plugin"},{"url":"#notes-about-generated-hexagonal-architecture","title":"Notes about Generated Hexagonal Architecture","items":[{"items":[{"url":"#project-structure-customization","title":"Project Structure Customization"}]}]}]}]}}},"pageContext":{"id":"d4ac8b32-bf45-54fa-9f9a-6587522dfebf","frontmatter":{"section":"ZenWave SDK","title":"Backend Application","slug":"/docs/zenwave-sdk/backend-application/","order":1},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/BackendApplication.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/consuming-async-commands/page-data.json b/page-data/docs/zenwave-sdk/consuming-async-commands/page-data.json index e440c94..62192f9 100644 --- a/page-data/docs/zenwave-sdk/consuming-async-commands/page-data.json +++ b/page-data/docs/zenwave-sdk/consuming-async-commands/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-consuming-async-commands-mdx","path":"/docs/zenwave-sdk/consuming-async-commands","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Consuming Async Commands"},"tableOfContents":{"items":[{"url":"#consuming-async-commands","title":"Consuming Async Commands","items":[{"url":"#using-zenwave-zdl-as-definition-language-for-asyncapi","title":"Using ZenWave ZDL as Definition Language for AsyncAPI"},{"url":"#api-first-code-generator-from-asyncapi","title":"API-First Code Generator from AsyncAPI"},{"url":"#generating-async-listeners-and-tests","title":"Generating Async Listeners and Tests"}]}]}}},"pageContext":{"id":"adcd090d-eadb-50f9-9551-f18c94d8597c","frontmatter":{"section":"ZenWave SDK","title":"Consuming Async Commands","slug":"/docs/zenwave-sdk/consuming-async-commands","order":6},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ConsumingAsyncCommands.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-consuming-async-commands-mdx","path":"/docs/zenwave-sdk/consuming-async-commands/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Consuming Async Commands"},"tableOfContents":{"items":[{"url":"#consuming-async-commands","title":"Consuming Async Commands","items":[{"url":"#using-zenwave-zdl-as-definition-language-for-asyncapi","title":"Using ZenWave ZDL as Definition Language for AsyncAPI"},{"url":"#api-first-code-generator-from-asyncapi","title":"API-First Code Generator from AsyncAPI"},{"url":"#generating-async-listeners-and-tests","title":"Generating Async Listeners and Tests"}]}]}}},"pageContext":{"id":"adcd090d-eadb-50f9-9551-f18c94d8597c","frontmatter":{"section":"ZenWave SDK","title":"Consuming Async Commands","slug":"/docs/zenwave-sdk/consuming-async-commands/","order":6},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ConsumingAsyncCommands.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/exposing-a-rest-api/page-data.json b/page-data/docs/zenwave-sdk/exposing-a-rest-api/page-data.json index f7b0485..74aebca 100644 --- a/page-data/docs/zenwave-sdk/exposing-a-rest-api/page-data.json +++ b/page-data/docs/zenwave-sdk/exposing-a-rest-api/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-exposing-rest-api-mdx","path":"/docs/zenwave-sdk/exposing-a-rest-api","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Exposing a REST API"},"tableOfContents":{"items":[{"url":"#exposing-a-rest-api-for-your-service","title":"Exposing a REST API for your Service","items":[{"url":"#using-zenwave-zdl-as-definition-language-for-openapi","title":"Using ZenWave ZDL as Definition Language for OpenAPI","items":[{"url":"#pagination-flavors","title":"Pagination Flavor(s)"}]},{"url":"#generating-springmvc-controller-interfaces-with-official-openapi-generator","title":"Generating SpringMVC Controller Interfaces with official OpenAPI Generator"},{"url":"#generating-springmvc-controller-from-openapi-skeletons","title":"Generating SpringMVC Controller from OpenAPI (skeletons)"}]}]}}},"pageContext":{"id":"cec6772e-9c5d-5c7c-b58c-cb4032d5c107","frontmatter":{"section":"ZenWave SDK","title":"Exposing a REST API","slug":"/docs/zenwave-sdk/exposing-a-rest-api","order":7},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/Exposing-REST-API.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-exposing-rest-api-mdx","path":"/docs/zenwave-sdk/exposing-a-rest-api/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Exposing a REST API"},"tableOfContents":{"items":[{"url":"#exposing-a-rest-api-for-your-service","title":"Exposing a REST API for your Service","items":[{"url":"#using-zenwave-zdl-as-definition-language-for-openapi","title":"Using ZenWave ZDL as Definition Language for OpenAPI","items":[{"url":"#pagination-flavors","title":"Pagination Flavor(s)"}]},{"url":"#generating-springmvc-controller-interfaces-with-official-openapi-generator","title":"Generating SpringMVC Controller Interfaces with official OpenAPI Generator"},{"url":"#generating-springmvc-controller-from-openapi-skeletons","title":"Generating SpringMVC Controller from OpenAPI (skeletons)"}]}]}}},"pageContext":{"id":"cec6772e-9c5d-5c7c-b58c-cb4032d5c107","frontmatter":{"section":"ZenWave SDK","title":"Exposing a REST API","slug":"/docs/zenwave-sdk/exposing-a-rest-api/","order":7},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/Exposing-REST-API.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/jpa/page-data.json b/page-data/docs/zenwave-sdk/jpa/page-data.json index 0eb11a4..da220b3 100644 --- a/page-data/docs/zenwave-sdk/jpa/page-data.json +++ b/page-data/docs/zenwave-sdk/jpa/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-jpa-mdx","path":"/docs/zenwave-sdk/jpa","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"With JPA"},"tableOfContents":{"items":[{"url":"#backend-application-with-jpa","title":"Backend Application with JPA","items":[{"url":"#mapping-relationships","title":"Mapping Relationships","items":[{"url":"#onetomany","title":"OneToMany"},{"url":"#onetoone","title":"OneToOne"},{"url":"#onetoone-between-aggregates","title":"OneToOne between Aggregates"},{"url":"#mapsid-with-onetoone","title":"@MapsId with OneToOne"},{"url":"#manytoone","title":"ManyToOne"},{"url":"#manytomany","title":"ManyToMany"}]},{"url":"#relationships-between-aggregates","title":"Relationships Between Aggregates"}]}]}}},"pageContext":{"id":"dec848ef-9328-5b0e-a3c0-ed1f3a6cd6d2","frontmatter":{"section":"ZenWave SDK","title":"With JPA","slug":"/docs/zenwave-sdk/jpa","order":3},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/JPA.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-jpa-mdx","path":"/docs/zenwave-sdk/jpa/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"With JPA"},"tableOfContents":{"items":[{"url":"#backend-application-with-jpa","title":"Backend Application with JPA","items":[{"url":"#mapping-relationships","title":"Mapping Relationships","items":[{"url":"#onetomany","title":"OneToMany"},{"url":"#onetoone","title":"OneToOne"},{"url":"#onetoone-between-aggregates","title":"OneToOne between Aggregates"},{"url":"#mapsid-with-onetoone","title":"@MapsId with OneToOne"},{"url":"#manytoone","title":"ManyToOne"},{"url":"#manytomany","title":"ManyToMany"}]},{"url":"#relationships-between-aggregates","title":"Relationships Between Aggregates"}]}]}}},"pageContext":{"id":"dec848ef-9328-5b0e-a3c0-ed1f3a6cd6d2","frontmatter":{"section":"ZenWave SDK","title":"With JPA","slug":"/docs/zenwave-sdk/jpa/","order":3},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/JPA.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/modeling-aggregates/page-data.json b/page-data/docs/zenwave-sdk/modeling-aggregates/page-data.json index 29fe9cd..4a45a9f 100644 --- a/page-data/docs/zenwave-sdk/modeling-aggregates/page-data.json +++ b/page-data/docs/zenwave-sdk/modeling-aggregates/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-aggregates-mdx","path":"/docs/zenwave-sdk/modeling-aggregates","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Modeling Aggregates"},"tableOfContents":{"items":[{"url":"#modeling-aggregates","title":"Modeling Aggregates","items":[{"url":"#lightweight-aggregates","title":"Lightweight Aggregates"},{"url":"#rich-domain-aggregates","title":"Rich Domain Aggregates","items":[{"url":"#modeling-rich-domain-aggregates-with-zenwave-zdl","title":"Modeling Rich Domain Aggregates with ZenWave ZDL"},{"url":"#rich-domain-aggregates-in-java","title":"Rich Domain Aggregates in Java"}]},{"url":"#event-sourced-aggregates","title":"Event Sourced Aggregates"}]}]}}},"pageContext":{"id":"7db447d1-3df2-5d2b-a562-ffb823071f04","frontmatter":{"section":"ZenWave SDK","title":"Modeling Aggregates","slug":"/docs/zenwave-sdk/modeling-aggregates","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/Aggregates.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-aggregates-mdx","path":"/docs/zenwave-sdk/modeling-aggregates/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Modeling Aggregates"},"tableOfContents":{"items":[{"url":"#modeling-aggregates","title":"Modeling Aggregates","items":[{"url":"#lightweight-aggregates","title":"Lightweight Aggregates"},{"url":"#rich-domain-aggregates","title":"Rich Domain Aggregates","items":[{"url":"#modeling-rich-domain-aggregates-with-zenwave-zdl","title":"Modeling Rich Domain Aggregates with ZenWave ZDL"},{"url":"#rich-domain-aggregates-in-java","title":"Rich Domain Aggregates in Java"}]},{"url":"#event-sourced-aggregates","title":"Event Sourced Aggregates"}]}]}}},"pageContext":{"id":"7db447d1-3df2-5d2b-a562-ffb823071f04","frontmatter":{"section":"ZenWave SDK","title":"Modeling Aggregates","slug":"/docs/zenwave-sdk/modeling-aggregates/","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/Aggregates.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/mongodb/page-data.json b/page-data/docs/zenwave-sdk/mongodb/page-data.json index cb21058..72d4ea2 100644 --- a/page-data/docs/zenwave-sdk/mongodb/page-data.json +++ b/page-data/docs/zenwave-sdk/mongodb/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-mongodb-mdx","path":"/docs/zenwave-sdk/mongodb","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"With Mongodb"},"tableOfContents":{"items":[{"url":"#backend-application-with-mongodb","title":"Backend Application with MongoDB","items":[{"url":"#onetomany-and-onetoone-with-direct-references","title":"OneToMany and OneToOne with Direct References"},{"url":"#onetomany-and-onetoone-with-nested-objects","title":"OneToMany and OneToOne with Nested Objects"},{"url":"#onetomany-and-onetoone-with-dbref-and-documentedreference","title":"OneToMany and OneToOne with @DBRef and @DocumentedReference"}]}]}}},"pageContext":{"id":"957e02d0-7d11-5a2e-bbe4-c761b16efb91","frontmatter":{"section":"ZenWave SDK","title":"With Mongodb","slug":"/docs/zenwave-sdk/mongodb","order":4},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/Mongodb.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-mongodb-mdx","path":"/docs/zenwave-sdk/mongodb/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"With Mongodb"},"tableOfContents":{"items":[{"url":"#backend-application-with-mongodb","title":"Backend Application with MongoDB","items":[{"url":"#onetomany-and-onetoone-with-direct-references","title":"OneToMany and OneToOne with Direct References"},{"url":"#onetomany-and-onetoone-with-nested-objects","title":"OneToMany and OneToOne with Nested Objects"},{"url":"#onetomany-and-onetoone-with-dbref-and-documentedreference","title":"OneToMany and OneToOne with @DBRef and @DocumentedReference"}]}]}}},"pageContext":{"id":"957e02d0-7d11-5a2e-bbe4-c761b16efb91","frontmatter":{"section":"ZenWave SDK","title":"With Mongodb","slug":"/docs/zenwave-sdk/mongodb/","order":4},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/Mongodb.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/page-data.json b/page-data/docs/zenwave-sdk/page-data.json index df7fa12..7306e60 100644 --- a/page-data/docs/zenwave-sdk/page-data.json +++ b/page-data/docs/zenwave-sdk/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx","path":"/docs/zenwave-sdk","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"ZenWave SDK"},"tableOfContents":{"items":[{"url":"#zenwave-sdk","title":"ZenWave SDK","items":[{"url":"#zenwave-sdk-installation","title":"ZenWave SDK Installation","items":[{"url":"#command-line-interface-cli","title":"Command Line Interface (CLI)"},{"url":"#maven-plugin","title":"Maven Plugin"}]},{"url":"#zenwave-sdk-workflow","title":"ZenWave SDK Workflow"},{"url":"#generated-code-structure","title":"Generated Code Structure"}]}]}}},"pageContext":{"id":"dd1d61da-ea46-5aa9-ab5d-723e8fa434dc","frontmatter":{"section":"ZenWave SDK","title":"ZenWave SDK","slug":"/docs/zenwave-sdk","order":0},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ZenWaveSDK.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-zen-wave-sdk-mdx","path":"/docs/zenwave-sdk/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"ZenWave SDK"},"tableOfContents":{"items":[{"url":"#zenwave-sdk","title":"ZenWave SDK","items":[{"url":"#zenwave-sdk-installation","title":"ZenWave SDK Installation","items":[{"url":"#command-line-interface-cli","title":"Command Line Interface (CLI)"},{"url":"#maven-plugin","title":"Maven Plugin"}]},{"url":"#zenwave-sdk-workflow","title":"ZenWave SDK Workflow"},{"url":"#generated-code-structure","title":"Generated Code Structure"}]}]}}},"pageContext":{"id":"dd1d61da-ea46-5aa9-ab5d-723e8fa434dc","frontmatter":{"section":"ZenWave SDK","title":"ZenWave SDK","slug":"/docs/zenwave-sdk/","order":0},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ZenWaveSDK.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave-sdk/producing-domain-events/page-data.json b/page-data/docs/zenwave-sdk/producing-domain-events/page-data.json index a03a748..e1dd6ec 100644 --- a/page-data/docs/zenwave-sdk/producing-domain-events/page-data.json +++ b/page-data/docs/zenwave-sdk/producing-domain-events/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx","path":"/docs/zenwave-sdk/producing-domain-events","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Producing Domain Events"},"tableOfContents":{"items":[{"url":"#producing-domain-events","title":"Producing Domain Events","items":[{"url":"#using-zenwave-zdl-as-definition-language-for-asyncapi","title":"Using ZenWave ZDL as Definition Language for AsyncAPI"},{"url":"#api-first-code-generator-from-asyncapi","title":"API-First Code Generator from AsyncAPI"},{"url":"#producing-domain-events-with-generated-code","title":"Producing Domain Events with Generated Code"},{"url":"#inmemory-event-producer-captor-for-your-tests","title":"InMemory Event Producer (Captor) for your Tests"},{"url":"#letting-zenwave-sdk-include-event-producers-in-your-services","title":"Letting ZenWave SDK Include Event Producers in Your Services"}]}]}}},"pageContext":{"id":"97d11a00-a930-5e96-853c-6c5c93eb46fa","frontmatter":{"section":"ZenWave SDK","title":"Producing Domain Events","slug":"/docs/zenwave-sdk/producing-domain-events","order":5},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ProducingEvents.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-sdk-producing-events-mdx","path":"/docs/zenwave-sdk/producing-domain-events/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"Producing Domain Events"},"tableOfContents":{"items":[{"url":"#producing-domain-events","title":"Producing Domain Events","items":[{"url":"#using-zenwave-zdl-as-definition-language-for-asyncapi","title":"Using ZenWave ZDL as Definition Language for AsyncAPI"},{"url":"#api-first-code-generator-from-asyncapi","title":"API-First Code Generator from AsyncAPI"},{"url":"#producing-domain-events-with-generated-code","title":"Producing Domain Events with Generated Code"},{"url":"#inmemory-event-producer-captor-for-your-tests","title":"InMemory Event Producer (Captor) for your Tests"},{"url":"#letting-zenwave-sdk-include-event-producers-in-your-services","title":"Letting ZenWave SDK Include Event Producers in Your Services"}]}]}}},"pageContext":{"id":"97d11a00-a930-5e96-853c-6c5c93eb46fa","frontmatter":{"section":"ZenWave SDK","title":"Producing Domain Events","slug":"/docs/zenwave-sdk/producing-domain-events/","order":5},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/SDK/ProducingEvents.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/docs/zenwave360/page-data.json b/page-data/docs/zenwave360/page-data.json index 0f640fa..eb9e9e8 100644 --- a/page-data/docs/zenwave360/page-data.json +++ b/page-data/docs/zenwave360/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-zen-wave-360-zen-wave-360-mdx","path":"/docs/zenwave360","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"ZenWave 360º"},"tableOfContents":{"items":[{"url":"#zenwave-360º","title":"ZenWave 360º","items":[{"url":"#domain-driven-design-and-api-first-for-event-driven-microservices","title":"Domain Driven Design and API-First for Event Driven Microservices"},{"url":"#zdl-domain-model-language-as-ubiquitous-language-format","title":"ZDL Domain Model Language as 'Ubiquitous Language' format"},{"url":"#zenwave-sdk-accelerates-your-development-cycle","title":"ZenWave SDK Accelerates your Development Cycle"},{"url":"#zenwave-360º-landscape","title":"ZenWave 360º Landscape"}]}]}}},"pageContext":{"id":"5090c19e-13f8-5290-a976-bb46c67c4e4d","frontmatter":{"title":"ZenWave 360º","slug":"/docs/zenwave360","order":0},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/ZenWave360/ZenWave360.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-doc-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-docs-zen-wave-360-zen-wave-360-mdx","path":"/docs/zenwave360/","result":{"data":{"mdx":{"fields":{"pageType":"doc","title":"ZenWave 360º"},"tableOfContents":{"items":[{"url":"#zenwave-360º","title":"ZenWave 360º","items":[{"url":"#domain-driven-design-and-api-first-for-event-driven-microservices","title":"Domain Driven Design and API-First for Event Driven Microservices"},{"url":"#zdl-domain-model-language-as-ubiquitous-language-format","title":"ZDL Domain Model Language as 'Ubiquitous Language' format"},{"url":"#zenwave-sdk-accelerates-your-development-cycle","title":"ZenWave SDK Accelerates your Development Cycle"},{"url":"#zenwave-360º-landscape","title":"ZenWave 360º Landscape"}]}]}}},"pageContext":{"id":"5090c19e-13f8-5290-a976-bb46c67c4e4d","frontmatter":{"title":"ZenWave 360º","slug":"/docs/zenwave360/","order":0},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/docs/ZenWave360/ZenWave360.mdx"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/page/API-First-with-AsyncAPI/page-data.json b/page-data/page/API-First-with-AsyncAPI/page-data.json index 0d0ed1b..6603e79 100644 --- a/page-data/page/API-First-with-AsyncAPI/page-data.json +++ b/page-data/page/API-First-with-AsyncAPI/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-api-first-async-api-md","path":"/page/API-First-with-AsyncAPI","result":{"data":{"mdx":{"fields":{"pageType":"page","title":"POST API-First with AsyncAPI"}}},"pageContext":{"id":"4147e2cc-1e33-512a-8c4d-d01147941909","frontmatter":{"title":"POST API-First with AsyncAPI","slug":"/page/API-First-with-AsyncAPI","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/API-First-AsyncAPI.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-api-first-async-api-md","path":"/page/API-First-with-AsyncAPI/","result":{"data":{"mdx":{"fields":{"pageType":"page","title":"POST API-First with AsyncAPI"}}},"pageContext":{"id":"4147e2cc-1e33-512a-8c4d-d01147941909","frontmatter":{"title":"POST API-First with AsyncAPI","slug":"/page/API-First-with-AsyncAPI/","order":2},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/API-First-AsyncAPI.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/plugin-eula/page-data.json b/page-data/plugin-eula/page-data.json index 6e21681..9693b9e 100644 --- a/page-data/plugin-eula/page-data.json +++ b/page-data/plugin-eula/page-data.json @@ -1 +1 @@ -{"componentChunkName":"component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-plugin-eula-md","path":"/plugin-eula","result":{"data":{"mdx":{"fields":{"pageType":"page","title":"ZenWave Editor EULA"}}},"pageContext":{"id":"816c3247-39f1-53d3-8f38-1c3fcc0d81dc","frontmatter":{"title":"ZenWave Editor EULA","slug":"/plugin-eula"},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/plugin-eula.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file +{"componentChunkName":"component---smooth-doc-src-templates-page-js-content-file-path-c-users-ivangsa-workspace-zenwave-zen-wave-360-github-io-website-pages-plugin-eula-md","path":"/plugin-eula/","result":{"data":{"mdx":{"fields":{"pageType":"page","title":"ZenWave Editor EULA"}}},"pageContext":{"id":"816c3247-39f1-53d3-8f38-1c3fcc0d81dc","frontmatter":{"title":"ZenWave Editor EULA","slug":"/plugin-eula/"},"contentFilePath":"C:/Users/ivangsa/workspace/zenwave/ZenWave360.github.io/website/pages/plugin-eula.md"}},"staticQueryHashes":["1122327541","1339625561","148928582","1650910112","2140385554","4275725850"]} \ No newline at end of file diff --git a/page-data/sq/d/1339625561.json b/page-data/sq/d/1339625561.json index 3f018f1..ca50483 100644 --- a/page-data/sq/d/1339625561.json +++ b/page-data/sq/d/1339625561.json @@ -1 +1 @@ -{"data":{"allMdx":{"edges":[{"node":{"id":"9f6ca77c-b315-552f-8dab-3b81acce0338","fields":{"title":null,"pageType":"doc","section":"","order":-9999,"slug":"/docs/"}}},{"node":{"id":"e3cca46d-0c35-5f45-8196-759f6e199957","fields":{"title":"KarateDSL","pageType":"doc","section":"ZenWave & API Testing","order":2,"slug":"/docs/zenwave-sdk/api-testing/karate"}}},{"node":{"id":"f6eaa6c0-e673-5f35-a03e-990fd192ec10","fields":{"title":"AsyncAPI","pageType":"doc","section":"ZenWave & API-First","order":2,"slug":"/API-First/AsyncAPI"}}},{"node":{"id":"f1014418-1665-5273-811a-b5acc62184b3","fields":{"title":"Spring WebTestClient","pageType":"doc","section":"ZenWave & API Testing","order":1,"slug":"/docs/zenwave-sdk/api-testing/spring-webtestclient"}}},{"node":{"id":"e311f46c-6c29-5eb3-abce-fbc28a529cf0","fields":{"title":"OpenAPI","pageType":"doc","section":"ZenWave & API-First","order":1,"slug":"/API-First/OpenAPI"}}},{"node":{"id":"5fef1d7b-d7b6-51c8-9866-9f18e6aa455a","fields":{"title":"ZDL Domain Language","pageType":"doc","section":"Domain Modeling","order":2,"slug":"/docs/event-driven-design/zenwave-domain-language"}}},{"node":{"id":"1147a6f5-4a53-5cee-a2f1-6e8602e9709d","fields":{"title":"Event Storming","pageType":"doc","section":"Domain Modeling","order":1,"slug":"/docs/event-driven-design/event-storming"}}},{"node":{"id":"08c94789-a8b1-5b3d-a7ba-c7752e441946","fields":{"title":"EDA Examples","pageType":"doc","section":"Examples","order":1,"slug":"/docs/examples/index"}}},{"node":{"id":"526696a4-5c3b-56d6-acd0-4770d47c3c52","fields":{"title":"Business Domain Modeling","pageType":"doc","section":"Domain Modeling","order":0,"slug":"/docs/domain-modeling/business-domain-modeling"}}},{"node":{"id":"7db447d1-3df2-5d2b-a562-ffb823071f04","fields":{"title":"Modeling Aggregates","pageType":"doc","section":"ZenWave SDK","order":2,"slug":"/docs/zenwave-sdk/modeling-aggregates"}}},{"node":{"id":"d4ac8b32-bf45-54fa-9f9a-6587522dfebf","fields":{"title":"Backend Application","pageType":"doc","section":"ZenWave SDK","order":1,"slug":"/docs/zenwave-sdk/backend-application"}}},{"node":{"id":"adcd090d-eadb-50f9-9551-f18c94d8597c","fields":{"title":"Consuming Async Commands","pageType":"doc","section":"ZenWave SDK","order":6,"slug":"/docs/zenwave-sdk/consuming-async-commands"}}},{"node":{"id":"cec6772e-9c5d-5c7c-b58c-cb4032d5c107","fields":{"title":"Exposing a REST API","pageType":"doc","section":"ZenWave SDK","order":7,"slug":"/docs/zenwave-sdk/exposing-a-rest-api"}}},{"node":{"id":"957e02d0-7d11-5a2e-bbe4-c761b16efb91","fields":{"title":"With Mongodb","pageType":"doc","section":"ZenWave SDK","order":4,"slug":"/docs/zenwave-sdk/mongodb"}}},{"node":{"id":"dec848ef-9328-5b0e-a3c0-ed1f3a6cd6d2","fields":{"title":"With JPA","pageType":"doc","section":"ZenWave SDK","order":3,"slug":"/docs/zenwave-sdk/jpa"}}},{"node":{"id":"97d11a00-a930-5e96-853c-6c5c93eb46fa","fields":{"title":"Producing Domain Events","pageType":"doc","section":"ZenWave SDK","order":5,"slug":"/docs/zenwave-sdk/producing-domain-events"}}},{"node":{"id":"dd1d61da-ea46-5aa9-ab5d-723e8fa434dc","fields":{"title":"ZenWave SDK","pageType":"doc","section":"ZenWave SDK","order":0,"slug":"/docs/zenwave-sdk"}}},{"node":{"id":"9f1379d2-de8e-5090-9208-2fa502e56b6f","fields":{"title":"Getting Started","pageType":"doc","section":"","order":1,"slug":"/docs/getting-started/"}}},{"node":{"id":"5090c19e-13f8-5290-a976-bb46c67c4e4d","fields":{"title":"ZenWave 360º","pageType":"doc","section":"","order":0,"slug":"/docs/zenwave360"}}}]},"site":{"siteMetadata":{"sections":["ZenWave 360º","Domain Modeling","ZenWave SDK","ZenWave & API-First","ZenWave & API Testing","Examples"]}}}} \ No newline at end of file +{"data":{"allMdx":{"edges":[{"node":{"id":"9f6ca77c-b315-552f-8dab-3b81acce0338","fields":{"title":null,"pageType":"doc","section":"","order":-9999,"slug":"/docs/"}}},{"node":{"id":"e3cca46d-0c35-5f45-8196-759f6e199957","fields":{"title":"KarateDSL","pageType":"doc","section":"ZenWave & API Testing","order":2,"slug":"/docs/zenwave-sdk/api-testing/karate/"}}},{"node":{"id":"f1014418-1665-5273-811a-b5acc62184b3","fields":{"title":"Spring WebTestClient","pageType":"doc","section":"ZenWave & API Testing","order":1,"slug":"/docs/zenwave-sdk/api-testing/spring-webtestclient/"}}},{"node":{"id":"1147a6f5-4a53-5cee-a2f1-6e8602e9709d","fields":{"title":"Event Storming","pageType":"doc","section":"Domain Modeling","order":1,"slug":"/docs/event-driven-design/event-storming/"}}},{"node":{"id":"526696a4-5c3b-56d6-acd0-4770d47c3c52","fields":{"title":"Business Domain Modeling","pageType":"doc","section":"Domain Modeling","order":0,"slug":"/docs/domain-modeling/business-domain-modeling/"}}},{"node":{"id":"5fef1d7b-d7b6-51c8-9866-9f18e6aa455a","fields":{"title":"ZDL Domain Language","pageType":"doc","section":"Domain Modeling","order":2,"slug":"/docs/event-driven-design/zenwave-domain-language/"}}},{"node":{"id":"f6eaa6c0-e673-5f35-a03e-990fd192ec10","fields":{"title":"AsyncAPI","pageType":"doc","section":"ZenWave & API-First","order":2,"slug":"/API-First/AsyncAPI/"}}},{"node":{"id":"08c94789-a8b1-5b3d-a7ba-c7752e441946","fields":{"title":"EDA Examples","pageType":"doc","section":"Examples","order":1,"slug":"/docs/examples/index/"}}},{"node":{"id":"e311f46c-6c29-5eb3-abce-fbc28a529cf0","fields":{"title":"OpenAPI","pageType":"doc","section":"ZenWave & API-First","order":1,"slug":"/API-First/OpenAPI/"}}},{"node":{"id":"d4ac8b32-bf45-54fa-9f9a-6587522dfebf","fields":{"title":"Backend Application","pageType":"doc","section":"ZenWave SDK","order":1,"slug":"/docs/zenwave-sdk/backend-application/"}}},{"node":{"id":"7db447d1-3df2-5d2b-a562-ffb823071f04","fields":{"title":"Modeling Aggregates","pageType":"doc","section":"ZenWave SDK","order":2,"slug":"/docs/zenwave-sdk/modeling-aggregates/"}}},{"node":{"id":"adcd090d-eadb-50f9-9551-f18c94d8597c","fields":{"title":"Consuming Async Commands","pageType":"doc","section":"ZenWave SDK","order":6,"slug":"/docs/zenwave-sdk/consuming-async-commands/"}}},{"node":{"id":"cec6772e-9c5d-5c7c-b58c-cb4032d5c107","fields":{"title":"Exposing a REST API","pageType":"doc","section":"ZenWave SDK","order":7,"slug":"/docs/zenwave-sdk/exposing-a-rest-api/"}}},{"node":{"id":"97d11a00-a930-5e96-853c-6c5c93eb46fa","fields":{"title":"Producing Domain Events","pageType":"doc","section":"ZenWave SDK","order":5,"slug":"/docs/zenwave-sdk/producing-domain-events/"}}},{"node":{"id":"dec848ef-9328-5b0e-a3c0-ed1f3a6cd6d2","fields":{"title":"With JPA","pageType":"doc","section":"ZenWave SDK","order":3,"slug":"/docs/zenwave-sdk/jpa/"}}},{"node":{"id":"dd1d61da-ea46-5aa9-ab5d-723e8fa434dc","fields":{"title":"ZenWave SDK","pageType":"doc","section":"ZenWave SDK","order":0,"slug":"/docs/zenwave-sdk/"}}},{"node":{"id":"957e02d0-7d11-5a2e-bbe4-c761b16efb91","fields":{"title":"With Mongodb","pageType":"doc","section":"ZenWave SDK","order":4,"slug":"/docs/zenwave-sdk/mongodb/"}}},{"node":{"id":"5090c19e-13f8-5290-a976-bb46c67c4e4d","fields":{"title":"ZenWave 360º","pageType":"doc","section":"","order":0,"slug":"/docs/zenwave360/"}}},{"node":{"id":"9f1379d2-de8e-5090-9208-2fa502e56b6f","fields":{"title":"Getting Started","pageType":"doc","section":"","order":1,"slug":"/docs/getting-started/"}}}]},"site":{"siteMetadata":{"sections":["ZenWave 360º","Domain Modeling","ZenWave SDK","ZenWave & API-First","ZenWave & API Testing","Examples"]}}}} \ No newline at end of file diff --git a/page-data/sq/d/148928582.json b/page-data/sq/d/148928582.json index b21dc8c..af4c76e 100644 --- a/page-data/sq/d/148928582.json +++ b/page-data/sq/d/148928582.json @@ -1 +1 @@ -{"data":{"logos":{"nodes":[{"name":"logo-nav-dark","publicURL":"/static/5d43df50011eb5994cdb5be3097031cf/logo-nav-dark.svg"},{"name":"logo-nav","publicURL":"/static/5d43df50011eb5994cdb5be3097031cf/logo-nav.svg"},{"name":"logo-nav-light","publicURL":"/static/5d43df50011eb5994cdb5be3097031cf/logo-nav-light.svg"},{"name":"logo-nav-light","publicURL":"/static/f8a3fbb23167f1326b2874fc98889e5a/logo-nav-light.svg"},{"name":"logo-nav-dark","publicURL":"/static/0aed5fb42fa790d38e8f1939457c7c33/logo-nav-dark.svg"}]},"site":{"siteMetadata":{"title":"ZenWave 360º","docSearch":null,"navItems":[{"title":"Documentation","url":"/docs/zenwave360"},{"title":"SDK","url":"/zenwave-sdk/"},{"title":"Plugin","url":"/plugin/"},{"title":"Blog","url":"/blog/"}]}}}} \ No newline at end of file +{"data":{"logos":{"nodes":[{"name":"logo-nav-dark","publicURL":"/static/5d43df50011eb5994cdb5be3097031cf/logo-nav-dark.svg"},{"name":"logo-nav-light","publicURL":"/static/5d43df50011eb5994cdb5be3097031cf/logo-nav-light.svg"},{"name":"logo-nav","publicURL":"/static/5d43df50011eb5994cdb5be3097031cf/logo-nav.svg"},{"name":"logo-nav-light","publicURL":"/static/f8a3fbb23167f1326b2874fc98889e5a/logo-nav-light.svg"},{"name":"logo-nav-dark","publicURL":"/static/0aed5fb42fa790d38e8f1939457c7c33/logo-nav-dark.svg"}]},"site":{"siteMetadata":{"title":"ZenWave 360º","docSearch":null,"navItems":[{"title":"Documentation","url":"/docs/zenwave360/"},{"title":"SDK","url":"/zenwave-sdk/"},{"title":"Plugin","url":"/plugin/"},{"title":"Blog","url":"/blog/"}]}}}} \ No newline at end of file diff --git a/page-data/sq/d/1650910112.json b/page-data/sq/d/1650910112.json index 233ac1d..c3c5d5d 100644 --- a/page-data/sq/d/1650910112.json +++ b/page-data/sq/d/1650910112.json @@ -1 +1 @@ -{"data":{"site":{"siteMetadata":{"twitterAccount":null,"githubRepositoryURL":"https://github.com/zenwave360","discordInvite":"https://discord.gg/TWyXEeV2Ae","navItems":[{"title":"Documentation","url":"/docs/zenwave360"},{"title":"SDK","url":"/zenwave-sdk/"},{"title":"Plugin","url":"/plugin/"},{"title":"Blog","url":"/blog/"}]}}}} \ No newline at end of file +{"data":{"site":{"siteMetadata":{"twitterAccount":null,"githubRepositoryURL":"https://github.com/zenwave360","discordInvite":"https://discord.gg/TWyXEeV2Ae","navItems":[{"title":"Documentation","url":"/docs/zenwave360/"},{"title":"SDK","url":"/zenwave-sdk/"},{"title":"Plugin","url":"/plugin/"},{"title":"Blog","url":"/blog/"}]}}}} \ No newline at end of file diff --git a/page/API-First-with-AsyncAPI/index.html b/page/API-First-with-AsyncAPI/index.html index 42102bb..60577ba 100644 --- a/page/API-First-with-AsyncAPI/index.html +++ b/page/API-First-with-AsyncAPI/index.html @@ -206,10 +206,10 @@ } } }) - POST API-First with AsyncAPI - ZenWave 360ºPOST API-First with AsyncAPI - ZenWave 360º

API-First with AsyncAPI PAGE

+ } catch (e) {} })();

API-First with AsyncAPI PAGE