@oila/0account 3.5.2 → 3.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/qr-code_2.cjs.entry.js +7 -12
- package/dist/cjs/qr-code_2.cjs.entry.js.map +1 -1
- package/dist/cjs/zero-account.cjs.js +1 -1
- package/dist/collection/components/zero-account/websocket.js +3 -3
- package/dist/collection/components/zero-account/websocket.js.map +1 -1
- package/dist/collection/components/zero-account/zero-account.js +4 -62
- package/dist/collection/components/zero-account/zero-account.js.map +1 -1
- package/dist/components/zero-account.js +7 -15
- package/dist/components/zero-account.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/qr-code_2.entry.js +7 -12
- package/dist/esm/qr-code_2.entry.js.map +1 -1
- package/dist/esm/zero-account.js +1 -1
- package/dist/types/components/zero-account/zero-account.d.ts +0 -3
- package/dist/types/components.d.ts +0 -6
- package/dist/zero-account/{p-1c2b839d.entry.js → p-f8e874af.entry.js} +2 -2
- package/dist/zero-account/p-f8e874af.entry.js.map +1 -0
- package/dist/zero-account/zero-account.esm.js +1 -1
- package/dist/zero-account/zero-account.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/zero-account/p-1c2b839d.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"qr-code.zero-account.entry.cjs.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,IAAI,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE;AACjE;AACA;AACA;AACA;AACA,EAAE,IAAI,OAAO,GAAG,WAAW,IAAI,OAAO,GAAG,WAAW;AACpD,GAAG,MAAM,4BAA4B,CAAC;AACtC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;AAC3B,GAAG,MAAM,yBAAyB,CAAC;AACnC,EAAE,IAAI,EAAE,SAAS,YAAY,GAAG,CAAC;AACjC,GAAG,MAAM,qBAAqB,CAAC;AAC/B,EAAE,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;AAC9B;AACA;AACA,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;AAC/B,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,EAAE,IAAI,OAAO,MAAM,EAAE,CAAC;AACtB,EAAE,IAAI,UAAU,GAAG,EAAE,CAAC;AACtB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACjC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AAChC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AAChC,GAAG;AACH;AACA;AACA,EAAE,oBAAoB,EAAE,CAAC;AACzB,EAAE,IAAI,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACxD,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;AAC9B;AACA;AACA,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE;AAClB,GAAG,IAAI,UAAU,GAAG,QAAQ,CAAC;AAC7B,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;AACpC,IAAI,IAAI,OAAO,GAAG,UAAU,EAAE;AAC9B,KAAK,IAAI,GAAG,CAAC,CAAC;AACd,KAAK,UAAU,GAAG,OAAO,CAAC;AAC1B,KAAK;AACL,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AAC1B,GAAG,MAAM,iBAAiB,CAAC;AAC3B,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;AACvB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB;AACA,EAAE,UAAU,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1D;AACA;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACzE;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;AAClC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACvC,MAAM,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5G,IAAG;AACH;AACA,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE;AACnC,GAAG,IAAI,KAAK,GAAG,EAAE,CAAC;AAClB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,KAAK,EAAE;AACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAC;AACpD,OAAO,MAAM;AACb,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;AAClD,OAAO;AACP,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG,OAAO;AACV,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACzB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI;AACJ,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,oBAAoB,GAAG;AAClC;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,IAAI;AACJ;AACA;AACA,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,GAAG,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAClC;AACA;AACA,GAAG,IAAI,WAAW,GAAG,4BAA4B,EAAE,CAAC;AACpD,GAAG,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;AACrC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACvC;AACA,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1F,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI;AACJ;AACA;AACA,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,WAAW,EAAE,CAAC;AACjB,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,cAAc,CAAC,IAAI,EAAE;AAChC;AACA,GAAG,IAAI,IAAI,GAAG,SAAS,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC;AAC/C,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC;AAClB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;AAC7C,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC;AAC1C,GAAG,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC;AACvB,IAAI,MAAM,iBAAiB,CAAC;AAC5B;AACA;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9B,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,iBAAiB,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD;AACA;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,WAAW,GAAG;AACzB,GAAG,IAAI,OAAO,GAAG,CAAC;AAClB,IAAI,OAAO;AACX;AACA;AACA,GAAG,IAAI,GAAG,GAAG,OAAO,CAAC;AACrB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC;AAC/C,GAAG,IAAI,IAAI,GAAG,OAAO,IAAI,EAAE,GAAG,GAAG,CAAC;AAClC,GAAG,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC;AACvB,IAAI,MAAM,iBAAiB,CAAC;AAC5B;AACA;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAChC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACnC,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;AACpC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;AACrC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,KAAK,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AAClC,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI;AACrD,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AACxD,KAAK;AACL,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,GAAG,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;AACpC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;AACnC,KAAK,iBAAiB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;AAC5C,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AAC3B,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACrC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC;AACpE,IAAI,MAAM,kBAAkB,CAAC;AAC7B;AACA;AACA,GAAG,IAAI,SAAS,GAAG,MAAM,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAClF,GAAG,IAAI,WAAW,GAAG,MAAM,CAAC,uBAAuB,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAClF,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,GAAG,IAAI,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAC7D,GAAG,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAC5D;AACA;AACA,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC;AACnB,GAAG,IAAI,EAAE,GAAG,IAAI,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAClD,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC9C,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,WAAW,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5F,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC;AACpB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,GAAG,cAAc;AAC1B,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,IAAI;AACJ;AACA;AACA,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC;AACnB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C;AACA,KAAK,IAAI,CAAC,IAAI,aAAa,GAAG,WAAW,IAAI,CAAC,IAAI,cAAc;AAChE,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY;AACpC,IAAI,MAAM,iBAAiB,CAAC;AAC5B,GAAG,OAAO,MAAM,CAAC;AACjB,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE;AAC/B,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1E,IAAI,MAAM,kBAAkB,CAAC;AAC7B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACb;AACA,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AACtD,IAAI,IAAI,KAAK,IAAI,CAAC;AAClB,KAAK,KAAK,GAAG,CAAC,CAAC;AACf,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;AAC5C,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxB,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAM,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACpD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D,OAAO,CAAC,EAAE,CAAC;AACX,OAAO;AACP;AACA;AACA,MAAM;AACN,KAAK;AACL,IAAI;AACJ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAC3B,IAAI,MAAM,iBAAiB,CAAC;AAC5B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE;AAC3B,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AAC3B,IAAI,MAAM,yBAAyB,CAAC;AACpC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,KAAK,IAAI,MAAM,CAAC;AAChB,KAAK,QAAQ,IAAI;AACjB,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kCAAkC,MAAM;AACjF,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,wCAAwC,MAAM;AACjF,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,wCAAwC,MAAM;AACjF,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kCAAkC,MAAM;AACjF,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM;AACjF,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,wBAAwB,MAAM;AACjF,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,MAAM;AACjF,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,MAAM;AACjF,MAAM,UAAU,MAAM,iBAAiB,CAAC;AACxC,MAAM;AACN,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;AACpC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,KAAK;AACL,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,eAAe,GAAG;AAC7B,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC;AAClB;AACA;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACjD,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;AAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,GAAG,CAAC,CAAC;AACf,MAAM,MAAM;AACZ,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,IAAI,IAAI,CAAC;AACnB,OAAO,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AACnC,WAAW,IAAI,IAAI,GAAG,CAAC;AACvB,OAAO,MAAM,EAAE,CAAC;AAChB,MAAM;AACN,KAAK;AACL,IAAI;AACJ;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACjD,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;AAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,IAAI,GAAG,CAAC,CAAC;AACf,MAAM,MAAM;AACZ,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,IAAI,IAAI,IAAI,CAAC;AACnB,OAAO,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AACnC,WAAW,IAAI,IAAI,GAAG,CAAC;AACvB,OAAO,MAAM,EAAE,CAAC;AAChB,MAAM;AACN,KAAK;AACL,IAAI;AACJ;AACA;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACvC,KAAK,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,WAAW,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,WAAW,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AAClC,KAAK;AACL,IAAI;AACJ;AACA;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;AACpD,MAAM,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AAClC,KAAK;AACL,IAAI;AACJ;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;AACpD,MAAM,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AAClC,KAAK;AACL,IAAI;AACJ;AACA;AACA,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC;AACjB,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AACjC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,EAAE;AAChC,KAAK,IAAI,KAAK;AACd,MAAM,KAAK,EAAE,CAAC;AACd,KAAK,CAAC,CAAC;AACP,IAAI,CAAC,CAAC;AACN,GAAG,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3B;AACA,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACpE,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,GAAG,OAAO,MAAM,CAAC;AACjB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,4BAA4B,GAAG;AAC1C,GAAG,IAAI,OAAO,IAAI,CAAC;AACnB,IAAI,OAAO,EAAE,CAAC;AACd,QAAQ;AACR,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/C,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,IAAI,EAAE;AACnC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI;AAClE,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,OAAO,MAAM,CAAC;AAClB,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA,EAAE,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,GAAG;AACH,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC9C,EAAE,IAAI,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACpD,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxC,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAChD,EAAE,IAAI,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChD,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC1F,EAAE,IAAI,UAAU,IAAI,SAAS,EAAE,UAAU,GAAG,WAAW,CAAC;AACxD,EAAE,IAAI,UAAU,IAAI,SAAS,EAAE,UAAU,GAAG,WAAW,CAAC;AACxD,EAAE,IAAI,IAAI,IAAI,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AACnC,EAAE,IAAI,QAAQ,IAAI,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;AAC7C,EAAE,IAAI,EAAE,WAAW,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,WAAW,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;AACpH,GAAG,MAAM,eAAe,CAAC;AACzB;AACA;AACA,EAAE,IAAI,OAAO,EAAE,YAAY,CAAC;AAC5B,EAAE,KAAK,OAAO,GAAG,UAAU,IAAI,OAAO,EAAE,EAAE;AAC1C,GAAG,IAAI,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACvE,GAAG,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClE,GAAG,IAAI,YAAY,IAAI,gBAAgB;AACvC,IAAI,MAAM;AACV,GAAG,IAAI,OAAO,IAAI,UAAU;AAC5B,IAAI,MAAM,eAAe,CAAC;AAC1B,GAAG;AACH;AACA;AACA,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;AAC/E,GAAG,IAAI,QAAQ,IAAI,YAAY,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;AAClF,IAAI,GAAG,GAAG,MAAM,CAAC;AACjB,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;AAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AAC7B,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACvC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE;AACvC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB,IAAI,CAAC,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,YAAY;AAC/B,GAAG,MAAM,iBAAiB,CAAC;AAC3B;AACA;AACA,EAAE,IAAI,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACtE,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,gBAAgB;AAClC,GAAG,MAAM,iBAAiB,CAAC;AAC3B,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AACxB,GAAG,MAAM,iBAAiB,CAAC;AAC3B;AACA;AACA,EAAE,KAAK,IAAI,OAAO,GAAG,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,gBAAgB,EAAE,OAAO,IAAI,IAAI,GAAG,IAAI;AAC/E,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC7B;AACA;AACA,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC;AACzB,EAAE,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM;AAC7C,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAC9B,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,GAAG,CAAC,CAAC;AACL;AACA;AACA,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACrD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,CAAC,oBAAoB,GAAG,SAAS,GAAG,EAAE;AAC7C,EAAE,IAAI,GAAG,GAAG,WAAW,IAAI,GAAG,GAAG,WAAW;AAC5C,GAAG,MAAM,6BAA6B,CAAC;AACvC,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;AAC3C,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE;AAChB,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG,QAAQ,GAAG,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClD,GAAG,IAAI,GAAG,IAAI,CAAC;AACf,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,CAAC,MAAM,CAAC,mBAAmB,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACjD,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzD,GAAG,MAAM,CAAC,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;AACvD,GAAG,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC;AACtB,CAAC,IAAI,WAAW,GAAG,EAAE,CAAC;AACtB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACxE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACxE;AACA;AACA,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;AACxB,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;AACxB,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;AACxB,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;AACxB;AACA,CAAC,MAAM,CAAC,uBAAuB,GAAG;AAClC;AACA;AACA,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACxK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACxK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACxK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACxK,EAAE,CAAC;AACH;AACA,CAAC,MAAM,CAAC,2BAA2B,GAAG;AACtC;AACA;AACA,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9J,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9J,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9J,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9J,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;AACnB,EAAE,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,EAAE,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,EAAE,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,EAAE,CAAC;AACH;AACA;AACA;AACA,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE;AACvB;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AACpD;AACA,EAAE,IAAI,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC;AAC7C,GAAG,MAAM,kBAAkB,CAAC;AAC5B;AACA;AACA,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AAC5B;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D;AACA;AACA,EAAE,IAAI,CAAC,OAAO,GAAG,WAAW;AAC5B,GAAG,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AAC1B,GAAG,CAAC;AACJ,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE;AAC3C,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;AAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC3B,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,MAAM,EAAE;AAC/C,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,GAAG,MAAM,wCAAwC,CAAC;AAClD,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;AAC3B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI;AACvC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,GAAG,CAAC,IAAI,CAAC,CAAC;AACV,GAAG;AACH,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,IAAI,EAAE;AAClD,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,GAAG,MAAM,6DAA6D,CAAC;AACvE,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;AAC3B,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5C,GAAG,IAAI,IAAI,GAAG,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1E,GAAG,IAAI,IAAI,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;AACrB,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC3D,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,IAAI,EAAE;AAC9C;AACA,EAAE,IAAI,IAAI,IAAI,EAAE;AAChB,GAAG,OAAO,EAAE,CAAC;AACb,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC;AACA,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,SAAS,EAAE;AAC9C,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;AAC3B,EAAE,IAAI,SAAS,GAAG,CAAC;AACnB,GAAG,MAAM,mCAAmC,CAAC;AAC7C,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/B,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;AAClC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAChC,GAAG,MAAM,IAAI,SAAS,GAAG,OAAO,EAAE;AAClC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAChC,GAAG;AACH,GAAG,MAAM,mCAAmC,CAAC;AAC7C,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,IAAI,EAAE,OAAO,EAAE;AACvD,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnD,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC;AACpC,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;AAC/C,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AACpB;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,uBAAuB,CAAC;AAC7D;AACA;AACA;AACA,CAAC,SAAS,CAAC,oBAAoB,GAAG,+CAA+C,CAAC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG;AACvB,EAAE,OAAO,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,EAAE,IAAI,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,EAAE,CAAC;AACH;AACA;AACA;AACA,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AAC7B;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD;AACA;AACA;AACA,EAAE,IAAI,CAAC,gBAAgB,GAAG,SAAS,GAAG,EAAE;AACxC,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,GAAG,CAAC;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE;AAC/B,EAAE,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACvB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG;AAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,QAAQ;AACR,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAI,CAAC,IAAI,CAAC,CAAC;AACX,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACvC,EAAE,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,GAAG;AAChC,GAAG,MAAM,qBAAqB,CAAC;AAC/B;AACA;AACA;AACA,EAAE,IAAI,YAAY,GAAG,EAAE,CAAC;AACxB;AACA;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;AACrC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB;AACA;AACA;AACA;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM;AACnC,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,IAAI;AACJ,GAAG,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpD,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,YAAY,GAAG,SAAS,IAAI,EAAE;AACrC;AACA,GAAG,IAAI,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC5B,IAAI,IAAI,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;AAC1C,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACzE,IAAI,CAAC,CAAC;AACN,GAAG,OAAO,MAAM,CAAC;AACjB,GAAG,CAAC;AACJ,EAAE;AACF;AACA;AACA;AACA,CAAC,oBAAoB,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;AAChD,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,GAAG,MAAM,mBAAmB,CAAC;AAC7B;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/B,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;AACtC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClB,GAAG,MAAM,iBAAiB,CAAC;AAC3B,EAAE,OAAO,CAAC,CAAC;AACX,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,SAAS,GAAG;AACtB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB;AACA;AACA;AACA,EAAE,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACvC,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAC9C,IAAI,MAAM,oBAAoB,CAAC;AAC/B,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ,EAAE;AACF;AACA,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC;AAC7C;AACA,CAAC;;AC5+BD,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,+BAAO,CAAA;IACP,+BAAO,CAAA;IACP,+BAAO,CAAA;IACP,+BAAO,CAAA;AACX,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,wCAAyB,CAAA;IACzB,kCAAmB,CAAA;AACvB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;AACjB,CAAC,EAHW,WAAW,KAAX,WAAW;;ACRvB,MAAM,GAAG,GAAGA,SAAE,CAAC,MAAM,CAAC;MAKT,MAAM;;;;qBAEsB,oBAAoB,CAAC,CAAC;qBACpC,EAAE;qBACF,OAAO;;IAEhC,MAAM;QACJ,MAAM,MAAM,GAAG,CAAC,GAAW;YACzB,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YACvC,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzC,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;SACrB,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAE9B,QACEC,iBAAK,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAClEA,kBAAM,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI,CACtC,EACN;KACH;;;;;;;;;;;;AC/BH,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAc,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAM,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI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","names":["qr","h","this","Build","DEFAULT_CALLBACK_URL","Host","UAParser","uuidv4","utilsURL.appendToParams"],"sources":["src/utils/qrcode/qrcode.js","src/components/zero-account/enums.ts","src/components/zero-account/qrcode.tsx","node_modules/ua-parser-js/dist/ua-parser.pack.js","node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/native.js","node_modules/uuid/dist/esm-browser/v4.js","src/utils/utils.ts","src/utils/url.js","src/components/zero-account/logo.tsx","src/utils/request.ts","src/components/zero-account/websocket.ts","src/components/zero-account/zero-account.css?tag=zero-account&encapsulation=shadow","src/components/zero-account/zero-account.tsx"],"sourcesContent":["/*\n * QR Code generator library (JavaScript)\n *\n * Copyright (c) Project Nayuki. (MIT License)\n * https://www.nayuki.io/page/qr-code-generator-library\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n * - The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * - The Software is provided \"as is\", without warranty of any kind, express or\n * implied, including but not limited to the warranties of merchantability,\n * fitness for a particular purpose and noninfringement. In no event shall the\n * authors or copyright holders be liable for any claim, damages or other\n * liability, whether in an action of contract, tort or otherwise, arising from,\n * out of or in connection with the Software or the use or other dealings in the\n * Software.\n */\n\n\"use strict\";\n\n\n/*\n * Module \"qrcodegen\", public members:\n * - Class QrCode:\n * - Function encodeText(str text, QrCode.Ecc ecl) -> QrCode\n * - Function encodeBinary(list<byte> data, QrCode.Ecc ecl) -> QrCode\n * - Function encodeSegments(list<QrSegment> segs, QrCode.Ecc ecl,\n * int minVersion=1, int maxVersion=40, mask=-1, boostEcl=true) -> QrCode\n * - Constants int MIN_VERSION, MAX_VERSION\n * - Constructor QrCode(int version, QrCode.Ecc ecl, list<byte> dataCodewords, int mask)\n * - Fields int version, size, mask\n * - Field QrCode.Ecc errorCorrectionLevel\n * - Method getModule(int x, int y) -> bool\n * - Method drawCanvas(int scale, int border, HTMLCanvasElement canvas) -> void\n * - Method toSvgString(int border) -> str\n * - Enum Ecc:\n * - Constants LOW, MEDIUM, QUARTILE, HIGH\n * - Field int ordinal\n * - Class QrSegment:\n * - Function makeBytes(list<byte> data) -> QrSegment\n * - Function makeNumeric(str data) -> QrSegment\n * - Function makeAlphanumeric(str data) -> QrSegment\n * - Function makeSegments(str text) -> list<QrSegment>\n * - Function makeEci(int assignVal) -> QrSegment\n * - Constructor QrSegment(QrSegment.Mode mode, int numChars, list<int> bitData)\n * - Field QrSegment.Mode mode\n * - Field int numChars\n * - Method getData() -> list<int>\n * - Constants RegExp NUMERIC_REGEX, ALPHANUMERIC_REGEX\n * - Enum Mode:\n * - Constants NUMERIC, ALPHANUMERIC, BYTE, KANJI, ECI\n */\nvar qrcodegen = new function() {\n\n\t/*---- QR Code symbol class ----*/\n\n\t/*\n\t * A class that represents a QR Code symbol, which is a type of two-dimension barcode.\n\t * Invented by Denso Wave and described in the ISO/IEC 18004 standard.\n\t * Instances of this class represent an immutable square grid of black and white cells.\n\t * The class provides static factory functions to create a QR Code from text or binary data.\n\t * The class covers the QR Code Model 2 specification, supporting all versions (sizes)\n\t * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.\n\t *\n\t * Ways to create a QR Code object:\n\t * - High level: Take the payload data and call QrCode.encodeText() or QrCode.encodeBinary().\n\t * - Mid level: Custom-make the list of segments and call QrCode.encodeSegments().\n\t * - Low level: Custom-make the array of data codeword bytes (including\n\t * segment headers and final padding, excluding error correction codewords),\n\t * supply the appropriate version number, and call the QrCode() constructor.\n\t * (Note that all ways require supplying the desired error correction level.)\n\t *\n\t * This constructor creates a new QR Code with the given version number,\n\t * error correction level, data codeword bytes, and mask number.\n\t * This is a low-level API that most users should not use directly.\n\t * A mid-level API is the encodeSegments() function.\n\t */\n\tthis.QrCode = function(version, errCorLvl, dataCodewords, mask) {\n\n\t\t/*---- Constructor (low level) ----*/\n\n\t\t// Check scalar arguments\n\t\tif (version < MIN_VERSION || version > MAX_VERSION)\n\t\t\tthrow \"Version value out of range\";\n\t\tif (mask < -1 || mask > 7)\n\t\t\tthrow \"Mask value out of range\";\n\t\tif (!(errCorLvl instanceof Ecc))\n\t\t\tthrow \"QrCode.Ecc expected\";\n\t\tvar size = version * 4 + 17;\n\n\t\t// Initialize both grids to be size*size arrays of Boolean false\n\t\tvar row = [];\n\t\tfor (var i = 0; i < size; i++)\n\t\t\trow.push(false);\n\t\tvar modules = []; // Initially all white\n\t\tvar isFunction = [];\n\t\tfor (var i = 0; i < size; i++) {\n\t\t\tmodules .push(row.slice());\n\t\t\tisFunction.push(row.slice());\n\t\t}\n\n\t\t// Compute ECC, draw modules\n\t\tdrawFunctionPatterns();\n\t\tvar allCodewords = addEccAndInterleave(dataCodewords);\n\t\tdrawCodewords(allCodewords);\n\n\t\t// Do masking\n\t\tif (mask == -1) { // Automatically choose best mask\n\t\t\tvar minPenalty = Infinity;\n\t\t\tfor (var i = 0; i < 8; i++) {\n\t\t\t\tdrawFormatBits(i);\n\t\t\t\tapplyMask(i);\n\t\t\t\tvar penalty = getPenaltyScore();\n\t\t\t\tif (penalty < minPenalty) {\n\t\t\t\t\tmask = i;\n\t\t\t\t\tminPenalty = penalty;\n\t\t\t\t}\n\t\t\t\tapplyMask(i); // Undoes the mask due to XOR\n\t\t\t}\n\t\t}\n\t\tif (mask < 0 || mask > 7)\n\t\t\tthrow \"Assertion error\";\n\t\tdrawFormatBits(mask); // Overwrite old format bits\n\t\tapplyMask(mask); // Apply the final choice of mask\n\n\t\tisFunction = null;\n\n\n\t\t/*---- Read-only instance properties ----*/\n\n\t\t// The version number of this QR Code, which is between 1 and 40 (inclusive).\n\t\t// This determines the size of this barcode.\n\t\tObject.defineProperty(this, \"version\", {value:version});\n\n\t\t// The width and height of this QR Code, measured in modules, between\n\t\t// 21 and 177 (inclusive). This is equal to version * 4 + 17.\n\t\tObject.defineProperty(this, \"size\", {value:size});\n\n\t\t// The error correction level used in this QR Code.\n\t\tObject.defineProperty(this, \"errorCorrectionLevel\", {value:errCorLvl});\n\n\t\t// The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive).\n\t\t// Even if a QR Code is created with automatic masking requested (mask = -1),\n\t\t// the resulting object still has a mask value between 0 and 7.\n\t\tObject.defineProperty(this, \"mask\", {value:mask});\n\n\n\t\t/*---- Accessor methods ----*/\n\n\t\t// Returns the color of the module (pixel) at the given coordinates, which is false\n\t\t// for white or true for black. The top left corner has the coordinates (x=0, y=0).\n\t\t// If the given coordinates are out of bounds, then false (white) is returned.\n\t\tthis.getModule = function(x, y) {\n\t\t\treturn 0 <= x && x < size && 0 <= y && y < size && modules[y][x];\n\t\t};\n\n\n\t\t/*---- Public instance methods ----*/\n\n\t\tthis.circlePath = function(cx, cy, r){\n\t\t return 'M '+cx+' '+cy+' m -'+r+', 0 a '+r+','+r+' 0 1,0 '+(r*2)+',0 a '+r+','+r+' 0 1,0 -'+(r*2)+',0';\n\t\t}\n\n\t\tthis.svgObject = function(round) {\n\t\t\tvar parts = [];\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\t\tif (this.getModule(x, y)){\n\t\t\t\t\t\tif (round) {\n\t\t\t\t\t\t\tparts.push(this.circlePath(x+0.5,y+0.5, 0.5))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tparts.push(\"M\" + x + \",\" + y + \"h1v1h-1z\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpath: parts.join(\" \"),\n\t\t\t\tsize: size\n\t\t\t}\n\t\t};\n\n\n\t\t/*---- Private helper methods for constructor: Drawing function modules ----*/\n\n\t\t// Reads this object's version field, and draws and marks all function modules.\n\t\tfunction drawFunctionPatterns() {\n\t\t\t// Draw horizontal and vertical timing patterns\n\t\t\tfor (var i = 0; i < size; i++) {\n\t\t\t\tsetFunctionModule(6, i, i % 2 == 0);\n\t\t\t\tsetFunctionModule(i, 6, i % 2 == 0);\n\t\t\t}\n\n\t\t\t// Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)\n\t\t\tdrawFinderPattern(3, 3);\n\t\t\tdrawFinderPattern(size - 4, 3);\n\t\t\tdrawFinderPattern(3, size - 4);\n\n\t\t\t// Draw numerous alignment patterns\n\t\t\tvar alignPatPos = getAlignmentPatternPositions();\n\t\t\tvar numAlign = alignPatPos.length;\n\t\t\tfor (var i = 0; i < numAlign; i++) {\n\t\t\t\tfor (var j = 0; j < numAlign; j++) {\n\t\t\t\t\t// Don't draw on the three finder corners\n\t\t\t\t\tif (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n\t\t\t\t\t\tdrawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Draw configuration data\n\t\t\tdrawFormatBits(0); // Dummy mask value; overwritten later in the constructor\n\t\t\tdrawVersion();\n\t\t}\n\n\n\t\t// Draws two copies of the format bits (with its own error correction code)\n\t\t// based on the given mask and this object's error correction level field.\n\t\tfunction drawFormatBits(mask) {\n\t\t\t// Calculate error correction code and pack bits\n\t\t\tvar data = errCorLvl.formatBits << 3 | mask; // errCorrLvl is uint2, mask is uint3\n\t\t\tvar rem = data;\n\t\t\tfor (var i = 0; i < 10; i++)\n\t\t\t\trem = (rem << 1) ^ ((rem >>> 9) * 0x537);\n\t\t\tvar bits = (data << 10 | rem) ^ 0x5412; // uint15\n\t\t\tif (bits >>> 15 != 0)\n\t\t\t\tthrow \"Assertion error\";\n\n\t\t\t// Draw first copy\n\t\t\tfor (var i = 0; i <= 5; i++)\n\t\t\t\tsetFunctionModule(8, i, getBit(bits, i));\n\t\t\tsetFunctionModule(8, 7, getBit(bits, 6));\n\t\t\tsetFunctionModule(8, 8, getBit(bits, 7));\n\t\t\tsetFunctionModule(7, 8, getBit(bits, 8));\n\t\t\tfor (var i = 9; i < 15; i++)\n\t\t\t\tsetFunctionModule(14 - i, 8, getBit(bits, i));\n\n\t\t\t// Draw second copy\n\t\t\tfor (var i = 0; i < 8; i++)\n\t\t\t\tsetFunctionModule(size - 1 - i, 8, getBit(bits, i));\n\t\t\tfor (var i = 8; i < 15; i++)\n\t\t\t\tsetFunctionModule(8, size - 15 + i, getBit(bits, i));\n\t\t\tsetFunctionModule(8, size - 8, true); // Always black\n\t\t}\n\n\n\t\t// Draws two copies of the version bits (with its own error correction code),\n\t\t// based on this object's version field, iff 7 <= version <= 40.\n\t\tfunction drawVersion() {\n\t\t\tif (version < 7)\n\t\t\t\treturn;\n\n\t\t\t// Calculate error correction code and pack bits\n\t\t\tvar rem = version; // version is uint6, in the range [7, 40]\n\t\t\tfor (var i = 0; i < 12; i++)\n\t\t\t\trem = (rem << 1) ^ ((rem >>> 11) * 0x1F25);\n\t\t\tvar bits = version << 12 | rem; // uint18\n\t\t\tif (bits >>> 18 != 0)\n\t\t\t\tthrow \"Assertion error\";\n\n\t\t\t// Draw two copies\n\t\t\tfor (var i = 0; i < 18; i++) {\n\t\t\t\tvar bit = getBit(bits, i);\n\t\t\t\tvar a = size - 11 + i % 3;\n\t\t\t\tvar b = Math.floor(i / 3);\n\t\t\t\tsetFunctionModule(a, b, bit);\n\t\t\t\tsetFunctionModule(b, a, bit);\n\t\t\t}\n\t\t}\n\n\n\t\t// Draws a 9*9 finder pattern including the border separator,\n\t\t// with the center module at (x, y). Modules can be out of bounds.\n\t\tfunction drawFinderPattern(x, y) {\n\t\t\tfor (var dy = -4; dy <= 4; dy++) {\n\t\t\t\tfor (var dx = -4; dx <= 4; dx++) {\n\t\t\t\t\tvar dist = Math.max(Math.abs(dx), Math.abs(dy)); // Chebyshev/infinity norm\n\t\t\t\t\tvar xx = x + dx, yy = y + dy;\n\t\t\t\t\tif (0 <= xx && xx < size && 0 <= yy && yy < size)\n\t\t\t\t\t\tsetFunctionModule(xx, yy, dist != 2 && dist != 4);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\t// Draws a 5*5 alignment pattern, with the center module\n\t\t// at (x, y). All modules must be in bounds.\n\t\tfunction drawAlignmentPattern(x, y) {\n\t\t\tfor (var dy = -2; dy <= 2; dy++) {\n\t\t\t\tfor (var dx = -2; dx <= 2; dx++)\n\t\t\t\t\tsetFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n\t\t\t}\n\t\t}\n\n\n\t\t// Sets the color of a module and marks it as a function module.\n\t\t// Only used by the constructor. Coordinates must be in bounds.\n\t\tfunction setFunctionModule(x, y, isBlack) {\n\t\t\tmodules[y][x] = isBlack;\n\t\t\tisFunction[y][x] = true;\n\t\t}\n\n\n\t\t/*---- Private helper methods for constructor: Codewords and masking ----*/\n\n\t\t// Returns a new byte string representing the given data with the appropriate error correction\n\t\t// codewords appended to it, based on this object's version and error correction level.\n\t\tfunction addEccAndInterleave(data) {\n\t\t\tif (data.length != QrCode.getNumDataCodewords(version, errCorLvl))\n\t\t\t\tthrow \"Invalid argument\";\n\n\t\t\t// Calculate parameter numbers\n\t\t\tvar numBlocks = QrCode.NUM_ERROR_CORRECTION_BLOCKS[errCorLvl.ordinal][version];\n\t\t\tvar blockEccLen = QrCode.ECC_CODEWORDS_PER_BLOCK [errCorLvl.ordinal][version];\n\t\t\tvar rawCodewords = Math.floor(QrCode.getNumRawDataModules(version) / 8);\n\t\t\tvar numShortBlocks = numBlocks - rawCodewords % numBlocks;\n\t\t\tvar shortBlockLen = Math.floor(rawCodewords / numBlocks);\n\n\t\t\t// Split data into blocks and append ECC to each block\n\t\t\tvar blocks = [];\n\t\t\tvar rs = new ReedSolomonGenerator(blockEccLen);\n\t\t\tfor (var i = 0, k = 0; i < numBlocks; i++) {\n\t\t\t\tvar dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n\t\t\t\tk += dat.length;\n\t\t\t\tvar ecc = rs.getRemainder(dat);\n\t\t\t\tif (i < numShortBlocks)\n\t\t\t\t\tdat.push(0);\n\t\t\t\tblocks.push(dat.concat(ecc));\n\t\t\t}\n\n\t\t\t// Interleave (not concatenate) the bytes from every block into a single sequence\n\t\t\tvar result = [];\n\t\t\tfor (var i = 0; i < blocks[0].length; i++) {\n\t\t\t\tfor (var j = 0; j < blocks.length; j++) {\n\t\t\t\t\t// Skip the padding byte in short blocks\n\t\t\t\t\tif (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n\t\t\t\t\t\tresult.push(blocks[j][i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result.length != rawCodewords)\n\t\t\t\tthrow \"Assertion error\";\n\t\t\treturn result;\n\t\t}\n\n\n\t\t// Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n\t\t// data area of this QR Code. Function modules need to be marked off before this is called.\n\t\tfunction drawCodewords(data) {\n\t\t\tif (data.length != Math.floor(QrCode.getNumRawDataModules(version) / 8))\n\t\t\t\tthrow \"Invalid argument\";\n\t\t\tvar i = 0; // Bit index into the data\n\t\t\t// Do the funny zigzag scan\n\t\t\tfor (var right = size - 1; right >= 1; right -= 2) { // Index of right column in each column pair\n\t\t\t\tif (right == 6)\n\t\t\t\t\tright = 5;\n\t\t\t\tfor (var vert = 0; vert < size; vert++) { // Vertical counter\n\t\t\t\t\tfor (var j = 0; j < 2; j++) {\n\t\t\t\t\t\tvar x = right - j; // Actual x coordinate\n\t\t\t\t\t\tvar upward = ((right + 1) & 2) == 0;\n\t\t\t\t\t\tvar y = upward ? size - 1 - vert : vert; // Actual y coordinate\n\t\t\t\t\t\tif (!isFunction[y][x] && i < data.length * 8) {\n\t\t\t\t\t\t\tmodules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If this QR Code has any remainder bits (0 to 7), they were assigned as\n\t\t\t\t\t\t// 0/false/white by the constructor and are left unchanged by this method\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i != data.length * 8)\n\t\t\t\tthrow \"Assertion error\";\n\t\t}\n\n\n\t\t// XORs the codeword modules in this QR Code with the given mask pattern.\n\t\t// The function modules must be marked and the codeword bits must be drawn\n\t\t// before masking. Due to the arithmetic of XOR, calling applyMask() with\n\t\t// the same mask value a second time will undo the mask. A final well-formed\n\t\t// QR Code needs exactly one (not zero, two, etc.) mask applied.\n\t\tfunction applyMask(mask) {\n\t\t\tif (mask < 0 || mask > 7)\n\t\t\t\tthrow \"Mask value out of range\";\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\t\tvar invert;\n\t\t\t\t\tswitch (mask) {\n\t\t\t\t\t\tcase 0: invert = (x + y) % 2 == 0; break;\n\t\t\t\t\t\tcase 1: invert = y % 2 == 0; break;\n\t\t\t\t\t\tcase 2: invert = x % 3 == 0; break;\n\t\t\t\t\t\tcase 3: invert = (x + y) % 3 == 0; break;\n\t\t\t\t\t\tcase 4: invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0; break;\n\t\t\t\t\t\tcase 5: invert = x * y % 2 + x * y % 3 == 0; break;\n\t\t\t\t\t\tcase 6: invert = (x * y % 2 + x * y % 3) % 2 == 0; break;\n\t\t\t\t\t\tcase 7: invert = ((x + y) % 2 + x * y % 3) % 2 == 0; break;\n\t\t\t\t\t\tdefault: throw \"Assertion error\";\n\t\t\t\t\t}\n\t\t\t\t\tif (!isFunction[y][x] && invert)\n\t\t\t\t\t\tmodules[y][x] = !modules[y][x];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\t// Calculates and returns the penalty score based on state of this QR Code's current modules.\n\t\t// This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n\t\tfunction getPenaltyScore() {\n\t\t\tvar result = 0;\n\n\t\t\t// Adjacent modules in row having same color\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0, runX, colorX; x < size; x++) {\n\t\t\t\t\tif (x == 0 || modules[y][x] != colorX) {\n\t\t\t\t\t\tcolorX = modules[y][x];\n\t\t\t\t\t\trunX = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\trunX++;\n\t\t\t\t\t\tif (runX == 5)\n\t\t\t\t\t\t\tresult += QrCode.PENALTY_N1;\n\t\t\t\t\t\telse if (runX > 5)\n\t\t\t\t\t\t\tresult++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Adjacent modules in column having same color\n\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\tfor (var y = 0, runY, colorY; y < size; y++) {\n\t\t\t\t\tif (y == 0 || modules[y][x] != colorY) {\n\t\t\t\t\t\tcolorY = modules[y][x];\n\t\t\t\t\t\trunY = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\trunY++;\n\t\t\t\t\t\tif (runY == 5)\n\t\t\t\t\t\t\tresult += QrCode.PENALTY_N1;\n\t\t\t\t\t\telse if (runY > 5)\n\t\t\t\t\t\t\tresult++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 2*2 blocks of modules having same color\n\t\t\tfor (var y = 0; y < size - 1; y++) {\n\t\t\t\tfor (var x = 0; x < size - 1; x++) {\n\t\t\t\t\tvar color = modules[y][x];\n\t\t\t\t\tif ( color == modules[y][x + 1] &&\n\t\t\t\t\t color == modules[y + 1][x] &&\n\t\t\t\t\t color == modules[y + 1][x + 1])\n\t\t\t\t\t\tresult += QrCode.PENALTY_N2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Finder-like pattern in rows\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0, bits = 0; x < size; x++) {\n\t\t\t\t\tbits = ((bits << 1) & 0x7FF) | (modules[y][x] ? 1 : 0);\n\t\t\t\t\tif (x >= 10 && (bits == 0x05D || bits == 0x5D0)) // Needs 11 bits accumulated\n\t\t\t\t\t\tresult += QrCode.PENALTY_N3;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Finder-like pattern in columns\n\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\tfor (var y = 0, bits = 0; y < size; y++) {\n\t\t\t\t\tbits = ((bits << 1) & 0x7FF) | (modules[y][x] ? 1 : 0);\n\t\t\t\t\tif (y >= 10 && (bits == 0x05D || bits == 0x5D0)) // Needs 11 bits accumulated\n\t\t\t\t\t\tresult += QrCode.PENALTY_N3;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Balance of black and white modules\n\t\t\tvar black = 0;\n\t\t\tmodules.forEach(function(row) {\n\t\t\t\trow.forEach(function(color) {\n\t\t\t\t\tif (color)\n\t\t\t\t\t\tblack++;\n\t\t\t\t});\n\t\t\t});\n\t\t\tvar total = size * size; // Note that size is odd, so black/total != 1/2\n\t\t\t// Compute the smallest integer k >= 0 such that (45-5k)% <= black/total <= (55+5k)%\n\t\t\tvar k = Math.ceil(Math.abs(black * 20 - total * 10) / total) - 1;\n\t\t\tresult += k * QrCode.PENALTY_N4;\n\t\t\treturn result;\n\t\t}\n\n\n\t\t// Returns an ascending list of positions of alignment patterns for this version number.\n\t\t// Each position is in the range [0,177), and are used on both the x and y axes.\n\t\t// This could be implemented as lookup table of 40 variable-length lists of integers.\n\t\tfunction getAlignmentPatternPositions() {\n\t\t\tif (version == 1)\n\t\t\t\treturn [];\n\t\t\telse {\n\t\t\t\tvar numAlign = Math.floor(version / 7) + 2;\n\t\t\t\tvar step = (version == 32) ? 26 :\n\t\t\t\t\tMath.ceil((size - 13) / (numAlign*2 - 2)) * 2;\n\t\t\t\tvar result = [6];\n\t\t\t\tfor (var pos = size - 7; result.length < numAlign; pos -= step)\n\t\t\t\t\tresult.splice(1, 0, pos);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\n\t\t// Returns true iff the i'th bit of x is set to 1.\n\t\tfunction getBit(x, i) {\n\t\t\treturn ((x >>> i) & 1) != 0;\n\t\t}\n\t};\n\n\n\t/*---- Static factory functions (high level) for QrCode ----*/\n\n\t/*\n\t * Returns a QR Code representing the given Unicode text string at the given error correction level.\n\t * As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n\t * Unicode code points (not UTF-16 code units) if the low error correction level is used. The smallest possible\n\t * QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n\t * ecl argument if it can be done without increasing the version.\n\t */\n\tthis.QrCode.encodeText = function(text, ecl) {\n\t\tvar segs = qrcodegen.QrSegment.makeSegments(text);\n\t\treturn this.encodeSegments(segs, ecl);\n\t};\n\n\n\t/*\n\t * Returns a QR Code representing the given binary data at the given error correction level.\n\t * This function always encodes using the binary segment mode, not any text mode. The maximum number of\n\t * bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n\t * The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n\t */\n\tthis.QrCode.encodeBinary = function(data, ecl) {\n\t\tvar seg = qrcodegen.QrSegment.makeBytes(data);\n\t\treturn this.encodeSegments([seg], ecl);\n\t};\n\n\n\t/*---- Static factory functions (mid level) for QrCode ----*/\n\n\t/*\n\t * Returns a QR Code representing the given segments with the given encoding parameters.\n\t * The smallest possible QR Code version within the given range is automatically\n\t * chosen for the output. Iff boostEcl is true, then the ECC level of the result\n\t * may be higher than the ecl argument if it can be done without increasing the\n\t * version. The mask number is either between 0 to 7 (inclusive) to force that\n\t * mask, or -1 to automatically choose an appropriate mask (which may be slow).\n\t * This function allows the user to create a custom sequence of segments that switches\n\t * between modes (such as alphanumeric and byte) to encode text in less space.\n\t * This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n\t */\n\tthis.QrCode.encodeSegments = function(segs, ecl, minVersion, maxVersion, mask, boostEcl) {\n\t\tif (minVersion == undefined) minVersion = MIN_VERSION;\n\t\tif (maxVersion == undefined) maxVersion = MAX_VERSION;\n\t\tif (mask == undefined) mask = -1;\n\t\tif (boostEcl == undefined) boostEcl = true;\n\t\tif (!(MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= MAX_VERSION) || mask < -1 || mask > 7)\n\t\t\tthrow \"Invalid value\";\n\n\t\t// Find the minimal version number to use\n\t\tvar version, dataUsedBits;\n\t\tfor (version = minVersion; ; version++) {\n\t\t\tvar dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8; // Number of data bits available\n\t\t\tdataUsedBits = qrcodegen.QrSegment.getTotalBits(segs, version);\n\t\t\tif (dataUsedBits <= dataCapacityBits)\n\t\t\t\tbreak; // This version number is found to be suitable\n\t\t\tif (version >= maxVersion) // All versions in the range could not fit the given data\n\t\t\t\tthrow \"Data too long\";\n\t\t}\n\n\t\t// Increase the error correction level while the data still fits in the current version number\n\t\t[this.Ecc.MEDIUM, this.Ecc.QUARTILE, this.Ecc.HIGH].forEach(function(newEcl) { // From low to high\n\t\t\tif (boostEcl && dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8)\n\t\t\t\tecl = newEcl;\n\t\t});\n\n\t\t// Concatenate all segments to create the data bit string\n\t\tvar bb = new BitBuffer();\n\t\tsegs.forEach(function(seg) {\n\t\t\tbb.appendBits(seg.mode.modeBits, 4);\n\t\t\tbb.appendBits(seg.numChars, seg.mode.numCharCountBits(version));\n\t\t\tseg.getData().forEach(function(bit) {\n\t\t\t\tbb.push(bit);\n\t\t\t});\n\t\t});\n\t\tif (bb.length != dataUsedBits)\n\t\t\tthrow \"Assertion error\";\n\n\t\t// Add terminator and pad up to a byte if applicable\n\t\tvar dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8;\n\t\tif (bb.length > dataCapacityBits)\n\t\t\tthrow \"Assertion error\";\n\t\tbb.appendBits(0, Math.min(4, dataCapacityBits - bb.length));\n\t\tbb.appendBits(0, (8 - bb.length % 8) % 8);\n\t\tif (bb.length % 8 != 0)\n\t\t\tthrow \"Assertion error\";\n\n\t\t// Pad with alternating bytes until data capacity is reached\n\t\tfor (var padByte = 0xEC; bb.length < dataCapacityBits; padByte ^= 0xEC ^ 0x11)\n\t\t\tbb.appendBits(padByte, 8);\n\n\t\t// Pack bits into bytes in big endian\n\t\tvar dataCodewords = [];\n\t\twhile (dataCodewords.length * 8 < bb.length)\n\t\t\tdataCodewords.push(0);\n\t\tbb.forEach(function(bit, i) {\n\t\t\tdataCodewords[i >>> 3] |= bit << (7 - (i & 7));\n\t\t});\n\n\t\t// Create the QR Code object\n\t\treturn new this(version, ecl, dataCodewords, mask);\n\t};\n\n\n\t/*---- Private static helper functions for QrCode ----*/\n\n\tvar QrCode = {}; // Private object to assign properties to. Not the same object as 'this.QrCode'.\n\n\n\t// Returns the number of data bits that can be stored in a QR Code of the given version number, after\n\t// all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n\t// The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n\tQrCode.getNumRawDataModules = function(ver) {\n\t\tif (ver < MIN_VERSION || ver > MAX_VERSION)\n\t\t\tthrow \"Version number out of range\";\n\t\tvar result = (16 * ver + 128) * ver + 64;\n\t\tif (ver >= 2) {\n\t\t\tvar numAlign = Math.floor(ver / 7) + 2;\n\t\t\tresult -= (25 * numAlign - 10) * numAlign - 55;\n\t\t\tif (ver >= 7)\n\t\t\t\tresult -= 36;\n\t\t}\n\t\treturn result;\n\t};\n\n\n\t// Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n\t// QR Code of the given version number and error correction level, with remainder bits discarded.\n\t// This stateless pure function could be implemented as a (40*4)-cell lookup table.\n\tQrCode.getNumDataCodewords = function(ver, ecl) {\n\t\treturn Math.floor(QrCode.getNumRawDataModules(ver) / 8) -\n\t\t\tQrCode.ECC_CODEWORDS_PER_BLOCK [ecl.ordinal][ver] *\n\t\t\tQrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n\t};\n\n\n\t/*---- Constants and tables for QrCode ----*/\n\n\tvar MIN_VERSION = 1; // The minimum version number supported in the QR Code Model 2 standard\n\tvar MAX_VERSION = 40; // The maximum version number supported in the QR Code Model 2 standard\n\tObject.defineProperty(this.QrCode, \"MIN_VERSION\", {value:MIN_VERSION});\n\tObject.defineProperty(this.QrCode, \"MAX_VERSION\", {value:MAX_VERSION});\n\n\t// For use in getPenaltyScore(), when evaluating which mask is best.\n\tQrCode.PENALTY_N1 = 3;\n\tQrCode.PENALTY_N2 = 3;\n\tQrCode.PENALTY_N3 = 40;\n\tQrCode.PENALTY_N4 = 10;\n\n\tQrCode.ECC_CODEWORDS_PER_BLOCK = [\n\t\t// Version: (note that index 0 is for padding, and is set to an illegal value)\n\t\t// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n\t\t[null, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Low\n\t\t[null, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], // Medium\n\t\t[null, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Quartile\n\t\t[null, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // High\n\t];\n\n\tQrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n\t\t// Version: (note that index 0 is for padding, and is set to an illegal value)\n\t\t// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n\t\t[null, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25], // Low\n\t\t[null, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49], // Medium\n\t\t[null, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68], // Quartile\n\t\t[null, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81], // High\n\t];\n\n\n\t/*---- Public helper enumeration ----*/\n\n\t/*\n\t * The error correction level in a QR Code symbol. Immutable.\n\t */\n\tthis.QrCode.Ecc = {\n\t\tLOW : new Ecc(0, 1), // The QR Code can tolerate about 7% erroneous codewords\n\t\tMEDIUM : new Ecc(1, 0), // The QR Code can tolerate about 15% erroneous codewords\n\t\tQUARTILE: new Ecc(2, 3), // The QR Code can tolerate about 25% erroneous codewords\n\t\tHIGH : new Ecc(3, 2), // The QR Code can tolerate about 30% erroneous codewords\n\t};\n\n\n\t// Private constructor.\n\tfunction Ecc(ord, fb) {\n\t\t// (Public) In the range 0 to 3 (unsigned 2-bit integer)\n\t\tObject.defineProperty(this, \"ordinal\", {value:ord});\n\n\t\t// (Package-private) In the range 0 to 3 (unsigned 2-bit integer)\n\t\tObject.defineProperty(this, \"formatBits\", {value:fb});\n\t}\n\n\n\n\t/*---- Data segment class ----*/\n\n\t/*\n\t * A segment of character/binary/control data in a QR Code symbol.\n\t * Instances of this class are immutable.\n\t * The mid-level way to create a segment is to take the payload data\n\t * and call a static factory function such as QrSegment.makeNumeric().\n\t * The low-level way to create a segment is to custom-make the bit buffer\n\t * and call the QrSegment() constructor with appropriate values.\n\t * This segment class imposes no length restrictions, but QR Codes have restrictions.\n\t * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.\n\t * Any segment longer than this is meaningless for the purpose of generating QR Codes.\n\t * This constructor creates a QR Code segment with the given attributes and data.\n\t * The character count (numChars) must agree with the mode and the bit buffer length,\n\t * but the constraint isn't checked. The given bit buffer is cloned and stored.\n\t */\n\tthis.QrSegment = function(mode, numChars, bitData) {\n\t\t/*---- Constructor (low level) ----*/\n\t\tif (numChars < 0 || !(mode instanceof Mode))\n\t\t\tthrow \"Invalid argument\";\n\n\t\t// The data bits of this segment. Accessed through getData().\n\t\tbitData = bitData.slice(); // Make defensive copy\n\n\t\t// The mode indicator of this segment.\n\t\tObject.defineProperty(this, \"mode\", {value:mode});\n\n\t\t// The length of this segment's unencoded data. Measured in characters for\n\t\t// numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.\n\t\t// Always zero or positive. Not the same as the data's bit length.\n\t\tObject.defineProperty(this, \"numChars\", {value:numChars});\n\n\t\t// Returns a new copy of the data bits of this segment.\n\t\tthis.getData = function() {\n\t\t\treturn bitData.slice(); // Make defensive copy\n\t\t};\n\t};\n\n\n\t/*---- Static factory functions (mid level) for QrSegment ----*/\n\n\t/*\n\t * Returns a segment representing the given binary data encoded in\n\t * byte mode. All input byte arrays are acceptable. Any text string\n\t * can be converted to UTF-8 bytes and encoded as a byte mode segment.\n\t */\n\tthis.QrSegment.makeBytes = function(data) {\n\t\tvar bb = new BitBuffer();\n\t\tdata.forEach(function(b) {\n\t\t\tbb.appendBits(b, 8);\n\t\t});\n\t\treturn new this(this.Mode.BYTE, data.length, bb);\n\t};\n\n\n\t/*\n\t * Returns a segment representing the given string of decimal digits encoded in numeric mode.\n\t */\n\tthis.QrSegment.makeNumeric = function(digits) {\n\t\tif (!this.NUMERIC_REGEX.test(digits))\n\t\t\tthrow \"String contains non-numeric characters\";\n\t\tvar bb = new BitBuffer();\n\t\tfor (var i = 0; i < digits.length; ) { // Consume up to 3 digits per iteration\n\t\t\tvar n = Math.min(digits.length - i, 3);\n\t\t\tbb.appendBits(parseInt(digits.substr(i, n), 10), n * 3 + 1);\n\t\t\ti += n;\n\t\t}\n\t\treturn new this(this.Mode.NUMERIC, digits.length, bb);\n\t};\n\n\n\t/*\n\t * Returns a segment representing the given text string encoded in alphanumeric mode.\n\t * The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n\t * dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n\t */\n\tthis.QrSegment.makeAlphanumeric = function(text) {\n\t\tif (!this.ALPHANUMERIC_REGEX.test(text))\n\t\t\tthrow \"String contains unencodable characters in alphanumeric mode\";\n\t\tvar bb = new BitBuffer();\n\t\tvar i;\n\t\tfor (i = 0; i + 2 <= text.length; i += 2) { // Process groups of 2\n\t\t\tvar temp = QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n\t\t\ttemp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n\t\t\tbb.appendBits(temp, 11);\n\t\t}\n\t\tif (i < text.length) // 1 character remaining\n\t\t\tbb.appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6);\n\t\treturn new this(this.Mode.ALPHANUMERIC, text.length, bb);\n\t};\n\n\n\t/*\n\t * Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n\t * The result may use various segment modes and switch modes to optimize the length of the bit stream.\n\t */\n\tthis.QrSegment.makeSegments = function(text) {\n\t\t// Select the most efficient segment encoding automatically\n\t\tif (text == \"\")\n\t\t\treturn [];\n\t\telse if (this.NUMERIC_REGEX.test(text))\n\t\t\treturn [this.makeNumeric(text)];\n\t\telse if (this.ALPHANUMERIC_REGEX.test(text))\n\t\t\treturn [this.makeAlphanumeric(text)];\n\t\telse\n\t\t\treturn [this.makeBytes(toUtf8ByteArray(text))];\n\t};\n\n\n\t/*\n\t * Returns a segment representing an Extended Channel Interpretation\n\t * (ECI) designator with the given assignment value.\n\t */\n\tthis.QrSegment.makeEci = function(assignVal) {\n\t\tvar bb = new BitBuffer();\n\t\tif (assignVal < 0)\n\t\t\tthrow \"ECI assignment value out of range\";\n\t\telse if (assignVal < (1 << 7))\n\t\t\tbb.appendBits(assignVal, 8);\n\t\telse if (assignVal < (1 << 14)) {\n\t\t\tbb.appendBits(2, 2);\n\t\t\tbb.appendBits(assignVal, 14);\n\t\t} else if (assignVal < 1000000) {\n\t\t\tbb.appendBits(6, 3);\n\t\t\tbb.appendBits(assignVal, 21);\n\t\t} else\n\t\t\tthrow \"ECI assignment value out of range\";\n\t\treturn new this(this.Mode.ECI, 0, bb);\n\t};\n\n\n\t// (Package-private) Calculates and returns the number of bits needed to encode the given segments at the\n\t// given version. The result is infinity if a segment has too many characters to fit its length field.\n\tthis.QrSegment.getTotalBits = function(segs, version) {\n\t\tvar result = 0;\n\t\tfor (var i = 0; i < segs.length; i++) {\n\t\t\tvar seg = segs[i];\n\t\t\tvar ccbits = seg.mode.numCharCountBits(version);\n\t\t\tif (seg.numChars >= (1 << ccbits))\n\t\t\t\treturn Infinity; // The segment's length doesn't fit the field's bit width\n\t\t\tresult += 4 + ccbits + seg.getData().length;\n\t\t}\n\t\treturn result;\n\t};\n\n\n\t/*---- Constants for QrSegment ----*/\n\n\tvar QrSegment = {}; // Private object to assign properties to. Not the same object as 'this.QrSegment'.\n\n\t// (Public) Describes precisely all strings that are encodable in numeric mode.\n\t// To test whether a string s is encodable: var ok = NUMERIC_REGEX.test(s);\n\t// A string is encodable iff each character is in the range 0 to 9.\n\tthis.QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n\n\t// (Public) Describes precisely all strings that are encodable in alphanumeric mode.\n\t// To test whether a string s is encodable: var ok = ALPHANUMERIC_REGEX.test(s);\n\t// A string is encodable iff each character is in the following set: 0 to 9, A to Z\n\t// (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n\tthis.QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n\n\t// (Private) The set of all legal characters in alphanumeric mode,\n\t// where each character value maps to the index in the string.\n\tQrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n\n\n\t/*---- Public helper enumeration ----*/\n\n\t/*\n\t * Describes how a segment's data bits are interpreted. Immutable.\n\t */\n\tthis.QrSegment.Mode = { // Constants\n\t\tNUMERIC : new Mode(0x1, [10, 12, 14]),\n\t\tALPHANUMERIC: new Mode(0x2, [ 9, 11, 13]),\n\t\tBYTE : new Mode(0x4, [ 8, 16, 16]),\n\t\tKANJI : new Mode(0x8, [ 8, 10, 12]),\n\t\tECI : new Mode(0x7, [ 0, 0, 0]),\n\t};\n\n\n\t// Private constructor.\n\tfunction Mode(mode, ccbits) {\n\t\t// (Package-private) The mode indicator bits, which is a uint4 value (range 0 to 15).\n\t\tObject.defineProperty(this, \"modeBits\", {value:mode});\n\n\t\t// (Package-private) Returns the bit width of the character count field for a segment in\n\t\t// this mode in a QR Code at the given version number. The result is in the range [0, 16].\n\t\tthis.numCharCountBits = function(ver) {\n\t\t\treturn ccbits[Math.floor((ver + 7) / 17)];\n\t\t};\n\t}\n\n\n\n\t/*---- Private helper functions and classes ----*/\n\n\t// Returns a new array of bytes representing the given string encoded in UTF-8.\n\tfunction toUtf8ByteArray(str) {\n\t\tstr = encodeURI(str);\n\t\tvar result = [];\n\t\tfor (var i = 0; i < str.length; i++) {\n\t\t\tif (str.charAt(i) != \"%\")\n\t\t\t\tresult.push(str.charCodeAt(i));\n\t\t\telse {\n\t\t\t\tresult.push(parseInt(str.substr(i + 1, 2), 16));\n\t\t\t\ti += 2;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\n\n\t/*\n\t * A private helper class that computes the Reed-Solomon error correction codewords for a sequence of\n\t * data codewords at a given degree. Objects are immutable, and the state only depends on the degree.\n\t * This class exists because each data block in a QR Code shares the same the divisor polynomial.\n\t * This constructor creates a Reed-Solomon ECC generator for the given degree. This could be implemented\n\t * as a lookup table over all possible parameter values, instead of as an algorithm.\n\t */\n\tfunction ReedSolomonGenerator(degree) {\n\t\tif (degree < 1 || degree > 255)\n\t\t\tthrow \"Degree out of range\";\n\n\t\t// Coefficients of the divisor polynomial, stored from highest to lowest power, excluding the leading term which\n\t\t// is always 1. For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the uint8 array {255, 8, 93}.\n\t\tvar coefficients = [];\n\n\t\t// Start with the monomial x^0\n\t\tfor (var i = 0; i < degree - 1; i++)\n\t\t\tcoefficients.push(0);\n\t\tcoefficients.push(1);\n\n\t\t// Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}),\n\t\t// drop the highest term, and store the rest of the coefficients in order of descending powers.\n\t\t// Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D).\n\t\tvar root = 1;\n\t\tfor (var i = 0; i < degree; i++) {\n\t\t\t// Multiply the current product by (x - r^i)\n\t\t\tfor (var j = 0; j < coefficients.length; j++) {\n\t\t\t\tcoefficients[j] = ReedSolomonGenerator.multiply(coefficients[j], root);\n\t\t\t\tif (j + 1 < coefficients.length)\n\t\t\t\t\tcoefficients[j] ^= coefficients[j + 1];\n\t\t\t}\n\t\t\troot = ReedSolomonGenerator.multiply(root, 0x02);\n\t\t}\n\n\t\t// Computes and returns the Reed-Solomon error correction codewords for the given\n\t\t// sequence of data codewords. The returned object is always a new byte array.\n\t\t// This method does not alter this object's state (because it is immutable).\n\t\tthis.getRemainder = function(data) {\n\t\t\t// Compute the remainder by performing polynomial division\n\t\t\tvar result = coefficients.map(function() { return 0; });\n\t\t\tdata.forEach(function(b) {\n\t\t\t\tvar factor = b ^ result.shift();\n\t\t\t\tresult.push(0);\n\t\t\t\tfor (var i = 0; i < result.length; i++)\n\t\t\t\t\tresult[i] ^= ReedSolomonGenerator.multiply(coefficients[i], factor);\n\t\t\t});\n\t\t\treturn result;\n\t\t};\n\t}\n\n\t// This static function returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and\n\t// result are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8.\n\tReedSolomonGenerator.multiply = function(x, y) {\n\t\tif (x >>> 8 != 0 || y >>> 8 != 0)\n\t\t\tthrow \"Byte out of range\";\n\t\t// Russian peasant multiplication\n\t\tvar z = 0;\n\t\tfor (var i = 7; i >= 0; i--) {\n\t\t\tz = (z << 1) ^ ((z >>> 7) * 0x11D);\n\t\t\tz ^= ((y >>> i) & 1) * x;\n\t\t}\n\t\tif (z >>> 8 != 0)\n\t\t\tthrow \"Assertion error\";\n\t\treturn z;\n\t};\n\n\n\n\t/*\n\t * A private helper class that represents an appendable sequence of bits (0s and 1s).\n\t * Mainly used by QrSegment. This constructor creates an empty bit buffer (length 0).\n\t */\n\tfunction BitBuffer() {\n\t\tArray.call(this);\n\n\t\t// Appends the given number of low-order bits of the given value\n\t\t// to this buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len.\n\t\tthis.appendBits = function(val, len) {\n\t\t\tif (len < 0 || len > 31 || val >>> len != 0)\n\t\t\t\tthrow \"Value out of range\";\n\t\t\tfor (var i = len - 1; i >= 0; i--) // Append bit by bit\n\t\t\t\tthis.push((val >>> i) & 1);\n\t\t};\n\t}\n\n\tBitBuffer.prototype = Object.create(Array.prototype);\n\tBitBuffer.prototype.constructor = BitBuffer;\n\n};\n\nexport default qrcodegen\n","export enum ErrorCorrectionLevel {\n L = 'L',\n M = 'M',\n Q = 'Q',\n H = 'H',\n}\n\nexport enum Environment {\n production = 'production',\n staging = 'staging',\n}\n\nexport enum ThemePreset {\n light = 'light',\n dark = 'dark',\n}\n","import qr from '../../utils/qrcode/qrcode';\nimport { Component, h, Prop } from '@stencil/core';\nimport { ErrorCorrectionLevel } from './enums';\n\nconst QRC = qr.QrCode;\n\n@Component({\n tag: 'qr-code',\n})\nexport class QRCode {\n @Prop() url!: string;\n @Prop() level?: ErrorCorrectionLevel = ErrorCorrectionLevel.M;\n @Prop() class?: string = '';\n @Prop() color?: string = 'black';\n\n render() {\n const getEcc = (ecc: string) => {\n ecc = ecc.toUpperCase();\n if (ecc === 'L') return QRC.Ecc.LOW;\n if (ecc === 'M') return QRC.Ecc.MEDIUM;\n if (ecc === 'Q') return QRC.Ecc.QUARTILE;\n return QRC.Ecc.HIGH;\n };\n\n const ecc = getEcc(this.level);\n\n const qr = QRC.encodeText(this.url, ecc);\n const qrcode = qr.svgObject();\n\n return (\n <svg class={this.class} viewBox={`0 0 ${qrcode.size} ${qrcode.size}`}>\n <path d={qrcode.path} fill={this.color} />\n </svg>\n );\n }\n}\n","/* UAParser.js v2.0.0-beta.2\n Copyright © 2012-2023 Faisal Salman <f@faisalman.com>\n AGPLv3 License */\n!function(i,u){\"use strict\";function e(i){for(var e={},t=0;t<i.length;t++)e[i[t].toUpperCase()]=i[t];return e}function n(i,e){if(!(typeof i===d&&0<i.length))return!!gi(i)&&-1!==xi(e).indexOf(xi(i));for(var t in i)if(xi(i[t])==xi(e))return 1}var w=\"\",c=\"function\",b=\"undefined\",d=\"object\",s=\"string\",p=\"major\",h=\"model\",f=\"name\",m=\"type\",g=\"vendor\",v=\"version\",x=\"architecture\",k=\"console\",y=\"mobile\",r=\"tablet\",t=\"smarttv\",o=\"wearable\",a=\"embedded\",l=\"user-agent\",_=500,S=\"brands\",T=\"formFactor\",C=\"fullVersionList\",q=\"platform\",A=\"platformVersion\",O=\"bitness\",z=\"sec-ch-ua\",N=z+\"-full-version-list\",I=z+\"-arch\",P=z+\"-\"+O,U=z+\"-form-factor\",H=z+\"-\"+y,E=z+\"-\"+h,M=z+\"-\"+q,R=M+\"-version\",j=[S,C,y,h,q,A,x,T,O],V=\"browser\",B=\"cpu\",F=\"device\",X=\"engine\",D=\"os\",G=\"result\",$=\"Amazon\",L=\"Apple\",W=\"ASUS\",K=\"BlackBerry\",Z=\"Google\",Q=\"Huawei\",Y=\"Lenovo\",J=\"LG\",ii=\"Microsoft\",ei=\"Motorola\",ti=\"Samsung\",oi=\"Sony\",ri=\"Xiaomi\",ai=\"Zebra\",si=\"Mobile \",ni=\" Browser\",wi=\"Chrome\",bi=\"Firefox\",li=\"Opera\",ui=\"Facebook\",ci=\"Windows\",di=typeof i!==b,pi=di&&i.navigator?i.navigator:u,hi=pi&&pi.userAgentData?pi.userAgentData:u,fi=function(i,e){var t,o={};for(t in i)o[t]=e[t]&&e[t].length%2==0?e[t].concat(i[t]):i[t];return o},mi=function(i){for(var e in i)return/^(browser|cpu|device|engine|os)$/.test(e)},gi=function(i){return typeof i===s},vi=function(i){if(!i)return u;for(var e,t=[],o=_i(/\\\\?\\\"/g,i).split(\",\"),r=0;r<o.length;r++)-1<o[r].indexOf(\";\")?(e=Ti(o[r]).split(\";v=\"),t[r]={brand:e[0],version:e[1]}):t[r]=Ti(o[r]);return t},xi=function(i){return gi(i)?i.toLowerCase():i},ki=function(i){return gi(i)?_i(/[^\\d\\.]/g,i).split(\".\")[0]:u},yi=function(i){for(var e in i){e=i[e];typeof e==d&&2==e.length?this[e[0]]=e[1]:this[e]=u}return this},_i=function(i,e){return gi(e)?e.replace(i,w):e},Si=function(i){return _i(/\\\\?\\\"/g,i)},Ti=function(i,e){if(gi(i))return i=_i(/^\\s\\s*/,i),typeof e===b?i:i.substring(0,_)},Ci=function(i,e){if(i&&e)for(var t,o,r,a,s,n=0;n<e.length&&!a;){for(var w=e[n],b=e[n+1],l=t=0;l<w.length&&!a&&w[l];)if(a=w[l++].exec(i))for(o=0;o<b.length;o++)s=a[++t],typeof(r=b[o])===d&&0<r.length?2===r.length?typeof r[1]==c?this[r[0]]=r[1].call(this,s):this[r[0]]=r[1]:3===r.length?typeof r[1]!==c||r[1].exec&&r[1].test?this[r[0]]=s?s.replace(r[1],r[2]):u:this[r[0]]=s?r[1].call(this,s,r[2]):u:4===r.length&&(this[r[0]]=s?r[3].call(this,s.replace(r[1],r[2])):u):this[r]=s||u;n+=2}},qi=function(i,e){for(var t in e)if(typeof e[t]===d&&0<e[t].length){for(var o=0;o<e[t].length;o++)if(n(e[t][o],i))return\"?\"===t?u:t}else if(n(e[t],i))return\"?\"===t?u:t;return e.hasOwnProperty(\"*\")?e[\"*\"]:i},Ai={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"},Oi={embedded:\"Automotive\",mobile:\"Mobile\",tablet:[\"Tablet\",\"EInk\"],smarttv:\"TV\",wearable:[\"VR\",\"XR\",\"Watch\"],\"?\":[\"Desktop\",\"Unknown\"],\"*\":u},zi={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[v,[f,si+\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[v,[f,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[f,v],[/opios[\\/ ]+([\\w\\.]+)/i],[v,[f,li+\" Mini\"]],[/\\bop(?:rg)?x\\/([\\w\\.]+)/i],[v,[f,li+\" GX\"]],[/\\bopr\\/([\\w\\.]+)/i],[v,[f,li]],[/\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i],[v,[f,\"Baidu\"]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[f,v],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[v,[f,\"UCBrowser\"]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i,/micromessenger\\/([\\w\\.]+)/i],[v,[f,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[v,[f,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[v,[f,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[v,[f,\"Yandex\"]],[/slbrowser\\/([\\w\\.]+)/i],[v,[f,\"Smart \"+Y+ni]],[/(avast|avg)\\/([\\w\\.]+)/i],[[f,/(.+)/,\"$1 Secure\"+ni],v],[/\\bfocus\\/([\\w\\.]+)/i],[v,[f,bi+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[v,[f,li+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[v,[f,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[v,[f,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[v,[f,li+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[v,[f,\"MIUI\"+ni]],[/fxios\\/([\\w\\.-]+)/i],[v,[f,si+bi]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[f,\"360\"+ni]],[/(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i],[[f,/(.+)/,\"$1\"+ni],v],[/samsungbrowser\\/([\\w\\.]+)/i],[v,[f,ti+\" Internet\"]],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[f,/_/g,\" \"],v],[/metasr[\\/ ]?([\\d\\.]+)/i],[v,[f,\"Sogou Explorer\"]],[/(sogou)mo\\w+\\/([\\d\\.]+)/i],[[f,\"Sogou Mobile\"],v],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[f,v],[/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[f],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[f,ui],v],[/(Klarna)\\/([\\w\\.]+)/i,/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(alipay)client\\/([\\w\\.]+)/i,/(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i],[f,v],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[v,[f,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[v,[f,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[v,[f,wi+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[f,wi+\" WebView\"],v],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[v,[f,\"Android\"+ni]],[/chrome\\/([\\w\\.]+) mobile/i],[v,[f,si+\"Chrome\"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[f,v],[/version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i],[v,[f,si+\"Safari\"]],[/iphone .*mobile(?:\\/\\w+ | ?)safari/i],[[f,si+\"Safari\"]],[/version\\/([\\w\\.\\,]+) .*(safari)/i],[v,f],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[f,[v,\"1\"]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[f,v],[/(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i],[[f,si+bi],v],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[f,\"Netscape\"],v],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[v,[f,bi+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[f,v],[/(cobalt)\\/([\\w\\.]+)/i],[f,[v,/[^\\d\\.]+./,w]]],cpu:[[/\\b(?:(amd|x|x86[-_]?|wow|win)64)\\b/i],[[x,\"amd64\"]],[/(ia32(?=;))/i,/((?:i[346]|x)86)[;\\)]/i],[[x,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[x,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[x,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[x,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[x,/ower/,w,xi]],[/(sun4\\w)[;\\)]/i],[[x,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[x,xi]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[h,[g,ti],[m,r]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[h,[g,ti],[m,y]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[h,[g,L],[m,y]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[h,[g,L],[m,r]],[/(macintosh);/i],[h,[g,L]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[h,[g,\"Sharp\"],[m,y]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[h,[g,Q],[m,r]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[h,[g,Q],[m,y]],[/\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[h,/_/g,\" \"],[g,ri],[m,y]],[/oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[h,/_/g,\" \"],[g,ri],[m,r]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[h,[g,\"OPPO\"],[m,y]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[h,[g,\"Vivo\"],[m,y]],[/\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i],[h,[g,\"Realme\"],[m,y]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[h,[g,ei],[m,y]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[h,[g,ei],[m,r]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[h,[g,J],[m,r]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[h,[g,J],[m,y]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[h,[g,Y],[m,r]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[h,/_/g,\" \"],[g,\"Nokia\"],[m,y]],[/(pixel c)\\b/i],[h,[g,Z],[m,r]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[h,[g,Z],[m,y]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[h,[g,oi],[m,y]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[h,\"Xperia Tablet\"],[g,oi],[m,r]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[h,[g,\"OnePlus\"],[m,y]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[h,[g,$],[m,r]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[h,/(.+)/g,\"Fire Phone $1\"],[g,$],[m,y]],[/(playbook);[-\\w\\),; ]+(rim)/i],[h,g,[m,r]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[h,[g,K],[m,y]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[h,[g,W],[m,r]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[h,[g,W],[m,y]],[/(nexus 9)/i],[h,[g,\"HTC\"],[m,r]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[g,[h,/_/g,\" \"],[m,y]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[h,[g,\"Acer\"],[m,r]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[h,[g,\"Meizu\"],[m,y]],[/; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i],[h,[g,\"Ulefone\"],[m,y]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[g,h,[m,y]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i],[g,h,[m,r]],[/(surface duo)/i],[h,[g,ii],[m,r]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[h,[g,\"Fairphone\"],[m,y]],[/(shield[\\w ]+) b/i],[h,[g,\"Nvidia\"],[m,r]],[/(sprint) (\\w+)/i],[g,h,[m,y]],[/(kin\\.[onetw]{3})/i],[[h,/\\./g,\" \"],[g,ii],[m,y]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[h,[g,ai],[m,r]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[h,[g,ai],[m,y]],[/smart-tv.+(samsung)/i],[g,[m,t]],[/hbbtv.+maple;(\\d+)/i],[[h,/^/,\"SmartTV\"],[g,ti],[m,t]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[g,J],[m,t]],[/(apple) ?tv/i],[g,[h,L+\" TV\"],[m,t]],[/crkey/i],[[h,wi+\"cast\"],[g,Z],[m,t]],[/droid.+aft(\\w+)( bui|\\))/i],[h,[g,$],[m,t]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[h,[g,\"Sharp\"],[m,t]],[/(bravia[\\w ]+)( bui|\\))/i],[h,[g,oi],[m,t]],[/(mitv-\\w{5}) bui/i],[h,[g,ri],[m,t]],[/Hbbtv.*(technisat) (.*);/i],[g,h,[m,t]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[g,Ti],[h,Ti],[m,t]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[m,t]],[/(ouya)/i,/(nintendo) (\\w+)/i],[g,h,[m,k]],[/droid.+; (shield) bui/i],[h,[g,\"Nvidia\"],[m,k]],[/(playstation \\w+)/i],[h,[g,oi],[m,k]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[h,[g,ii],[m,k]],[/((pebble))app/i],[g,h,[m,o]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[h,[g,L],[m,o]],[/droid.+; (glass) \\d/i],[h,[g,Z],[m,o]],[/droid.+; (wt63?0{2,3})\\)/i],[h,[g,ai],[m,o]],[/(quest( 2| pro)?)/i],[h,[g,ui],[m,o]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[g,[m,a]],[/(aeobc)\\b/i],[h,[g,$],[m,a]],[/droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i],[h,[m,y]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[h,[m,r]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[m,r]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[m,y]],[/(android[-\\w\\. ]{0,9});.+buil/i],[h,[g,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[v,[f,\"EdgeHTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[v,[f,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[f,v],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[v,f]],os:[[/microsoft (windows) (vista|xp)/i],[f,v],[/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i],[f,[v,qi,Ai]],[/windows nt 6\\.2; (arm)/i,/windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[v,qi,Ai],[f,ci]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[v,/_/g,\".\"],[f,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[f,\"macOS\"],[v,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[v,f],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[f,v],[/\\(bb(10);/i],[v,[f,K]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[v,[f,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[v,[f,bi+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[v,[f,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[v,[f,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[v,[f,wi+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[f,\"Chrome OS\"],v],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) (\\w+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[f,v],[/(sunos) ?([\\w\\.\\d]*)/i],[[f,\"Solaris\"],v],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[f,v]]},Ni=(wi={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},yi.call(wi.init,[[V,[f,v,p]],[B,[x]],[F,[m,h,g]],[X,[f,v]],[D,[f,v]]]),yi.call(wi.isIgnore,[[V,[v,p]],[X,[v]],[D,[v]]]),yi.call(wi.isIgnoreRgx,[[V,/ ?browser$/i],[D,/ ?os$/i]]),yi.call(wi.toString,[[V,[f,v]],[B,[x]],[F,[g,h]],[X,[f,v]],[D,[f,v]]]),wi),Ii=function(e,i){var t=Ni.init[i],o=Ni.isIgnore[i]||0,r=Ni.isIgnoreRgx[i]||0,a=Ni.toString[i]||0;function s(){yi.call(this,t)}return s.prototype.getItem=function(){return e},s.prototype.withClientHints=function(){return hi?hi.getHighEntropyValues(j).then(function(i){return e.setCH(new Pi(i,!1)).parseCH().get()}):e.parseCH().get()},s.prototype.withFeatureCheck=function(){return e.detectFeature().get()},i!=G&&(s.prototype.is=function(i){var e,t=!1;for(e in this)if(this.hasOwnProperty(e)&&!n(o,e)&&xi(r?_i(r,this[e]):this[e])==xi(r?_i(r,i):i)){if(t=!0,i!=b)break}else if(i==b&&t){t=!t;break}return t},s.prototype.toString=function(){var i,e=w;for(i in a)typeof this[a[i]]!==b&&(e+=(e?\" \":w)+this[a[i]]);return e||b}),hi||(s.prototype.then=function(i){var e=this,t=function(){for(var i in e)e.hasOwnProperty(i)&&(this[i]=e[i])};t.prototype={is:s.prototype.is,toString:s.prototype.toString};t=new t;return i(t),t}),new s};function Pi(i,e){if(i=i||{},yi.call(this,j),e)yi.call(this,[[S,vi(i[z])],[C,vi(i[N])],[y,/\\?1/.test(i[H])],[h,Si(i[E])],[q,Si(i[M])],[A,Si(i[R])],[x,Si(i[I])],[T,vi(i[U])],[O,Si(i[P])]]);else for(var t in i)this.hasOwnProperty(t)&&typeof i[t]!==b&&(this[t]=i[t])}function Ui(i,e,t,o){return this.get=function(i){return i?this.data.hasOwnProperty(i)?this.data[i]:u:this.data},this.set=function(i,e){return this.data[i]=e,this},this.setCH=function(i){return this.uaCH=i,this},this.detectFeature=function(){if(pi&&pi.userAgent==this.ua)switch(this.itemType){case V:pi.brave&&typeof pi.brave.isBrave==c&&this.set(f,\"Brave\");break;case F:!this.get(m)&&hi&&hi[y]&&this.set(m,y),\"Macintosh\"==this.get(h)&&pi&&typeof pi.standalone!==b&&pi.maxTouchPoints&&2<pi.maxTouchPoints&&this.set(h,\"iPad\").set(m,r);break;case D:!this.get(f)&&hi&&hi[q]&&this.set(f,hi[q]);break;case G:var e=this.data,i=function(i){return e[i].getItem().detectFeature().get()};this.set(V,i(V)).set(B,i(B)).set(F,i(F)).set(X,i(X)).set(D,i(D))}return this},this.parseUA=function(){return this.itemType!=G&&Ci.call(this.data,this.ua,this.rgxMap),this.itemType==V&&this.set(p,ki(this.get(v))),this},this.parseCH=function(){var i,e=this.uaCH,t=this.rgxMap;switch(this.itemType){case V:var o,r=e[C]||e[S];if(r)for(var a in r){var s=_i(/(Google|Microsoft) /,r[a].brand||r[a]),a=r[a].version;/not.a.brand/i.test(s)||o&&(!/chrom/i.test(o)||/chromi/i.test(s))||(this.set(f,s).set(v,a).set(p,ki(a)),o=s)}break;case B:var n=e[x];n&&(n&&\"64\"==e[O]&&(n+=\"64\"),Ci.call(this.data,n+\";\",t));break;case F:if(e[y]&&this.set(m,y),e[h]&&this.set(h,e[h]),\"Xbox\"==e[h]&&this.set(m,k).set(g,ii),e[T]){if(\"string\"!=typeof e[T])for(var w=0;!i&&w<e[T].length;)i=qi(e[T][w++],Oi);else i=qi(e[T],Oi);this.set(m,i)}break;case D:n=e[q];n&&(l=e[A],n==ci&&(l=13<=parseInt(ki(l),10)?\"11\":\"10\"),this.set(f,n).set(v,l)),this.get(f)==ci&&\"Xbox\"==e[h]&&this.set(f,\"Xbox\").set(v,u);break;case G:var b=this.data,l=function(i){return b[i].getItem().setCH(e).parseCH().get()};this.set(V,l(V)).set(B,l(B)).set(F,l(F)).set(X,l(X)).set(D,l(D))}return this},yi.call(this,[[\"itemType\",i],[\"ua\",e],[\"uaCH\",o],[\"rgxMap\",t],[\"data\",Ii(this,i)]]),this}function Hi(i,e,t){if(typeof i===d?(e=mi(i)?(typeof e===d&&(t=e),i):(t=i,u),i=u):typeof i!==s||mi(e)||(t=e,e=u),!(this instanceof Hi))return new Hi(i,e,t).getResult();var o=typeof i===s?i:pi&&pi.userAgent?pi.userAgent:t&&t[l]?t[l]:w,r=new Pi(t,!0),a=e?fi(zi,e):zi,e=function(i){return i==G?function(){return new Ui(i,o,a,r).set(\"ua\",o).set(V,this.getBrowser()).set(B,this.getCPU()).set(F,this.getDevice()).set(X,this.getEngine()).set(D,this.getOS()).get()}:function(){return new Ui(i,o,a[i],r).parseUA().get()}};return yi.call(this,[[\"getBrowser\",e(V)],[\"getCPU\",e(B)],[\"getDevice\",e(F)],[\"getEngine\",e(X)],[\"getOS\",e(D)],[\"getResult\",e(G)],[\"getUA\",function(){return o}],[\"setUA\",function(i){return gi(i)&&(o=i.length>_?Ti(i,_):i),this}]]).setUA(o),this}Hi.VERSION=\"2.0.0-beta.2\",Hi.BROWSER=e([f,v,p]),Hi.CPU=e([x]),Hi.DEVICE=e([h,g,m,k,y,t,r,o,a]),Hi.ENGINE=Hi.OS=e([f,v]),typeof exports!==b?(typeof module!==b&&module.exports&&(exports=module.exports=Hi),exports.UAParser=Hi):typeof define===c&&define.amd?define(function(){return Hi}):di&&(i.UAParser=Hi);var Ei,Mi=di&&(i.jQuery||i.Zepto);Mi&&!Mi.ua&&(Ei=new Hi,Mi.ua=Ei.getResult(),Mi.ua.get=function(){return Ei.getUA()},Mi.ua.set=function(i){Ei.setUA(i);var e,t=Ei.getResult();for(e in t)Mi.ua[e]=t[e]})}(\"object\"==typeof window?window:this);","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { Environment } from '../components/zero-account/enums';\nimport { Build } from '@stencil/core';\n\nexport const format = (appId: string): string => {\n return appId || '';\n}\n\nexport class Logger {\n private readonly environment: Environment;\n constructor(environment: Environment) {\n this.environment = environment;\n }\n log = (...args) => {\n if (this.environment !== 'production' && Build.isDev) {\n console.clear()\n console.log(...args);\n }\n }\n}\n","export function appendToParams(url, getParamsToUpdate) {\n if (typeof getParamsToUpdate !== \"object\") return false;\n\n // remove consecutive duplicate '&' chars from the url\n url = url.replace(/(&)\\1+/g, '&')\n //Note: substr(1) removes first character (getting rid of possible \"?\")\n //\t\t\t(does nothing with empty string)\n let getParams = url.substr(1).split('&');\n\n //avoid extra \"&\" at the beginning if current document.location.search was empty or 1 char\n if ((getParams.length < 1) || ((getParams.length === 1) && (getParams[0] === \"\")))\n getParams = [];\n\n let searchBuffer;\n let found;\n\n for (let k in getParamsToUpdate) {\n if (!getParamsToUpdate.hasOwnProperty(k)) continue;\n\n let key = encodeURIComponent(k);\n let value = encodeURIComponent(getParamsToUpdate[k]);\n\n searchBuffer = [];\n found = false;\n\n let paramsLength = getParams.length - 1\n //from the end to start...\n for (let i = paramsLength; i >= 0; --i) {\n searchBuffer = getParams[i].split('=');\n\n if (searchBuffer[0] === key) {\n //found key!\n getParams[i] = key + '=' + value;\n found = true;\n break;\n }\n }\n\n if (!found) getParams.push(key + '=' + value);\n }\n\n return getParams.join('&');\n}","import { h } from '@stencil/core';\n\nconst Logo = ({ className = '', color = '#7263FA' }) => {\n return (\n <svg\n class={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox='0 0 256 256'\n fill=\"none\">\n <path fill={color} d=\"M128 185h57v57h-57v-57ZM128 14h57v57h-57V14ZM71 185h57v57H71v-57ZM71 14h57v57H71V14ZM14 71h57v57H14V71ZM185 71h57v57h-57V71ZM71 14v57H14l57-57ZM14 128h57v57H14v-57ZM185 128h57v57h-57v-57ZM14 185h57v57l-57-57ZM185 14l57 57h-57V14Z\"/>\n </svg>\n );\n};\n\nexport default Logo;\n","\nconst maxRetries = 30\nconst send = (url: string, opts: Options, request: XMLHttpRequest, errorCount: number): void => {\n if (errorCount >= maxRetries) {\n request.abort();\n request = null\n return\n }\n let limit = errorCount\n ? Math.pow(2, errorCount - 1) * opts.startLimit\n : 0;\n limit = limit < opts.maxLimit ? limit : opts.maxLimit\n const pause = Math.random() * limit;\n setTimeout(function () {\n request.open('POST', url, true)\n for (const k in opts.headers) {\n if (Object.prototype.hasOwnProperty.call(opts.headers, k)) {\n request.setRequestHeader(k, opts.headers[k])\n }\n }\n request.send()\n }, pause)\n}\n\ntype Options = {\n startLimit?: number;\n maxLimit?: number;\n enableWithCredentials?: boolean;\n headers?: any\n}\n\nconst xhr = (url: string, opts: Options, callback: (v: string) => void): XMLHttpRequest => {\n opts = {startLimit: 100, maxLimit: 3 * 1000, enableWithCredentials: false, ...opts};\n let errorCount = 0;\n const request = new XMLHttpRequest();\n if (opts.enableWithCredentials) request.withCredentials = true;\n const retry = (): void => send(url, opts, request, ++errorCount);\n request.addEventListener('error', retry);\n request.addEventListener('timeout', retry);\n request.addEventListener('load', () => {\n if (request.status >= 200 && request.status < 300) {\n return callback(request.responseText)\n }\n retry()\n })\n\n send(url, opts, request, errorCount)\n return request;\n}\n\nconst http = {\n send: xhr,\n}\nexport default http;\n","import { UAParser } from 'ua-parser-js';\nimport { Environment } from './enums';\nimport http from '../../utils/request';\n\nconst DEFAULT_CALLBACK_URL = window.location.origin + '/zero/auth';\nconst API_URL = 'wss://ws.0account.com/ws';\nconst API_URL_STAGING = 'wss://staging.ws.0account.com/ws';\n\nconst PREFIX = '0account';\nconst SESSION_ID = 'session-id';\nconst SESSION_TOKEN = 'session-token';\n\nconst fromWidgetUUIDUpdated = 'from-widget-uuid-updated';\nconst fromWidgetLoggedOut = 'from-widget-logged-out';\n// const fromWidgetAuthenticationStarted = 'from-widget-authentication-started';\nconst fromWidgetEnsureSession = 'from-widget-ensure-session';\n\nconst toWidgetLogout = 'to-widget-logout';\nconst toWidgetApproved = 'to-widget-approved';\nconst toAnyError = 'to-any-error';\n// CustomEvents\nconst zeroLogout = '0account-logout';\nconst zeroAuthenticated = '0account-authenticated';\n// const zeroAuthenticationFailed = '0account-authentication-failed';\n\nfunction debounce(func, timeout = 300) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\n\ntype Options = {\n callbackURL: string,\n updateInterval: number,\n enableWithCredentials: boolean,\n uaParser: UAParser,\n log: (...args) => void\n env?: Environment,\n}\n\n\nexport class WS {\n private readonly appId: string;\n private socket: WebSocket;\n private uaParser: UAParser;\n private readonly log: (...args) => void;\n private uuid: string;\n private wsURL = API_URL;\n private callbackURL = DEFAULT_CALLBACK_URL;\n private request: XMLHttpRequest;\n private readonly updateInterval: number;\n private enableWithCredentials: boolean;\n\n constructor(appId: string, opts: Options) {\n if (!opts.env) opts.env = Environment.production\n\n this.appId = appId;\n this.uaParser = opts.uaParser;\n this.callbackURL = opts.callbackURL;\n this.updateInterval = opts.updateInterval;\n this.enableWithCredentials = opts.enableWithCredentials;\n this.log = opts.log;\n if (opts.env !== Environment.production) this.wsURL = API_URL_STAGING;\n this.init();\n }\n\n private deviceInfo() {\n return {\n appId: this.appId,\n browser: this.uaParser.getBrowser().withFeatureCheck().name,\n os: this.uaParser.getOS().withFeatureCheck().name,\n // TODO: handle these on backend:\n // device: `${this.uaParser.getDevice().vendor} ${this.uaParser.getDevice().model}`,\n // all: this.uaParser.getResult()\n };\n }\n\n private reinit() {\n const retry = debounce(this.init.bind(this), 1000)\n retry()\n }\n\n private init() {\n const onopen = (_) => {\n this.send(fromWidgetEnsureSession, this.deviceInfo());\n };\n const onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n this.handleMessage(data);\n } catch (e) {\n this.log(e);\n }\n };\n const onerror = (_) => {\n if (this.socket && (this.socket.readyState !== WebSocket.CLOSED\n && this.socket.readyState !== WebSocket.CLOSING)) {\n this.socket.close();\n }\n };\n const onclose = (_) => {\n if (this.socket) {\n this.socket.removeEventListener('open', onopen);\n this.socket.removeEventListener('message', onmessage);\n this.socket.removeEventListener('error', onerror);\n this.socket.removeEventListener('close', onclose);\n delete this.socket;\n }\n this.reinit();\n };\n\n if (this.socket) {\n this.socket.removeEventListener('open', onopen);\n this.socket.removeEventListener('message', onmessage);\n this.socket.removeEventListener('error', onerror);\n this.socket.removeEventListener('close', onclose);\n }\n this.socket = new WebSocket(this.wsURL);\n this.socket.addEventListener('open', onopen);\n this.socket.addEventListener('message', onmessage);\n this.socket.addEventListener('error', onerror);\n this.socket.addEventListener('close', onclose);\n }\n\n updateUUID(uuid: string) {\n this.uuid = uuid;\n this.send(fromWidgetUUIDUpdated, this.deviceInfo());\n }\n\n logout() {\n this.send(fromWidgetLoggedOut, this.deviceInfo());\n }\n\n send(action, data) {\n if (!this.socket || !this.socket.readyState || this.socket.readyState !== WebSocket.OPEN) {\n const retry = debounce(this.send.bind(this), 1000)\n return retry();\n }\n\n const msg: any = {\n action: action,\n timeout: `${this.updateInterval}ms`,\n uuid: this.uuid,\n appId: `${this.appId}`,\n message: {},\n };\n if (action === fromWidgetEnsureSession || action === fromWidgetLoggedOut) {\n const sessionId = localStorage.getItem(`${PREFIX}_${SESSION_ID}`);\n const sessionToken = localStorage.getItem(`${PREFIX}_${SESSION_TOKEN}`);\n if (!sessionId || !sessionToken) return;\n msg.sessionId = sessionId;\n msg.sessionToken = sessionToken;\n }\n\n if (data) msg.message = data;\n this.socket.send(JSON.stringify(msg));\n }\n\n onZeroAuth() {\n if (this.request) this.request.abort();\n this.request = http.send(this.callbackURL,\n {\n enableWithCredentials: this.enableWithCredentials,\n headers: {\n 'x-0account-uuid': this.uuid,\n 'x-0account-auth': 'true',\n },\n },\n (responseText) => {\n try {\n const data = JSON.parse(responseText);\n this.dispatchEventAndWsSend(zeroAuthenticated, data);\n } catch (err) {\n this.log(err);\n }\n },\n );\n }\n\n private handleMessage(msg: any) {\n switch (msg.action) {\n case toWidgetApproved:\n this.onZeroAuth();\n localStorage.setItem(`${PREFIX}_${SESSION_ID}`, msg.sessionId);\n localStorage.setItem(`${PREFIX}_${SESSION_TOKEN}`, msg.message);\n break;\n case toWidgetLogout:\n localStorage.removeItem(`${PREFIX}_${SESSION_ID}`);\n localStorage.removeItem(`${PREFIX}_${SESSION_TOKEN}`);\n this.dispatchEvent(zeroLogout);\n this.send(fromWidgetLoggedOut, this.deviceInfo());\n break;\n case toAnyError:\n this.log('ws error', msg);\n break;\n default:\n this.log('incorrect action', msg.action, msg);\n }\n }\n\n private dispatchEventAndWsSend(name, data) {\n this.dispatchEvent(name, data);\n this.send('from-widget-' + name, data);\n }\n\n private dispatchEvent(name: string, data?: any) {\n let event = new CustomEvent(name);\n if (data) event = new CustomEvent(name, { detail: data });\n document.dispatchEvent(event);\n }\n\n}\n",":host {\n --primary-color: #7263FA;\n --primary-background-color: #FFF;\n --theme-based-radius: 0px;\n --theme-based-padding: 0px;\n\n /* buttons */\n --button-animation-duration: 200ms;\n --text-color: #000;\n --button-border-color: #B2D4FF;\n --button-border-radius: 9999px;\n --button-background-color: var(--primary-background-color);\n\n /* modal */\n --modal-logo-border-color: var(--primary-color);\n --modal-animation-duration: 350ms;\n --easing: cubic-bezier(0.16, 1, 0.3, 1);\n --disabled-background-color: rgba(0, 0, 0, 0.12);\n --disabled-color: rgba(0, 0, 0, 0.3);\n /*--easing: ease;*/\n\n font-family: sans-serif;\n}\n\n.dark {\n --button-background-color: rgb(30, 41, 59);\n --primary-background-color: rgb(30, 41, 59);\n --button-border-color: #FFFFF9;\n --text-color: #FFFFF9;\n --modal-logo-border-color: #CCC;\n --disabled-background-color: rgba(255, 255, 255, 0.12);\n --disabled-color: rgba(255, 255, 255, 0.3);\n --theme-based-radius: 4px;\n --theme-based-padding: 8px;\n}\n\n.button {\n font-size: 16px;\n color: var(--text-color);\n cursor: pointer;\n padding: 8px 12px 8px 10px;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n border: 1px solid var(--button-border-color);\n background-color: var(--button-background-color);\n border-radius: var(--button-border-radius);\n}\n\n.button:hover {\n transition: box-shadow var(--button-animation-duration);\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n /* lighter shade of --button-background-color */\n background: linear-gradient(\n to top,\n rgba(200, 200, 200, 0.1),\n rgba(200, 200, 200, 0.1)\n ) var(--button-background-color)\n}\n\n.button:active {\n transition: box-shadow var(--button-animation-duration);\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.button__logo {\n width: 1.3rem;\n}\n\n/* -------- modal --------- */\n\n.modal {\n display: flex;\n z-index: 9999;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 1;\n background-color: rgba(0, 0, 0, 0.3);\n transition: opacity var(--modal-animation-duration) var(--easing);\n}\n\n.modal--hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.modal__content {\n max-width: 240px;\n border-radius: 4px;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n background-color: var(--primary-background-color);\n transform: scale(1);\n transition: transform var(--modal-animation-duration) var(--easing);\n}\n\n.modal--hidden .modal__content {\n transform: scale(0.5);\n}\n\n.modal__qrcode__container {\n position: relative;\n background-color: white;\n border-radius: var(--theme-based-radius);\n padding: var(--theme-based-padding);\n}\n\n.modal__qrcode {\n border-radius: 4px;\n width: 100%;\n height: auto;\n}\n\n.modal__logo {\n padding: 8px;\n border: 2px var(--modal-logo-border-color) solid;\n border-radius: var(--button-border-radius);\n background-color: var(--primary-background-color);\n position: absolute;\n width: 16%;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n\n.modal-animated .circle__overlay {\n width: 100%;\n height: 100%;\n}\n\n.modal-animated .modal__qrcode {\n filter: blur(2px);\n}\n\n.modal-animated .modal__logo {\n border: none;\n animation: spin 2.5s var(--easing) infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: translate3d(-50%, -50%, 0) rotate(0deg);\n }\n 50% {\n transform: translate3d(-50%, -50%, 0) rotate(180deg);\n }\n 100% {\n transform: translate3d(-50%, -50%, 0) rotate(360deg);\n }\n}\n\n.modal__buttons {\n width: 100%;\n flex-direction: column;\n align-items: center;\n margin-top: 14px;\n display: flex;\n text-align: center;\n}\n\n.modal:not(.modal--hidden) .modal__button {\n transform: scale(1) translate3d(0, 0, 0);\n}\n\n.modal:not(.modal--hidden) .modal__link {\n transform: scale(1) translate3d(0, 0, 0);\n}\n\n.modal__button {\n transform: scale(0) translate3d(0, 150px, 0);\n transition: calc(var(--modal-animation-duration) + 50ms) var(--easing);\n transition-property: scale, transform, background-color;\n cursor: pointer;\n padding: 12px;\n font-size: 14px;\n background-color: var(--primary-color);\n color: white;\n border: none;\n border-radius: 6px;\n width: 100%;\n}\n\n.modal__button:hover {\n /* darker shade of --primary-color */\n background: linear-gradient(\n to top,\n rgba(0, 0, 0, 0.1),\n rgba(0, 0, 0, 0.1)\n ) var(--primary-color);\n}\n\n.modal__button:disabled {\n background-color: var(--disabled-background-color);\n color: var(--disabled-color);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.modal__link {\n transform: scale(0) translate3d(0, 150px, 0);\n transition: calc(var(--modal-animation-duration) + 150ms) var(--easing);\n transition-property: scale, transform;\n font-size: 0.8rem;\n padding: 10px 20px 0;\n color: var(--primary-color);\n width: 100%;\n text-decoration: underline rgba(0, 0, 0, 0);\n}\n\n.modal__link:hover {\n text-decoration-color:var(--primary-color);\n}\n\n.modal__close-button {\n position: absolute;\n top: -26px;\n right: -26px;\n width: 24px;\n height: 24px;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 10px;\n cursor: pointer;\n transition: background-color var(--modal-animation-duration) var(--easing);\n}\n\n.modal__close-button:hover {\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.modal__close-button:before,\n.modal__close-button:after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 1px;\n background-color: rgba(255, 255, 255, 0.8);\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.modal__close-button:after {\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n/* circle ripple */\n\n.circle__overlay{\n overflow: hidden;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n background-color: var(--primary-background-color);\n border-radius: var(--button-border-radius);\n width: 10%;\n height: 10%;\n border: 2px var(--modal-logo-border-color) solid;\n transition: calc(var(--modal-animation-duration) + 200ms) var(--easing);\n transition-property: width, height, opacity;\n}\n\n.circle {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background-color: #E0E0E0;\n animation: circle__ripple 2s linear infinite;\n}\n\n.circle--medium {\n width: 150px;\n height: 150px;\n animation-duration: 2.5s;\n}\n\n.circle--large {\n width: 200px;\n height: 200px;\n animation-duration: 3s;\n}\n\n@keyframes circle__ripple {\n 0% {\n transform: translate(-50%, -50%) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n}\n","import { Element, Component, h, Host, Prop, Listen, State } from '@stencil/core';\nimport { UAParser } from 'ua-parser-js';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { Environment, ErrorCorrectionLevel, ThemePreset } from './enums';\nimport { Logger } from '../../utils/utils';\nimport * as utilsURL from '../../utils/url';\nimport Logo from './logo';\nimport { WS } from './websocket';\n\nconst maxInterval = 59 * 60 * 1000;\nconst minInterval = 10 * 1000;\n\nconst DEFAULT_CALLBACK_URL = window.location.origin + '/zero/auth';\nconst ANIMATION_DURATION = 3000\n\n@Component({\n tag: 'zero-account',\n styleUrl: 'zero-account.css',\n shadow: true,\n})\nexport class ZeroAccount {\n @Prop() appId!: string;\n @Prop() updateInterval?: number = 3 * 60 * 1000;\n @Prop({attribute: 'callback-url'}) callbackURL: string = DEFAULT_CALLBACK_URL;\n @Prop() modal?: boolean = true;\n @Prop() level?: ErrorCorrectionLevel = ErrorCorrectionLevel.M;\n @Prop() primaryColor: string = '#3C444F';\n @Prop() secondaryColor: string;\n @Prop() environment?: Environment = Environment.production;\n @Prop() enableWithCredentials?: boolean = false;\n @Prop() themePreset?: ThemePreset = ThemePreset.light;\n @Prop() autoStartApp? = true;\n\n private logger: Logger;\n private uaParser: UAParser;\n private ws: WS;\n\n private timer: number;\n private animationTimer: number;\n\n @Element() host: HTMLElement;\n private modalEl: HTMLDivElement;\n private closeButtonEl: HTMLDivElement;\n\n @State() modalOpen = false;\n @State() isAnimating = false;\n @State() url = '';\n\n private getUpdateInterval() {\n // make sure the provided value is within bounds\n return Math.min(Math.max(this.updateInterval, minInterval), maxInterval);\n }\n private refreshQR = (ignoreAnimate = false)=> {\n this.initServices();\n const update = () => {\n this.restartTimer();\n this.updateURL()\n }\n if (ignoreAnimate) return update();\n\n this.isAnimating = true\n this.animationTimer = window.setTimeout(()=>{\n update()\n this.isAnimating = false\n }, ANIMATION_DURATION)\n }\n\n @Listen('0account-toggle-modal', { target: 'document' })\n toggleModal() {\n this.modalOpen = !this.modalOpen;\n if (this.modalOpen) this.refreshQR(true)\n if ((this.modalOpen && this.autoStartApp) || this.isMobile()) this.openApp()\n }\n\n @Listen('0account-close-modal', { target: 'document' })\n @Listen('0account-authenticated', { target: 'document' })\n private _closeModal() {\n this.modalOpen = false;\n this.stopTimer()\n }\n\n @Listen('0account-logout', { target: 'document' })\n logout() {\n this.ws.logout()\n }\n\n private closeModal(e: MouseEvent) {\n if (e.target !== this.modalEl && e.target !== this.closeButtonEl) {\n return e.stopPropagation();\n }\n this._closeModal()\n }\n\n @Listen('0account-open-app', { target: 'document' })\n openApp() {\n if (this.modalOpen) {\n this.refreshQR(true)\n window.location.href = this.url\n }\n }\n\n render() {\n const logoColor = this.themePreset === ThemePreset.light ? '#7263FA': '#FFFFF9'\n const qrColor = '#000'\n return (\n <Host>\n <slot />\n {this.host.childNodes.length === 0 &&\n <button class={`button ${this.themePreset}`} onClick={()=>this.toggleModal()}>\n <Logo className='button__logo' color={logoColor} />\n use 0account\n </button>\n }\n <div\n ref={el => this.modalEl = el}\n onClick={(e) => this.closeModal(e)}\n class={`modal ${this.themePreset} ${this.isAnimating ? 'modal-animated': ''} ${this.modalOpen ? '' : 'modal--hidden'}`}>\n <div class='modal__content'>\n <div ref={el => this.closeButtonEl = el} class='modal__close-button'></div>\n <div class='modal__qrcode__container'>\n <qr-code url={this.url} class={`modal__qrcode`} level={this.level} color={qrColor}/>\n <div class='circle__overlay'>\n <div class='circle'></div>\n <div class='circle circle--medium'></div>\n <div class='circle circle--large'></div>\n </div>\n <Logo className='modal__logo' color={logoColor} />\n </div>\n <div class='modal__buttons'>\n <button disabled={this.isAnimating} onClick={()=>this.openApp()} class='modal__button'>Open 0account</button>\n <a href='https://0account.com/downloads' class='modal__link'>Download</a>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n private hideOnEsc = (e) => {\n if ((e.key === 'Escape' || e.key === 'Esc')) {\n this.modalOpen = false;\n }\n };\n\n initServices() {\n if (this.logger && this.uaParser && this.ws) return;\n this.logger = new Logger(this.environment);\n this.uaParser = new UAParser()\n this.ws = new WS(this.appId, {\n updateInterval: this.getUpdateInterval(),\n enableWithCredentials: this.enableWithCredentials,\n callbackURL: this.callbackURL,\n uaParser: this.uaParser,\n env: this.environment,\n log: this.log,\n })\n }\n // called only once\n componentWillLoad() {\n this.initServices()\n\n // make sure we initQR\n this.refreshQR(true)\n document.addEventListener('keydown', this.hideOnEsc);\n }\n\n private updateURL() {\n const expires = new Date().getTime() + this.getUpdateInterval();\n const uuid = uuidv4();\n this.ws.updateUUID(uuid);\n const params = utilsURL.appendToParams('', {\n appId: this.appId,\n uuid: uuid,\n expires: expires,\n })\n\n if (this.isMobile()) {\n this.url = 'https://launch.0account.com/auth?' + params;\n } else {\n this.url = 'zero-account://auth?' + params;\n }\n }\n\n isMobile() {\n const device = this.uaParser.getDevice()\n return device.type === 'tablet' || device.type === 'mobile'\n }\n\n connectedCallback() {\n this.startTimer()\n }\n\n disconnectedCallback() {\n this.stopTimer()\n document.removeEventListener('keydown', this.hideOnEsc);\n }\n\n private restartTimer() {\n this.stopTimer()\n this.startTimer()\n }\n\n private startTimer() {\n this.timer = window.setInterval(this.refreshQR, this.getUpdateInterval());\n }\n\n private stopTimer() {\n window.clearInterval(this.timer);\n window.clearTimeout(this.animationTimer);\n this.isAnimating = false\n }\n\n private log = (...args) => this.logger.log(...args);\n}\n"],"version":3}
|
|
1
|
+
{"file":"qr-code.zero-account.entry.cjs.js","mappings":"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AAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACxK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACxK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACxK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,kDAAkD,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,6DAA6D,CAAC,sDAAsD,CAAC,0BAA0B,CAAC,yMAAyM,CAAC,iCAAiC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,gDAAgD,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,iCAAiC,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,aAAa,CAAC,kGAAkG,CAAC,8FAA8F,CAAC,uBAAuB,CAAC,0CAA0C,CAAC,uHAAuH,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,yHAAyH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wDAAwD,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,mCAAmC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,oEAAoE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iDAAiD,CAAC,wBAAwB,CAAC,sCAAsC,CAAC,gDAAgD,CAAC,2DAA2D,CAAC,uGAAuG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,iEAAiE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gFAAgF,CAAC,2BAA2B,CAAC,oDAAoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,mDAAmD,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,mEAAmE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wGAAwG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,sCAAsC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,mCAAmC,CAAC,+EAA+E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+GAA+G,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,sCAAsC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,2DAA2D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,qEAAqE,CAAC,yBAAyB,CAAC,wCAAwC,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,0CAA0C,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,2CAA2C,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8EAA8E,CAAC,6BAA6B,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,+BAA+B,CAAC,0BAA0B,CAAC,uCAAuC,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,6SAA6S,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,4EAA4E,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,iCAAiC,CAAC,kEAAkE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAwC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAiF,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,MAAM,CAAC,MAAM,CAACC,cAAI,CAAC;;;ACHzgnB;AACA;AACA;AACA,IAAI,eAAe,CAAC;AACpB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AAClB,SAAS,GAAG,GAAG;AAC9B;AACA,EAAE,IAAI,CAAC,eAAe,EAAE;AACxB;AACA,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrH;AACA,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,MAAM,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;AAClI,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC;;AChBA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB;AACA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACD;AACO,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACjD;AACA;AACA,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AACrf;;AChBA,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxG,eAAe;AACf,EAAE,UAAU;AACZ,CAAC;;ACCD,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE;AAClC,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AAC7C,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC/B,GAAG;AACH;AACA,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AACxD;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC;AACA,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;AACzB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;AACA,EAAE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B;;MCnBa,MAAM;IAEjB,YAAY,WAAwB;QAGpC,QAAG,GAAG,CAAC,GAAG,IAAI;YACZ,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,IAAIC,WAAK,CAAC,KAAK,EAAE;gBACpD,OAAO,CAAC,KAAK,EAAE,CAAA;gBACf,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;aACtB;SACF,CAAA;QAPC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;;;ACXI,SAAS,cAAc,CAAC,GAAG,EAAE,iBAAiB,EAAE;AACvD,EAAE,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,OAAO,KAAK,CAAC;AAC1D;AACA;AACA,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAC;AACnC;AACA;AACA,EAAE,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACnF,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB;AACA,EAAE,IAAI,YAAY,CAAC;AACnB,EAAE,IAAI,KAAK,CAAC;AACZ;AACA,EAAE,KAAK,IAAI,CAAC,IAAI,iBAAiB,EAAE;AACnC,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS;AACvD;AACA,IAAI,IAAI,GAAG,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,KAAK,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB;AACA,IAAI,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,EAAC;AAC3C;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C;AACA,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnC;AACA,QAAQ,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AACzC,QAAQ,KAAK,GAAG,IAAI,CAAC;AACrB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B;;ACxCA,MAAM,IAAI,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE;IACjD,QACEF,iBACE,KAAK,EAAE,SAAS,EAChB,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,MAAM;QACXA,kBAAM,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,uOAAuO,GAAE,CAC1P,EACN;AACJ,CAAC;;ACXD,MAAM,UAAU,GAAG,EAAE,CAAA;AACrB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,IAAa,EAAE,OAAuB,EAAE,UAAkB;IACnF,IAAI,UAAU,IAAI,UAAU,EAAE;QAC5B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,GAAG,IAAI,CAAA;QACd,OAAM;KACP;IACD,IAAI,KAAK,GAAG,UAAU;UAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU;UAC7C,CAAC,CAAC;IACN,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAA;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,UAAU,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;gBACzD,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;aAC7C;SACF;QACD,OAAO,CAAC,IAAI,EAAE,CAAA;KACf,EAAE,KAAK,CAAC,CAAA;AACX,CAAC,CAAA;AASD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAAa,EAAE,QAA6B;IACpE,IAAI,mBAAI,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,qBAAqB,EAAE,KAAK,IAAK,IAAI,CAAC,CAAC;IACpF,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,IAAI,IAAI,CAAC,qBAAqB;QAAE,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/D,MAAM,KAAK,GAAG,MAAY,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;IACjE,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;YACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;SACtC;QACD,KAAK,EAAE,CAAA;KACR,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAA;AAED,MAAM,IAAI,GAAG;IACX,IAAI,EAAE,GAAG;CACV;;AChDD,MAAMG,sBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;AACnE,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAC3C,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAE3D,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AACzD,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AACrD;AACA,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAE7D,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,MAAM,UAAU,GAAG,cAAc,CAAC;AAClC;AACA,MAAM,UAAU,GAAG,iBAAiB,CAAC;AACrC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AACnD;AAEA,SAAS,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,GAAG;IACnC,IAAI,KAAK,CAAC;IACV,OAAO;QACL,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,GAAG,UAAU,CAAC;YACjB,IAAI,EAAE,CAAC;SACR,EAAE,OAAO,CAAC,CAAC;KACb,CAAC;AACJ,CAAC;MAYY,EAAE;IAYb,YAAY,KAAa,EAAE,IAAa;QANhC,UAAK,GAAG,OAAO,CAAC;QAChB,gBAAW,GAAGA,sBAAoB,CAAC;QAMzC,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,UAAU,CAAA;QAEhD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,KAAK,WAAW,CAAC,UAAU;YAAE,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;QACtE,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAEO,UAAU;QAChB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAI;YAC3D,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAI;;;;SAIlD,CAAC;KACH;IAEO,MAAM;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAClD,KAAK,EAAE,CAAA;KACR;IAEO,IAAI;QACV,MAAM,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACvD,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,KAAK;YACtB,IAAI;gBACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC1B;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACb;SACF,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM;mBACxD,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE;gBACpD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;aACrB;SACF,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;SACf,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAChD;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACrD;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACnD;IAED,IAAI,CAAC,MAAM,EAAE,IAAI;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;YACxF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;YAChE,OAAO,KAAK,EAAE,CAAC;SAChB;QAED,MAAM,GAAG,GAAQ;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,IAAI;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAI,MAAM,KAAK,uBAAuB,IAAI,MAAM,KAAK,mBAAmB,EAAE;YACxE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY;gBAAE,OAAO;YACxC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAC1B,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;SACjC;QAED,IAAI,IAAI;YAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KACvC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EACvC;YACE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,OAAO,EAAE;gBACP,iBAAiB,EAAE,IAAI,CAAC,IAAI;gBAC5B,iBAAiB,EAAE,MAAM;aAC1B;SACF,EACD,CAAC,YAAY;YACX,IAAI;gBACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACtC,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;aACtD;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACf;SACF,CACF,CAAC;KACH;IAEO,aAAa,CAAC,GAAQ;QAC5B,QAAQ,GAAG,CAAC,MAAM;YAChB,KAAK,gBAAgB;gBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/D,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,aAAa,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,cAAc;gBACjB,YAAY,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;gBACnD,YAAY,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC1B,MAAM;YACR;gBACE,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACjD;KACF;IAEO,sBAAsB,CAAC,IAAI,EAAE,IAAI;QACvC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;KACxC;IAEO,aAAa,CAAC,IAAY,EAAE,IAAU;QAC5C,IAAI,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI;YAAE,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC/B;;;ACrNH,MAAM,cAAc,GAAG,y5KAAy5K,CAAC;AACj7K,0BAAe,cAAc;;ACS7B,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9B,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;AACnE,MAAM,kBAAkB,GAAG,IAAI,CAAA;MAOlB,WAAW;;;QA6Bd,cAAS,GAAG,CAAC,aAAa,GAAG,KAAK;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG;gBACb,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,EAAE,CAAA;aACjB,CAAA;YACD,IAAI,aAAa;gBAAE,OAAO,MAAM,EAAE,CAAC;YAEnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;gBACtC,MAAM,EAAE,CAAA;gBACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;aACzB,EAAE,kBAAkB,CAAC,CAAA;SACvB,CAAA;QAuEO,cAAS,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,GAAG;gBAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;SACF,CAAC;QAsEM,QAAG,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;;8BAzLlB,CAAC,GAAG,EAAE,GAAG,IAAI;2BACU,oBAAoB;qBACtC,oBAAoB,CAAC,CAAC;2BACzB,WAAW,CAAC,UAAU;qCAChB,KAAK;2BACX,WAAW,CAAC,KAAK;4BAC7B,IAAI;yBAaP,KAAK;2BACH,KAAK;mBACb,EAAE;;IAET,iBAAiB;;QAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;KAC1E;IAiBD,WAAW;QACT,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,EAAE;YAAE,IAAI,CAAC,OAAO,EAAE,CAAA;KAC7E;IAIO,WAAW;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAA;KACjB;IAGD,MAAM;QACJ,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAA;KACjB;IAEO,UAAU,CAAC,CAAa;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE;YAChE,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,EAAE,CAAA;KACnB;IAGD,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACpB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACnC;IAED,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,KAAK,GAAG,SAAS,GAAE,SAAS,CAAA;QAC/E,MAAM,OAAO,GAAG,MAAM,CAAA;QACtB,QACEH,QAACI,UAAI,uDACHJ,oEAAQ,EACP,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAChCA,oBAAQ,KAAK,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,MAAI,IAAI,CAAC,WAAW,EAAE,IAC1EA,QAAC,IAAI,IAAC,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,SAAS,GAAI,iBAE5C,EAEXA,kEACE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,EAC5B,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,SAAS,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,gBAAgB,GAAE,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,eAAe,EAAE,IACtHA,kEAAK,KAAK,EAAC,gBAAgB,IACzBA,kEAAK,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE,KAAK,EAAC,qBAAqB,GAAO,EAC3EA,kEAAK,KAAK,EAAC,0BAA0B,IACnCA,sEAAS,GAAG,EAAE,IAAI,CAAC,GAAG,EAAG,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,EACrFA,kEAAK,KAAK,EAAC,iBAAiB,IAC1BA,kEAAK,KAAK,EAAC,QAAQ,GAAO,EAC1BA,kEAAK,KAAK,EAAC,uBAAuB,GAAO,EACzCA,kEAAK,KAAK,EAAC,sBAAsB,GAAO,CACpC,EACNA,QAAC,IAAI,qDAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,SAAS,GAAI,CAC9C,EACNA,kEAAK,KAAK,EAAC,gBAAgB,IACzBA,qEAAQ,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAI,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAC,eAAe,oBAAuB,EAC7GA,gEAAG,IAAI,EAAC,gCAAgC,EAAC,KAAK,EAAC,aAAa,eAAa,CACrE,CACF,CACF,CACD,EACP;KACH;IAQD,YAAY;QACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAIK,8BAAQ,EAAE,CAAA;QAC9B,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;YAC3B,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACxC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,WAAW;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;KACH;;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,EAAE,CAAA;;QAGnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACpB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACtD;IAEO,SAAS;QACf,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChE,MAAM,IAAI,GAAGC,EAAM,EAAE,CAAC;QACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,MAAM,GAAGC,cAAuB,CAAC,EAAE,EAAE;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,GAAG,GAAG,mCAAmC,GAAG,MAAM,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,GAAG,GAAG,sBAAsB,GAAG,MAAM,CAAC;SAC5C;KACF;IAED,QAAQ;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;QACxC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAA;KAC5D;IAED,iBAAiB;QACf,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;IAED,oBAAoB;QAClB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACzD;IAEO,YAAY;QAClB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,IAAI,CAAC,UAAU,EAAE,CAAA;KAClB;IAEO,UAAU;QAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAC3E;IAEO,SAAS;QACf,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;KACzB;;;;;;;;","names":["qr","h","this","Build","DEFAULT_CALLBACK_URL","Host","UAParser","uuidv4","utilsURL.appendToParams"],"sources":["src/utils/qrcode/qrcode.js","src/components/zero-account/enums.ts","src/components/zero-account/qrcode.tsx","node_modules/ua-parser-js/dist/ua-parser.pack.js","node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/native.js","node_modules/uuid/dist/esm-browser/v4.js","src/utils/utils.ts","src/utils/url.js","src/components/zero-account/logo.tsx","src/utils/request.ts","src/components/zero-account/websocket.ts","src/components/zero-account/zero-account.css?tag=zero-account&encapsulation=shadow","src/components/zero-account/zero-account.tsx"],"sourcesContent":["/*\n * QR Code generator library (JavaScript)\n *\n * Copyright (c) Project Nayuki. (MIT License)\n * https://www.nayuki.io/page/qr-code-generator-library\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n * - The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * - The Software is provided \"as is\", without warranty of any kind, express or\n * implied, including but not limited to the warranties of merchantability,\n * fitness for a particular purpose and noninfringement. In no event shall the\n * authors or copyright holders be liable for any claim, damages or other\n * liability, whether in an action of contract, tort or otherwise, arising from,\n * out of or in connection with the Software or the use or other dealings in the\n * Software.\n */\n\n\"use strict\";\n\n\n/*\n * Module \"qrcodegen\", public members:\n * - Class QrCode:\n * - Function encodeText(str text, QrCode.Ecc ecl) -> QrCode\n * - Function encodeBinary(list<byte> data, QrCode.Ecc ecl) -> QrCode\n * - Function encodeSegments(list<QrSegment> segs, QrCode.Ecc ecl,\n * int minVersion=1, int maxVersion=40, mask=-1, boostEcl=true) -> QrCode\n * - Constants int MIN_VERSION, MAX_VERSION\n * - Constructor QrCode(int version, QrCode.Ecc ecl, list<byte> dataCodewords, int mask)\n * - Fields int version, size, mask\n * - Field QrCode.Ecc errorCorrectionLevel\n * - Method getModule(int x, int y) -> bool\n * - Method drawCanvas(int scale, int border, HTMLCanvasElement canvas) -> void\n * - Method toSvgString(int border) -> str\n * - Enum Ecc:\n * - Constants LOW, MEDIUM, QUARTILE, HIGH\n * - Field int ordinal\n * - Class QrSegment:\n * - Function makeBytes(list<byte> data) -> QrSegment\n * - Function makeNumeric(str data) -> QrSegment\n * - Function makeAlphanumeric(str data) -> QrSegment\n * - Function makeSegments(str text) -> list<QrSegment>\n * - Function makeEci(int assignVal) -> QrSegment\n * - Constructor QrSegment(QrSegment.Mode mode, int numChars, list<int> bitData)\n * - Field QrSegment.Mode mode\n * - Field int numChars\n * - Method getData() -> list<int>\n * - Constants RegExp NUMERIC_REGEX, ALPHANUMERIC_REGEX\n * - Enum Mode:\n * - Constants NUMERIC, ALPHANUMERIC, BYTE, KANJI, ECI\n */\nvar qrcodegen = new function() {\n\n\t/*---- QR Code symbol class ----*/\n\n\t/*\n\t * A class that represents a QR Code symbol, which is a type of two-dimension barcode.\n\t * Invented by Denso Wave and described in the ISO/IEC 18004 standard.\n\t * Instances of this class represent an immutable square grid of black and white cells.\n\t * The class provides static factory functions to create a QR Code from text or binary data.\n\t * The class covers the QR Code Model 2 specification, supporting all versions (sizes)\n\t * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.\n\t *\n\t * Ways to create a QR Code object:\n\t * - High level: Take the payload data and call QrCode.encodeText() or QrCode.encodeBinary().\n\t * - Mid level: Custom-make the list of segments and call QrCode.encodeSegments().\n\t * - Low level: Custom-make the array of data codeword bytes (including\n\t * segment headers and final padding, excluding error correction codewords),\n\t * supply the appropriate version number, and call the QrCode() constructor.\n\t * (Note that all ways require supplying the desired error correction level.)\n\t *\n\t * This constructor creates a new QR Code with the given version number,\n\t * error correction level, data codeword bytes, and mask number.\n\t * This is a low-level API that most users should not use directly.\n\t * A mid-level API is the encodeSegments() function.\n\t */\n\tthis.QrCode = function(version, errCorLvl, dataCodewords, mask) {\n\n\t\t/*---- Constructor (low level) ----*/\n\n\t\t// Check scalar arguments\n\t\tif (version < MIN_VERSION || version > MAX_VERSION)\n\t\t\tthrow \"Version value out of range\";\n\t\tif (mask < -1 || mask > 7)\n\t\t\tthrow \"Mask value out of range\";\n\t\tif (!(errCorLvl instanceof Ecc))\n\t\t\tthrow \"QrCode.Ecc expected\";\n\t\tvar size = version * 4 + 17;\n\n\t\t// Initialize both grids to be size*size arrays of Boolean false\n\t\tvar row = [];\n\t\tfor (var i = 0; i < size; i++)\n\t\t\trow.push(false);\n\t\tvar modules = []; // Initially all white\n\t\tvar isFunction = [];\n\t\tfor (var i = 0; i < size; i++) {\n\t\t\tmodules .push(row.slice());\n\t\t\tisFunction.push(row.slice());\n\t\t}\n\n\t\t// Compute ECC, draw modules\n\t\tdrawFunctionPatterns();\n\t\tvar allCodewords = addEccAndInterleave(dataCodewords);\n\t\tdrawCodewords(allCodewords);\n\n\t\t// Do masking\n\t\tif (mask == -1) { // Automatically choose best mask\n\t\t\tvar minPenalty = Infinity;\n\t\t\tfor (var i = 0; i < 8; i++) {\n\t\t\t\tdrawFormatBits(i);\n\t\t\t\tapplyMask(i);\n\t\t\t\tvar penalty = getPenaltyScore();\n\t\t\t\tif (penalty < minPenalty) {\n\t\t\t\t\tmask = i;\n\t\t\t\t\tminPenalty = penalty;\n\t\t\t\t}\n\t\t\t\tapplyMask(i); // Undoes the mask due to XOR\n\t\t\t}\n\t\t}\n\t\tif (mask < 0 || mask > 7)\n\t\t\tthrow \"Assertion error\";\n\t\tdrawFormatBits(mask); // Overwrite old format bits\n\t\tapplyMask(mask); // Apply the final choice of mask\n\n\t\tisFunction = null;\n\n\n\t\t/*---- Read-only instance properties ----*/\n\n\t\t// The version number of this QR Code, which is between 1 and 40 (inclusive).\n\t\t// This determines the size of this barcode.\n\t\tObject.defineProperty(this, \"version\", {value:version});\n\n\t\t// The width and height of this QR Code, measured in modules, between\n\t\t// 21 and 177 (inclusive). This is equal to version * 4 + 17.\n\t\tObject.defineProperty(this, \"size\", {value:size});\n\n\t\t// The error correction level used in this QR Code.\n\t\tObject.defineProperty(this, \"errorCorrectionLevel\", {value:errCorLvl});\n\n\t\t// The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive).\n\t\t// Even if a QR Code is created with automatic masking requested (mask = -1),\n\t\t// the resulting object still has a mask value between 0 and 7.\n\t\tObject.defineProperty(this, \"mask\", {value:mask});\n\n\n\t\t/*---- Accessor methods ----*/\n\n\t\t// Returns the color of the module (pixel) at the given coordinates, which is false\n\t\t// for white or true for black. The top left corner has the coordinates (x=0, y=0).\n\t\t// If the given coordinates are out of bounds, then false (white) is returned.\n\t\tthis.getModule = function(x, y) {\n\t\t\treturn 0 <= x && x < size && 0 <= y && y < size && modules[y][x];\n\t\t};\n\n\n\t\t/*---- Public instance methods ----*/\n\n\t\tthis.circlePath = function(cx, cy, r){\n\t\t return 'M '+cx+' '+cy+' m -'+r+', 0 a '+r+','+r+' 0 1,0 '+(r*2)+',0 a '+r+','+r+' 0 1,0 -'+(r*2)+',0';\n\t\t}\n\n\t\tthis.svgObject = function(round) {\n\t\t\tvar parts = [];\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\t\tif (this.getModule(x, y)){\n\t\t\t\t\t\tif (round) {\n\t\t\t\t\t\t\tparts.push(this.circlePath(x+0.5,y+0.5, 0.5))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tparts.push(\"M\" + x + \",\" + y + \"h1v1h-1z\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpath: parts.join(\" \"),\n\t\t\t\tsize: size\n\t\t\t}\n\t\t};\n\n\n\t\t/*---- Private helper methods for constructor: Drawing function modules ----*/\n\n\t\t// Reads this object's version field, and draws and marks all function modules.\n\t\tfunction drawFunctionPatterns() {\n\t\t\t// Draw horizontal and vertical timing patterns\n\t\t\tfor (var i = 0; i < size; i++) {\n\t\t\t\tsetFunctionModule(6, i, i % 2 == 0);\n\t\t\t\tsetFunctionModule(i, 6, i % 2 == 0);\n\t\t\t}\n\n\t\t\t// Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)\n\t\t\tdrawFinderPattern(3, 3);\n\t\t\tdrawFinderPattern(size - 4, 3);\n\t\t\tdrawFinderPattern(3, size - 4);\n\n\t\t\t// Draw numerous alignment patterns\n\t\t\tvar alignPatPos = getAlignmentPatternPositions();\n\t\t\tvar numAlign = alignPatPos.length;\n\t\t\tfor (var i = 0; i < numAlign; i++) {\n\t\t\t\tfor (var j = 0; j < numAlign; j++) {\n\t\t\t\t\t// Don't draw on the three finder corners\n\t\t\t\t\tif (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n\t\t\t\t\t\tdrawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Draw configuration data\n\t\t\tdrawFormatBits(0); // Dummy mask value; overwritten later in the constructor\n\t\t\tdrawVersion();\n\t\t}\n\n\n\t\t// Draws two copies of the format bits (with its own error correction code)\n\t\t// based on the given mask and this object's error correction level field.\n\t\tfunction drawFormatBits(mask) {\n\t\t\t// Calculate error correction code and pack bits\n\t\t\tvar data = errCorLvl.formatBits << 3 | mask; // errCorrLvl is uint2, mask is uint3\n\t\t\tvar rem = data;\n\t\t\tfor (var i = 0; i < 10; i++)\n\t\t\t\trem = (rem << 1) ^ ((rem >>> 9) * 0x537);\n\t\t\tvar bits = (data << 10 | rem) ^ 0x5412; // uint15\n\t\t\tif (bits >>> 15 != 0)\n\t\t\t\tthrow \"Assertion error\";\n\n\t\t\t// Draw first copy\n\t\t\tfor (var i = 0; i <= 5; i++)\n\t\t\t\tsetFunctionModule(8, i, getBit(bits, i));\n\t\t\tsetFunctionModule(8, 7, getBit(bits, 6));\n\t\t\tsetFunctionModule(8, 8, getBit(bits, 7));\n\t\t\tsetFunctionModule(7, 8, getBit(bits, 8));\n\t\t\tfor (var i = 9; i < 15; i++)\n\t\t\t\tsetFunctionModule(14 - i, 8, getBit(bits, i));\n\n\t\t\t// Draw second copy\n\t\t\tfor (var i = 0; i < 8; i++)\n\t\t\t\tsetFunctionModule(size - 1 - i, 8, getBit(bits, i));\n\t\t\tfor (var i = 8; i < 15; i++)\n\t\t\t\tsetFunctionModule(8, size - 15 + i, getBit(bits, i));\n\t\t\tsetFunctionModule(8, size - 8, true); // Always black\n\t\t}\n\n\n\t\t// Draws two copies of the version bits (with its own error correction code),\n\t\t// based on this object's version field, iff 7 <= version <= 40.\n\t\tfunction drawVersion() {\n\t\t\tif (version < 7)\n\t\t\t\treturn;\n\n\t\t\t// Calculate error correction code and pack bits\n\t\t\tvar rem = version; // version is uint6, in the range [7, 40]\n\t\t\tfor (var i = 0; i < 12; i++)\n\t\t\t\trem = (rem << 1) ^ ((rem >>> 11) * 0x1F25);\n\t\t\tvar bits = version << 12 | rem; // uint18\n\t\t\tif (bits >>> 18 != 0)\n\t\t\t\tthrow \"Assertion error\";\n\n\t\t\t// Draw two copies\n\t\t\tfor (var i = 0; i < 18; i++) {\n\t\t\t\tvar bit = getBit(bits, i);\n\t\t\t\tvar a = size - 11 + i % 3;\n\t\t\t\tvar b = Math.floor(i / 3);\n\t\t\t\tsetFunctionModule(a, b, bit);\n\t\t\t\tsetFunctionModule(b, a, bit);\n\t\t\t}\n\t\t}\n\n\n\t\t// Draws a 9*9 finder pattern including the border separator,\n\t\t// with the center module at (x, y). Modules can be out of bounds.\n\t\tfunction drawFinderPattern(x, y) {\n\t\t\tfor (var dy = -4; dy <= 4; dy++) {\n\t\t\t\tfor (var dx = -4; dx <= 4; dx++) {\n\t\t\t\t\tvar dist = Math.max(Math.abs(dx), Math.abs(dy)); // Chebyshev/infinity norm\n\t\t\t\t\tvar xx = x + dx, yy = y + dy;\n\t\t\t\t\tif (0 <= xx && xx < size && 0 <= yy && yy < size)\n\t\t\t\t\t\tsetFunctionModule(xx, yy, dist != 2 && dist != 4);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\t// Draws a 5*5 alignment pattern, with the center module\n\t\t// at (x, y). All modules must be in bounds.\n\t\tfunction drawAlignmentPattern(x, y) {\n\t\t\tfor (var dy = -2; dy <= 2; dy++) {\n\t\t\t\tfor (var dx = -2; dx <= 2; dx++)\n\t\t\t\t\tsetFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n\t\t\t}\n\t\t}\n\n\n\t\t// Sets the color of a module and marks it as a function module.\n\t\t// Only used by the constructor. Coordinates must be in bounds.\n\t\tfunction setFunctionModule(x, y, isBlack) {\n\t\t\tmodules[y][x] = isBlack;\n\t\t\tisFunction[y][x] = true;\n\t\t}\n\n\n\t\t/*---- Private helper methods for constructor: Codewords and masking ----*/\n\n\t\t// Returns a new byte string representing the given data with the appropriate error correction\n\t\t// codewords appended to it, based on this object's version and error correction level.\n\t\tfunction addEccAndInterleave(data) {\n\t\t\tif (data.length != QrCode.getNumDataCodewords(version, errCorLvl))\n\t\t\t\tthrow \"Invalid argument\";\n\n\t\t\t// Calculate parameter numbers\n\t\t\tvar numBlocks = QrCode.NUM_ERROR_CORRECTION_BLOCKS[errCorLvl.ordinal][version];\n\t\t\tvar blockEccLen = QrCode.ECC_CODEWORDS_PER_BLOCK [errCorLvl.ordinal][version];\n\t\t\tvar rawCodewords = Math.floor(QrCode.getNumRawDataModules(version) / 8);\n\t\t\tvar numShortBlocks = numBlocks - rawCodewords % numBlocks;\n\t\t\tvar shortBlockLen = Math.floor(rawCodewords / numBlocks);\n\n\t\t\t// Split data into blocks and append ECC to each block\n\t\t\tvar blocks = [];\n\t\t\tvar rs = new ReedSolomonGenerator(blockEccLen);\n\t\t\tfor (var i = 0, k = 0; i < numBlocks; i++) {\n\t\t\t\tvar dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n\t\t\t\tk += dat.length;\n\t\t\t\tvar ecc = rs.getRemainder(dat);\n\t\t\t\tif (i < numShortBlocks)\n\t\t\t\t\tdat.push(0);\n\t\t\t\tblocks.push(dat.concat(ecc));\n\t\t\t}\n\n\t\t\t// Interleave (not concatenate) the bytes from every block into a single sequence\n\t\t\tvar result = [];\n\t\t\tfor (var i = 0; i < blocks[0].length; i++) {\n\t\t\t\tfor (var j = 0; j < blocks.length; j++) {\n\t\t\t\t\t// Skip the padding byte in short blocks\n\t\t\t\t\tif (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n\t\t\t\t\t\tresult.push(blocks[j][i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result.length != rawCodewords)\n\t\t\t\tthrow \"Assertion error\";\n\t\t\treturn result;\n\t\t}\n\n\n\t\t// Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n\t\t// data area of this QR Code. Function modules need to be marked off before this is called.\n\t\tfunction drawCodewords(data) {\n\t\t\tif (data.length != Math.floor(QrCode.getNumRawDataModules(version) / 8))\n\t\t\t\tthrow \"Invalid argument\";\n\t\t\tvar i = 0; // Bit index into the data\n\t\t\t// Do the funny zigzag scan\n\t\t\tfor (var right = size - 1; right >= 1; right -= 2) { // Index of right column in each column pair\n\t\t\t\tif (right == 6)\n\t\t\t\t\tright = 5;\n\t\t\t\tfor (var vert = 0; vert < size; vert++) { // Vertical counter\n\t\t\t\t\tfor (var j = 0; j < 2; j++) {\n\t\t\t\t\t\tvar x = right - j; // Actual x coordinate\n\t\t\t\t\t\tvar upward = ((right + 1) & 2) == 0;\n\t\t\t\t\t\tvar y = upward ? size - 1 - vert : vert; // Actual y coordinate\n\t\t\t\t\t\tif (!isFunction[y][x] && i < data.length * 8) {\n\t\t\t\t\t\t\tmodules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If this QR Code has any remainder bits (0 to 7), they were assigned as\n\t\t\t\t\t\t// 0/false/white by the constructor and are left unchanged by this method\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i != data.length * 8)\n\t\t\t\tthrow \"Assertion error\";\n\t\t}\n\n\n\t\t// XORs the codeword modules in this QR Code with the given mask pattern.\n\t\t// The function modules must be marked and the codeword bits must be drawn\n\t\t// before masking. Due to the arithmetic of XOR, calling applyMask() with\n\t\t// the same mask value a second time will undo the mask. A final well-formed\n\t\t// QR Code needs exactly one (not zero, two, etc.) mask applied.\n\t\tfunction applyMask(mask) {\n\t\t\tif (mask < 0 || mask > 7)\n\t\t\t\tthrow \"Mask value out of range\";\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\t\tvar invert;\n\t\t\t\t\tswitch (mask) {\n\t\t\t\t\t\tcase 0: invert = (x + y) % 2 == 0; break;\n\t\t\t\t\t\tcase 1: invert = y % 2 == 0; break;\n\t\t\t\t\t\tcase 2: invert = x % 3 == 0; break;\n\t\t\t\t\t\tcase 3: invert = (x + y) % 3 == 0; break;\n\t\t\t\t\t\tcase 4: invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0; break;\n\t\t\t\t\t\tcase 5: invert = x * y % 2 + x * y % 3 == 0; break;\n\t\t\t\t\t\tcase 6: invert = (x * y % 2 + x * y % 3) % 2 == 0; break;\n\t\t\t\t\t\tcase 7: invert = ((x + y) % 2 + x * y % 3) % 2 == 0; break;\n\t\t\t\t\t\tdefault: throw \"Assertion error\";\n\t\t\t\t\t}\n\t\t\t\t\tif (!isFunction[y][x] && invert)\n\t\t\t\t\t\tmodules[y][x] = !modules[y][x];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\t// Calculates and returns the penalty score based on state of this QR Code's current modules.\n\t\t// This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n\t\tfunction getPenaltyScore() {\n\t\t\tvar result = 0;\n\n\t\t\t// Adjacent modules in row having same color\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0, runX, colorX; x < size; x++) {\n\t\t\t\t\tif (x == 0 || modules[y][x] != colorX) {\n\t\t\t\t\t\tcolorX = modules[y][x];\n\t\t\t\t\t\trunX = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\trunX++;\n\t\t\t\t\t\tif (runX == 5)\n\t\t\t\t\t\t\tresult += QrCode.PENALTY_N1;\n\t\t\t\t\t\telse if (runX > 5)\n\t\t\t\t\t\t\tresult++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Adjacent modules in column having same color\n\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\tfor (var y = 0, runY, colorY; y < size; y++) {\n\t\t\t\t\tif (y == 0 || modules[y][x] != colorY) {\n\t\t\t\t\t\tcolorY = modules[y][x];\n\t\t\t\t\t\trunY = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\trunY++;\n\t\t\t\t\t\tif (runY == 5)\n\t\t\t\t\t\t\tresult += QrCode.PENALTY_N1;\n\t\t\t\t\t\telse if (runY > 5)\n\t\t\t\t\t\t\tresult++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 2*2 blocks of modules having same color\n\t\t\tfor (var y = 0; y < size - 1; y++) {\n\t\t\t\tfor (var x = 0; x < size - 1; x++) {\n\t\t\t\t\tvar color = modules[y][x];\n\t\t\t\t\tif ( color == modules[y][x + 1] &&\n\t\t\t\t\t color == modules[y + 1][x] &&\n\t\t\t\t\t color == modules[y + 1][x + 1])\n\t\t\t\t\t\tresult += QrCode.PENALTY_N2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Finder-like pattern in rows\n\t\t\tfor (var y = 0; y < size; y++) {\n\t\t\t\tfor (var x = 0, bits = 0; x < size; x++) {\n\t\t\t\t\tbits = ((bits << 1) & 0x7FF) | (modules[y][x] ? 1 : 0);\n\t\t\t\t\tif (x >= 10 && (bits == 0x05D || bits == 0x5D0)) // Needs 11 bits accumulated\n\t\t\t\t\t\tresult += QrCode.PENALTY_N3;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Finder-like pattern in columns\n\t\t\tfor (var x = 0; x < size; x++) {\n\t\t\t\tfor (var y = 0, bits = 0; y < size; y++) {\n\t\t\t\t\tbits = ((bits << 1) & 0x7FF) | (modules[y][x] ? 1 : 0);\n\t\t\t\t\tif (y >= 10 && (bits == 0x05D || bits == 0x5D0)) // Needs 11 bits accumulated\n\t\t\t\t\t\tresult += QrCode.PENALTY_N3;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Balance of black and white modules\n\t\t\tvar black = 0;\n\t\t\tmodules.forEach(function(row) {\n\t\t\t\trow.forEach(function(color) {\n\t\t\t\t\tif (color)\n\t\t\t\t\t\tblack++;\n\t\t\t\t});\n\t\t\t});\n\t\t\tvar total = size * size; // Note that size is odd, so black/total != 1/2\n\t\t\t// Compute the smallest integer k >= 0 such that (45-5k)% <= black/total <= (55+5k)%\n\t\t\tvar k = Math.ceil(Math.abs(black * 20 - total * 10) / total) - 1;\n\t\t\tresult += k * QrCode.PENALTY_N4;\n\t\t\treturn result;\n\t\t}\n\n\n\t\t// Returns an ascending list of positions of alignment patterns for this version number.\n\t\t// Each position is in the range [0,177), and are used on both the x and y axes.\n\t\t// This could be implemented as lookup table of 40 variable-length lists of integers.\n\t\tfunction getAlignmentPatternPositions() {\n\t\t\tif (version == 1)\n\t\t\t\treturn [];\n\t\t\telse {\n\t\t\t\tvar numAlign = Math.floor(version / 7) + 2;\n\t\t\t\tvar step = (version == 32) ? 26 :\n\t\t\t\t\tMath.ceil((size - 13) / (numAlign*2 - 2)) * 2;\n\t\t\t\tvar result = [6];\n\t\t\t\tfor (var pos = size - 7; result.length < numAlign; pos -= step)\n\t\t\t\t\tresult.splice(1, 0, pos);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\n\t\t// Returns true iff the i'th bit of x is set to 1.\n\t\tfunction getBit(x, i) {\n\t\t\treturn ((x >>> i) & 1) != 0;\n\t\t}\n\t};\n\n\n\t/*---- Static factory functions (high level) for QrCode ----*/\n\n\t/*\n\t * Returns a QR Code representing the given Unicode text string at the given error correction level.\n\t * As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n\t * Unicode code points (not UTF-16 code units) if the low error correction level is used. The smallest possible\n\t * QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n\t * ecl argument if it can be done without increasing the version.\n\t */\n\tthis.QrCode.encodeText = function(text, ecl) {\n\t\tvar segs = qrcodegen.QrSegment.makeSegments(text);\n\t\treturn this.encodeSegments(segs, ecl);\n\t};\n\n\n\t/*\n\t * Returns a QR Code representing the given binary data at the given error correction level.\n\t * This function always encodes using the binary segment mode, not any text mode. The maximum number of\n\t * bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n\t * The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n\t */\n\tthis.QrCode.encodeBinary = function(data, ecl) {\n\t\tvar seg = qrcodegen.QrSegment.makeBytes(data);\n\t\treturn this.encodeSegments([seg], ecl);\n\t};\n\n\n\t/*---- Static factory functions (mid level) for QrCode ----*/\n\n\t/*\n\t * Returns a QR Code representing the given segments with the given encoding parameters.\n\t * The smallest possible QR Code version within the given range is automatically\n\t * chosen for the output. Iff boostEcl is true, then the ECC level of the result\n\t * may be higher than the ecl argument if it can be done without increasing the\n\t * version. The mask number is either between 0 to 7 (inclusive) to force that\n\t * mask, or -1 to automatically choose an appropriate mask (which may be slow).\n\t * This function allows the user to create a custom sequence of segments that switches\n\t * between modes (such as alphanumeric and byte) to encode text in less space.\n\t * This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n\t */\n\tthis.QrCode.encodeSegments = function(segs, ecl, minVersion, maxVersion, mask, boostEcl) {\n\t\tif (minVersion == undefined) minVersion = MIN_VERSION;\n\t\tif (maxVersion == undefined) maxVersion = MAX_VERSION;\n\t\tif (mask == undefined) mask = -1;\n\t\tif (boostEcl == undefined) boostEcl = true;\n\t\tif (!(MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= MAX_VERSION) || mask < -1 || mask > 7)\n\t\t\tthrow \"Invalid value\";\n\n\t\t// Find the minimal version number to use\n\t\tvar version, dataUsedBits;\n\t\tfor (version = minVersion; ; version++) {\n\t\t\tvar dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8; // Number of data bits available\n\t\t\tdataUsedBits = qrcodegen.QrSegment.getTotalBits(segs, version);\n\t\t\tif (dataUsedBits <= dataCapacityBits)\n\t\t\t\tbreak; // This version number is found to be suitable\n\t\t\tif (version >= maxVersion) // All versions in the range could not fit the given data\n\t\t\t\tthrow \"Data too long\";\n\t\t}\n\n\t\t// Increase the error correction level while the data still fits in the current version number\n\t\t[this.Ecc.MEDIUM, this.Ecc.QUARTILE, this.Ecc.HIGH].forEach(function(newEcl) { // From low to high\n\t\t\tif (boostEcl && dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8)\n\t\t\t\tecl = newEcl;\n\t\t});\n\n\t\t// Concatenate all segments to create the data bit string\n\t\tvar bb = new BitBuffer();\n\t\tsegs.forEach(function(seg) {\n\t\t\tbb.appendBits(seg.mode.modeBits, 4);\n\t\t\tbb.appendBits(seg.numChars, seg.mode.numCharCountBits(version));\n\t\t\tseg.getData().forEach(function(bit) {\n\t\t\t\tbb.push(bit);\n\t\t\t});\n\t\t});\n\t\tif (bb.length != dataUsedBits)\n\t\t\tthrow \"Assertion error\";\n\n\t\t// Add terminator and pad up to a byte if applicable\n\t\tvar dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8;\n\t\tif (bb.length > dataCapacityBits)\n\t\t\tthrow \"Assertion error\";\n\t\tbb.appendBits(0, Math.min(4, dataCapacityBits - bb.length));\n\t\tbb.appendBits(0, (8 - bb.length % 8) % 8);\n\t\tif (bb.length % 8 != 0)\n\t\t\tthrow \"Assertion error\";\n\n\t\t// Pad with alternating bytes until data capacity is reached\n\t\tfor (var padByte = 0xEC; bb.length < dataCapacityBits; padByte ^= 0xEC ^ 0x11)\n\t\t\tbb.appendBits(padByte, 8);\n\n\t\t// Pack bits into bytes in big endian\n\t\tvar dataCodewords = [];\n\t\twhile (dataCodewords.length * 8 < bb.length)\n\t\t\tdataCodewords.push(0);\n\t\tbb.forEach(function(bit, i) {\n\t\t\tdataCodewords[i >>> 3] |= bit << (7 - (i & 7));\n\t\t});\n\n\t\t// Create the QR Code object\n\t\treturn new this(version, ecl, dataCodewords, mask);\n\t};\n\n\n\t/*---- Private static helper functions for QrCode ----*/\n\n\tvar QrCode = {}; // Private object to assign properties to. Not the same object as 'this.QrCode'.\n\n\n\t// Returns the number of data bits that can be stored in a QR Code of the given version number, after\n\t// all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n\t// The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n\tQrCode.getNumRawDataModules = function(ver) {\n\t\tif (ver < MIN_VERSION || ver > MAX_VERSION)\n\t\t\tthrow \"Version number out of range\";\n\t\tvar result = (16 * ver + 128) * ver + 64;\n\t\tif (ver >= 2) {\n\t\t\tvar numAlign = Math.floor(ver / 7) + 2;\n\t\t\tresult -= (25 * numAlign - 10) * numAlign - 55;\n\t\t\tif (ver >= 7)\n\t\t\t\tresult -= 36;\n\t\t}\n\t\treturn result;\n\t};\n\n\n\t// Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n\t// QR Code of the given version number and error correction level, with remainder bits discarded.\n\t// This stateless pure function could be implemented as a (40*4)-cell lookup table.\n\tQrCode.getNumDataCodewords = function(ver, ecl) {\n\t\treturn Math.floor(QrCode.getNumRawDataModules(ver) / 8) -\n\t\t\tQrCode.ECC_CODEWORDS_PER_BLOCK [ecl.ordinal][ver] *\n\t\t\tQrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n\t};\n\n\n\t/*---- Constants and tables for QrCode ----*/\n\n\tvar MIN_VERSION = 1; // The minimum version number supported in the QR Code Model 2 standard\n\tvar MAX_VERSION = 40; // The maximum version number supported in the QR Code Model 2 standard\n\tObject.defineProperty(this.QrCode, \"MIN_VERSION\", {value:MIN_VERSION});\n\tObject.defineProperty(this.QrCode, \"MAX_VERSION\", {value:MAX_VERSION});\n\n\t// For use in getPenaltyScore(), when evaluating which mask is best.\n\tQrCode.PENALTY_N1 = 3;\n\tQrCode.PENALTY_N2 = 3;\n\tQrCode.PENALTY_N3 = 40;\n\tQrCode.PENALTY_N4 = 10;\n\n\tQrCode.ECC_CODEWORDS_PER_BLOCK = [\n\t\t// Version: (note that index 0 is for padding, and is set to an illegal value)\n\t\t// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n\t\t[null, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Low\n\t\t[null, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], // Medium\n\t\t[null, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Quartile\n\t\t[null, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // High\n\t];\n\n\tQrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n\t\t// Version: (note that index 0 is for padding, and is set to an illegal value)\n\t\t// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n\t\t[null, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25], // Low\n\t\t[null, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49], // Medium\n\t\t[null, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68], // Quartile\n\t\t[null, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81], // High\n\t];\n\n\n\t/*---- Public helper enumeration ----*/\n\n\t/*\n\t * The error correction level in a QR Code symbol. Immutable.\n\t */\n\tthis.QrCode.Ecc = {\n\t\tLOW : new Ecc(0, 1), // The QR Code can tolerate about 7% erroneous codewords\n\t\tMEDIUM : new Ecc(1, 0), // The QR Code can tolerate about 15% erroneous codewords\n\t\tQUARTILE: new Ecc(2, 3), // The QR Code can tolerate about 25% erroneous codewords\n\t\tHIGH : new Ecc(3, 2), // The QR Code can tolerate about 30% erroneous codewords\n\t};\n\n\n\t// Private constructor.\n\tfunction Ecc(ord, fb) {\n\t\t// (Public) In the range 0 to 3 (unsigned 2-bit integer)\n\t\tObject.defineProperty(this, \"ordinal\", {value:ord});\n\n\t\t// (Package-private) In the range 0 to 3 (unsigned 2-bit integer)\n\t\tObject.defineProperty(this, \"formatBits\", {value:fb});\n\t}\n\n\n\n\t/*---- Data segment class ----*/\n\n\t/*\n\t * A segment of character/binary/control data in a QR Code symbol.\n\t * Instances of this class are immutable.\n\t * The mid-level way to create a segment is to take the payload data\n\t * and call a static factory function such as QrSegment.makeNumeric().\n\t * The low-level way to create a segment is to custom-make the bit buffer\n\t * and call the QrSegment() constructor with appropriate values.\n\t * This segment class imposes no length restrictions, but QR Codes have restrictions.\n\t * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.\n\t * Any segment longer than this is meaningless for the purpose of generating QR Codes.\n\t * This constructor creates a QR Code segment with the given attributes and data.\n\t * The character count (numChars) must agree with the mode and the bit buffer length,\n\t * but the constraint isn't checked. The given bit buffer is cloned and stored.\n\t */\n\tthis.QrSegment = function(mode, numChars, bitData) {\n\t\t/*---- Constructor (low level) ----*/\n\t\tif (numChars < 0 || !(mode instanceof Mode))\n\t\t\tthrow \"Invalid argument\";\n\n\t\t// The data bits of this segment. Accessed through getData().\n\t\tbitData = bitData.slice(); // Make defensive copy\n\n\t\t// The mode indicator of this segment.\n\t\tObject.defineProperty(this, \"mode\", {value:mode});\n\n\t\t// The length of this segment's unencoded data. Measured in characters for\n\t\t// numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.\n\t\t// Always zero or positive. Not the same as the data's bit length.\n\t\tObject.defineProperty(this, \"numChars\", {value:numChars});\n\n\t\t// Returns a new copy of the data bits of this segment.\n\t\tthis.getData = function() {\n\t\t\treturn bitData.slice(); // Make defensive copy\n\t\t};\n\t};\n\n\n\t/*---- Static factory functions (mid level) for QrSegment ----*/\n\n\t/*\n\t * Returns a segment representing the given binary data encoded in\n\t * byte mode. All input byte arrays are acceptable. Any text string\n\t * can be converted to UTF-8 bytes and encoded as a byte mode segment.\n\t */\n\tthis.QrSegment.makeBytes = function(data) {\n\t\tvar bb = new BitBuffer();\n\t\tdata.forEach(function(b) {\n\t\t\tbb.appendBits(b, 8);\n\t\t});\n\t\treturn new this(this.Mode.BYTE, data.length, bb);\n\t};\n\n\n\t/*\n\t * Returns a segment representing the given string of decimal digits encoded in numeric mode.\n\t */\n\tthis.QrSegment.makeNumeric = function(digits) {\n\t\tif (!this.NUMERIC_REGEX.test(digits))\n\t\t\tthrow \"String contains non-numeric characters\";\n\t\tvar bb = new BitBuffer();\n\t\tfor (var i = 0; i < digits.length; ) { // Consume up to 3 digits per iteration\n\t\t\tvar n = Math.min(digits.length - i, 3);\n\t\t\tbb.appendBits(parseInt(digits.substr(i, n), 10), n * 3 + 1);\n\t\t\ti += n;\n\t\t}\n\t\treturn new this(this.Mode.NUMERIC, digits.length, bb);\n\t};\n\n\n\t/*\n\t * Returns a segment representing the given text string encoded in alphanumeric mode.\n\t * The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n\t * dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n\t */\n\tthis.QrSegment.makeAlphanumeric = function(text) {\n\t\tif (!this.ALPHANUMERIC_REGEX.test(text))\n\t\t\tthrow \"String contains unencodable characters in alphanumeric mode\";\n\t\tvar bb = new BitBuffer();\n\t\tvar i;\n\t\tfor (i = 0; i + 2 <= text.length; i += 2) { // Process groups of 2\n\t\t\tvar temp = QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n\t\t\ttemp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n\t\t\tbb.appendBits(temp, 11);\n\t\t}\n\t\tif (i < text.length) // 1 character remaining\n\t\t\tbb.appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6);\n\t\treturn new this(this.Mode.ALPHANUMERIC, text.length, bb);\n\t};\n\n\n\t/*\n\t * Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n\t * The result may use various segment modes and switch modes to optimize the length of the bit stream.\n\t */\n\tthis.QrSegment.makeSegments = function(text) {\n\t\t// Select the most efficient segment encoding automatically\n\t\tif (text == \"\")\n\t\t\treturn [];\n\t\telse if (this.NUMERIC_REGEX.test(text))\n\t\t\treturn [this.makeNumeric(text)];\n\t\telse if (this.ALPHANUMERIC_REGEX.test(text))\n\t\t\treturn [this.makeAlphanumeric(text)];\n\t\telse\n\t\t\treturn [this.makeBytes(toUtf8ByteArray(text))];\n\t};\n\n\n\t/*\n\t * Returns a segment representing an Extended Channel Interpretation\n\t * (ECI) designator with the given assignment value.\n\t */\n\tthis.QrSegment.makeEci = function(assignVal) {\n\t\tvar bb = new BitBuffer();\n\t\tif (assignVal < 0)\n\t\t\tthrow \"ECI assignment value out of range\";\n\t\telse if (assignVal < (1 << 7))\n\t\t\tbb.appendBits(assignVal, 8);\n\t\telse if (assignVal < (1 << 14)) {\n\t\t\tbb.appendBits(2, 2);\n\t\t\tbb.appendBits(assignVal, 14);\n\t\t} else if (assignVal < 1000000) {\n\t\t\tbb.appendBits(6, 3);\n\t\t\tbb.appendBits(assignVal, 21);\n\t\t} else\n\t\t\tthrow \"ECI assignment value out of range\";\n\t\treturn new this(this.Mode.ECI, 0, bb);\n\t};\n\n\n\t// (Package-private) Calculates and returns the number of bits needed to encode the given segments at the\n\t// given version. The result is infinity if a segment has too many characters to fit its length field.\n\tthis.QrSegment.getTotalBits = function(segs, version) {\n\t\tvar result = 0;\n\t\tfor (var i = 0; i < segs.length; i++) {\n\t\t\tvar seg = segs[i];\n\t\t\tvar ccbits = seg.mode.numCharCountBits(version);\n\t\t\tif (seg.numChars >= (1 << ccbits))\n\t\t\t\treturn Infinity; // The segment's length doesn't fit the field's bit width\n\t\t\tresult += 4 + ccbits + seg.getData().length;\n\t\t}\n\t\treturn result;\n\t};\n\n\n\t/*---- Constants for QrSegment ----*/\n\n\tvar QrSegment = {}; // Private object to assign properties to. Not the same object as 'this.QrSegment'.\n\n\t// (Public) Describes precisely all strings that are encodable in numeric mode.\n\t// To test whether a string s is encodable: var ok = NUMERIC_REGEX.test(s);\n\t// A string is encodable iff each character is in the range 0 to 9.\n\tthis.QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n\n\t// (Public) Describes precisely all strings that are encodable in alphanumeric mode.\n\t// To test whether a string s is encodable: var ok = ALPHANUMERIC_REGEX.test(s);\n\t// A string is encodable iff each character is in the following set: 0 to 9, A to Z\n\t// (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n\tthis.QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n\n\t// (Private) The set of all legal characters in alphanumeric mode,\n\t// where each character value maps to the index in the string.\n\tQrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n\n\n\t/*---- Public helper enumeration ----*/\n\n\t/*\n\t * Describes how a segment's data bits are interpreted. Immutable.\n\t */\n\tthis.QrSegment.Mode = { // Constants\n\t\tNUMERIC : new Mode(0x1, [10, 12, 14]),\n\t\tALPHANUMERIC: new Mode(0x2, [ 9, 11, 13]),\n\t\tBYTE : new Mode(0x4, [ 8, 16, 16]),\n\t\tKANJI : new Mode(0x8, [ 8, 10, 12]),\n\t\tECI : new Mode(0x7, [ 0, 0, 0]),\n\t};\n\n\n\t// Private constructor.\n\tfunction Mode(mode, ccbits) {\n\t\t// (Package-private) The mode indicator bits, which is a uint4 value (range 0 to 15).\n\t\tObject.defineProperty(this, \"modeBits\", {value:mode});\n\n\t\t// (Package-private) Returns the bit width of the character count field for a segment in\n\t\t// this mode in a QR Code at the given version number. The result is in the range [0, 16].\n\t\tthis.numCharCountBits = function(ver) {\n\t\t\treturn ccbits[Math.floor((ver + 7) / 17)];\n\t\t};\n\t}\n\n\n\n\t/*---- Private helper functions and classes ----*/\n\n\t// Returns a new array of bytes representing the given string encoded in UTF-8.\n\tfunction toUtf8ByteArray(str) {\n\t\tstr = encodeURI(str);\n\t\tvar result = [];\n\t\tfor (var i = 0; i < str.length; i++) {\n\t\t\tif (str.charAt(i) != \"%\")\n\t\t\t\tresult.push(str.charCodeAt(i));\n\t\t\telse {\n\t\t\t\tresult.push(parseInt(str.substr(i + 1, 2), 16));\n\t\t\t\ti += 2;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\n\n\t/*\n\t * A private helper class that computes the Reed-Solomon error correction codewords for a sequence of\n\t * data codewords at a given degree. Objects are immutable, and the state only depends on the degree.\n\t * This class exists because each data block in a QR Code shares the same the divisor polynomial.\n\t * This constructor creates a Reed-Solomon ECC generator for the given degree. This could be implemented\n\t * as a lookup table over all possible parameter values, instead of as an algorithm.\n\t */\n\tfunction ReedSolomonGenerator(degree) {\n\t\tif (degree < 1 || degree > 255)\n\t\t\tthrow \"Degree out of range\";\n\n\t\t// Coefficients of the divisor polynomial, stored from highest to lowest power, excluding the leading term which\n\t\t// is always 1. For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the uint8 array {255, 8, 93}.\n\t\tvar coefficients = [];\n\n\t\t// Start with the monomial x^0\n\t\tfor (var i = 0; i < degree - 1; i++)\n\t\t\tcoefficients.push(0);\n\t\tcoefficients.push(1);\n\n\t\t// Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}),\n\t\t// drop the highest term, and store the rest of the coefficients in order of descending powers.\n\t\t// Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D).\n\t\tvar root = 1;\n\t\tfor (var i = 0; i < degree; i++) {\n\t\t\t// Multiply the current product by (x - r^i)\n\t\t\tfor (var j = 0; j < coefficients.length; j++) {\n\t\t\t\tcoefficients[j] = ReedSolomonGenerator.multiply(coefficients[j], root);\n\t\t\t\tif (j + 1 < coefficients.length)\n\t\t\t\t\tcoefficients[j] ^= coefficients[j + 1];\n\t\t\t}\n\t\t\troot = ReedSolomonGenerator.multiply(root, 0x02);\n\t\t}\n\n\t\t// Computes and returns the Reed-Solomon error correction codewords for the given\n\t\t// sequence of data codewords. The returned object is always a new byte array.\n\t\t// This method does not alter this object's state (because it is immutable).\n\t\tthis.getRemainder = function(data) {\n\t\t\t// Compute the remainder by performing polynomial division\n\t\t\tvar result = coefficients.map(function() { return 0; });\n\t\t\tdata.forEach(function(b) {\n\t\t\t\tvar factor = b ^ result.shift();\n\t\t\t\tresult.push(0);\n\t\t\t\tfor (var i = 0; i < result.length; i++)\n\t\t\t\t\tresult[i] ^= ReedSolomonGenerator.multiply(coefficients[i], factor);\n\t\t\t});\n\t\t\treturn result;\n\t\t};\n\t}\n\n\t// This static function returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and\n\t// result are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8.\n\tReedSolomonGenerator.multiply = function(x, y) {\n\t\tif (x >>> 8 != 0 || y >>> 8 != 0)\n\t\t\tthrow \"Byte out of range\";\n\t\t// Russian peasant multiplication\n\t\tvar z = 0;\n\t\tfor (var i = 7; i >= 0; i--) {\n\t\t\tz = (z << 1) ^ ((z >>> 7) * 0x11D);\n\t\t\tz ^= ((y >>> i) & 1) * x;\n\t\t}\n\t\tif (z >>> 8 != 0)\n\t\t\tthrow \"Assertion error\";\n\t\treturn z;\n\t};\n\n\n\n\t/*\n\t * A private helper class that represents an appendable sequence of bits (0s and 1s).\n\t * Mainly used by QrSegment. This constructor creates an empty bit buffer (length 0).\n\t */\n\tfunction BitBuffer() {\n\t\tArray.call(this);\n\n\t\t// Appends the given number of low-order bits of the given value\n\t\t// to this buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len.\n\t\tthis.appendBits = function(val, len) {\n\t\t\tif (len < 0 || len > 31 || val >>> len != 0)\n\t\t\t\tthrow \"Value out of range\";\n\t\t\tfor (var i = len - 1; i >= 0; i--) // Append bit by bit\n\t\t\t\tthis.push((val >>> i) & 1);\n\t\t};\n\t}\n\n\tBitBuffer.prototype = Object.create(Array.prototype);\n\tBitBuffer.prototype.constructor = BitBuffer;\n\n};\n\nexport default qrcodegen\n","export enum ErrorCorrectionLevel {\n L = 'L',\n M = 'M',\n Q = 'Q',\n H = 'H',\n}\n\nexport enum Environment {\n production = 'production',\n staging = 'staging',\n}\n\nexport enum ThemePreset {\n light = 'light',\n dark = 'dark',\n}\n","import qr from '../../utils/qrcode/qrcode';\nimport { Component, h, Prop } from '@stencil/core';\nimport { ErrorCorrectionLevel } from './enums';\n\nconst QRC = qr.QrCode;\n\n@Component({\n tag: 'qr-code',\n})\nexport class QRCode {\n @Prop() url!: string;\n @Prop() level?: ErrorCorrectionLevel = ErrorCorrectionLevel.M;\n @Prop() class?: string = '';\n @Prop() color?: string = 'black';\n\n render() {\n const getEcc = (ecc: string) => {\n ecc = ecc.toUpperCase();\n if (ecc === 'L') return QRC.Ecc.LOW;\n if (ecc === 'M') return QRC.Ecc.MEDIUM;\n if (ecc === 'Q') return QRC.Ecc.QUARTILE;\n return QRC.Ecc.HIGH;\n };\n\n const ecc = getEcc(this.level);\n\n const qr = QRC.encodeText(this.url, ecc);\n const qrcode = qr.svgObject();\n\n return (\n <svg class={this.class} viewBox={`0 0 ${qrcode.size} ${qrcode.size}`}>\n <path d={qrcode.path} fill={this.color} />\n </svg>\n );\n }\n}\n","/* UAParser.js v2.0.0-beta.2\n Copyright © 2012-2023 Faisal Salman <f@faisalman.com>\n AGPLv3 License */\n!function(i,u){\"use strict\";function e(i){for(var e={},t=0;t<i.length;t++)e[i[t].toUpperCase()]=i[t];return e}function n(i,e){if(!(typeof i===d&&0<i.length))return!!gi(i)&&-1!==xi(e).indexOf(xi(i));for(var t in i)if(xi(i[t])==xi(e))return 1}var w=\"\",c=\"function\",b=\"undefined\",d=\"object\",s=\"string\",p=\"major\",h=\"model\",f=\"name\",m=\"type\",g=\"vendor\",v=\"version\",x=\"architecture\",k=\"console\",y=\"mobile\",r=\"tablet\",t=\"smarttv\",o=\"wearable\",a=\"embedded\",l=\"user-agent\",_=500,S=\"brands\",T=\"formFactor\",C=\"fullVersionList\",q=\"platform\",A=\"platformVersion\",O=\"bitness\",z=\"sec-ch-ua\",N=z+\"-full-version-list\",I=z+\"-arch\",P=z+\"-\"+O,U=z+\"-form-factor\",H=z+\"-\"+y,E=z+\"-\"+h,M=z+\"-\"+q,R=M+\"-version\",j=[S,C,y,h,q,A,x,T,O],V=\"browser\",B=\"cpu\",F=\"device\",X=\"engine\",D=\"os\",G=\"result\",$=\"Amazon\",L=\"Apple\",W=\"ASUS\",K=\"BlackBerry\",Z=\"Google\",Q=\"Huawei\",Y=\"Lenovo\",J=\"LG\",ii=\"Microsoft\",ei=\"Motorola\",ti=\"Samsung\",oi=\"Sony\",ri=\"Xiaomi\",ai=\"Zebra\",si=\"Mobile \",ni=\" Browser\",wi=\"Chrome\",bi=\"Firefox\",li=\"Opera\",ui=\"Facebook\",ci=\"Windows\",di=typeof i!==b,pi=di&&i.navigator?i.navigator:u,hi=pi&&pi.userAgentData?pi.userAgentData:u,fi=function(i,e){var t,o={};for(t in i)o[t]=e[t]&&e[t].length%2==0?e[t].concat(i[t]):i[t];return o},mi=function(i){for(var e in i)return/^(browser|cpu|device|engine|os)$/.test(e)},gi=function(i){return typeof i===s},vi=function(i){if(!i)return u;for(var e,t=[],o=_i(/\\\\?\\\"/g,i).split(\",\"),r=0;r<o.length;r++)-1<o[r].indexOf(\";\")?(e=Ti(o[r]).split(\";v=\"),t[r]={brand:e[0],version:e[1]}):t[r]=Ti(o[r]);return t},xi=function(i){return gi(i)?i.toLowerCase():i},ki=function(i){return gi(i)?_i(/[^\\d\\.]/g,i).split(\".\")[0]:u},yi=function(i){for(var e in i){e=i[e];typeof e==d&&2==e.length?this[e[0]]=e[1]:this[e]=u}return this},_i=function(i,e){return gi(e)?e.replace(i,w):e},Si=function(i){return _i(/\\\\?\\\"/g,i)},Ti=function(i,e){if(gi(i))return i=_i(/^\\s\\s*/,i),typeof e===b?i:i.substring(0,_)},Ci=function(i,e){if(i&&e)for(var t,o,r,a,s,n=0;n<e.length&&!a;){for(var w=e[n],b=e[n+1],l=t=0;l<w.length&&!a&&w[l];)if(a=w[l++].exec(i))for(o=0;o<b.length;o++)s=a[++t],typeof(r=b[o])===d&&0<r.length?2===r.length?typeof r[1]==c?this[r[0]]=r[1].call(this,s):this[r[0]]=r[1]:3===r.length?typeof r[1]!==c||r[1].exec&&r[1].test?this[r[0]]=s?s.replace(r[1],r[2]):u:this[r[0]]=s?r[1].call(this,s,r[2]):u:4===r.length&&(this[r[0]]=s?r[3].call(this,s.replace(r[1],r[2])):u):this[r]=s||u;n+=2}},qi=function(i,e){for(var t in e)if(typeof e[t]===d&&0<e[t].length){for(var o=0;o<e[t].length;o++)if(n(e[t][o],i))return\"?\"===t?u:t}else if(n(e[t],i))return\"?\"===t?u:t;return e.hasOwnProperty(\"*\")?e[\"*\"]:i},Ai={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"},Oi={embedded:\"Automotive\",mobile:\"Mobile\",tablet:[\"Tablet\",\"EInk\"],smarttv:\"TV\",wearable:[\"VR\",\"XR\",\"Watch\"],\"?\":[\"Desktop\",\"Unknown\"],\"*\":u},zi={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[v,[f,si+\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[v,[f,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[f,v],[/opios[\\/ ]+([\\w\\.]+)/i],[v,[f,li+\" Mini\"]],[/\\bop(?:rg)?x\\/([\\w\\.]+)/i],[v,[f,li+\" GX\"]],[/\\bopr\\/([\\w\\.]+)/i],[v,[f,li]],[/\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i],[v,[f,\"Baidu\"]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[f,v],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[v,[f,\"UCBrowser\"]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i,/micromessenger\\/([\\w\\.]+)/i],[v,[f,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[v,[f,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[v,[f,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[v,[f,\"Yandex\"]],[/slbrowser\\/([\\w\\.]+)/i],[v,[f,\"Smart \"+Y+ni]],[/(avast|avg)\\/([\\w\\.]+)/i],[[f,/(.+)/,\"$1 Secure\"+ni],v],[/\\bfocus\\/([\\w\\.]+)/i],[v,[f,bi+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[v,[f,li+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[v,[f,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[v,[f,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[v,[f,li+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[v,[f,\"MIUI\"+ni]],[/fxios\\/([\\w\\.-]+)/i],[v,[f,si+bi]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[f,\"360\"+ni]],[/(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i],[[f,/(.+)/,\"$1\"+ni],v],[/samsungbrowser\\/([\\w\\.]+)/i],[v,[f,ti+\" Internet\"]],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[f,/_/g,\" \"],v],[/metasr[\\/ ]?([\\d\\.]+)/i],[v,[f,\"Sogou Explorer\"]],[/(sogou)mo\\w+\\/([\\d\\.]+)/i],[[f,\"Sogou Mobile\"],v],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[f,v],[/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[f],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[f,ui],v],[/(Klarna)\\/([\\w\\.]+)/i,/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(alipay)client\\/([\\w\\.]+)/i,/(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i],[f,v],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[v,[f,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[v,[f,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[v,[f,wi+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[f,wi+\" WebView\"],v],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[v,[f,\"Android\"+ni]],[/chrome\\/([\\w\\.]+) mobile/i],[v,[f,si+\"Chrome\"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[f,v],[/version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i],[v,[f,si+\"Safari\"]],[/iphone .*mobile(?:\\/\\w+ | ?)safari/i],[[f,si+\"Safari\"]],[/version\\/([\\w\\.\\,]+) .*(safari)/i],[v,f],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[f,[v,\"1\"]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[f,v],[/(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i],[[f,si+bi],v],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[f,\"Netscape\"],v],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[v,[f,bi+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[f,v],[/(cobalt)\\/([\\w\\.]+)/i],[f,[v,/[^\\d\\.]+./,w]]],cpu:[[/\\b(?:(amd|x|x86[-_]?|wow|win)64)\\b/i],[[x,\"amd64\"]],[/(ia32(?=;))/i,/((?:i[346]|x)86)[;\\)]/i],[[x,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[x,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[x,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[x,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[x,/ower/,w,xi]],[/(sun4\\w)[;\\)]/i],[[x,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[x,xi]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[h,[g,ti],[m,r]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[h,[g,ti],[m,y]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[h,[g,L],[m,y]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[h,[g,L],[m,r]],[/(macintosh);/i],[h,[g,L]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[h,[g,\"Sharp\"],[m,y]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[h,[g,Q],[m,r]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[h,[g,Q],[m,y]],[/\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[h,/_/g,\" \"],[g,ri],[m,y]],[/oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[h,/_/g,\" \"],[g,ri],[m,r]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[h,[g,\"OPPO\"],[m,y]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[h,[g,\"Vivo\"],[m,y]],[/\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i],[h,[g,\"Realme\"],[m,y]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[h,[g,ei],[m,y]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[h,[g,ei],[m,r]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[h,[g,J],[m,r]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[h,[g,J],[m,y]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[h,[g,Y],[m,r]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[h,/_/g,\" \"],[g,\"Nokia\"],[m,y]],[/(pixel c)\\b/i],[h,[g,Z],[m,r]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[h,[g,Z],[m,y]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[h,[g,oi],[m,y]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[h,\"Xperia Tablet\"],[g,oi],[m,r]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[h,[g,\"OnePlus\"],[m,y]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[h,[g,$],[m,r]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[h,/(.+)/g,\"Fire Phone $1\"],[g,$],[m,y]],[/(playbook);[-\\w\\),; ]+(rim)/i],[h,g,[m,r]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[h,[g,K],[m,y]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[h,[g,W],[m,r]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[h,[g,W],[m,y]],[/(nexus 9)/i],[h,[g,\"HTC\"],[m,r]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[g,[h,/_/g,\" \"],[m,y]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[h,[g,\"Acer\"],[m,r]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[h,[g,\"Meizu\"],[m,y]],[/; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i],[h,[g,\"Ulefone\"],[m,y]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[g,h,[m,y]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i],[g,h,[m,r]],[/(surface duo)/i],[h,[g,ii],[m,r]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[h,[g,\"Fairphone\"],[m,y]],[/(shield[\\w ]+) b/i],[h,[g,\"Nvidia\"],[m,r]],[/(sprint) (\\w+)/i],[g,h,[m,y]],[/(kin\\.[onetw]{3})/i],[[h,/\\./g,\" \"],[g,ii],[m,y]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[h,[g,ai],[m,r]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[h,[g,ai],[m,y]],[/smart-tv.+(samsung)/i],[g,[m,t]],[/hbbtv.+maple;(\\d+)/i],[[h,/^/,\"SmartTV\"],[g,ti],[m,t]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[g,J],[m,t]],[/(apple) ?tv/i],[g,[h,L+\" TV\"],[m,t]],[/crkey/i],[[h,wi+\"cast\"],[g,Z],[m,t]],[/droid.+aft(\\w+)( bui|\\))/i],[h,[g,$],[m,t]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[h,[g,\"Sharp\"],[m,t]],[/(bravia[\\w ]+)( bui|\\))/i],[h,[g,oi],[m,t]],[/(mitv-\\w{5}) bui/i],[h,[g,ri],[m,t]],[/Hbbtv.*(technisat) (.*);/i],[g,h,[m,t]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[g,Ti],[h,Ti],[m,t]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[m,t]],[/(ouya)/i,/(nintendo) (\\w+)/i],[g,h,[m,k]],[/droid.+; (shield) bui/i],[h,[g,\"Nvidia\"],[m,k]],[/(playstation \\w+)/i],[h,[g,oi],[m,k]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[h,[g,ii],[m,k]],[/((pebble))app/i],[g,h,[m,o]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[h,[g,L],[m,o]],[/droid.+; (glass) \\d/i],[h,[g,Z],[m,o]],[/droid.+; (wt63?0{2,3})\\)/i],[h,[g,ai],[m,o]],[/(quest( 2| pro)?)/i],[h,[g,ui],[m,o]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[g,[m,a]],[/(aeobc)\\b/i],[h,[g,$],[m,a]],[/droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i],[h,[m,y]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[h,[m,r]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[m,r]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[m,y]],[/(android[-\\w\\. ]{0,9});.+buil/i],[h,[g,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[v,[f,\"EdgeHTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[v,[f,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[f,v],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[v,f]],os:[[/microsoft (windows) (vista|xp)/i],[f,v],[/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i],[f,[v,qi,Ai]],[/windows nt 6\\.2; (arm)/i,/windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[v,qi,Ai],[f,ci]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[v,/_/g,\".\"],[f,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[f,\"macOS\"],[v,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[v,f],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[f,v],[/\\(bb(10);/i],[v,[f,K]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[v,[f,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[v,[f,bi+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[v,[f,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[v,[f,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[v,[f,wi+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[f,\"Chrome OS\"],v],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) (\\w+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[f,v],[/(sunos) ?([\\w\\.\\d]*)/i],[[f,\"Solaris\"],v],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[f,v]]},Ni=(wi={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},yi.call(wi.init,[[V,[f,v,p]],[B,[x]],[F,[m,h,g]],[X,[f,v]],[D,[f,v]]]),yi.call(wi.isIgnore,[[V,[v,p]],[X,[v]],[D,[v]]]),yi.call(wi.isIgnoreRgx,[[V,/ ?browser$/i],[D,/ ?os$/i]]),yi.call(wi.toString,[[V,[f,v]],[B,[x]],[F,[g,h]],[X,[f,v]],[D,[f,v]]]),wi),Ii=function(e,i){var t=Ni.init[i],o=Ni.isIgnore[i]||0,r=Ni.isIgnoreRgx[i]||0,a=Ni.toString[i]||0;function s(){yi.call(this,t)}return s.prototype.getItem=function(){return e},s.prototype.withClientHints=function(){return hi?hi.getHighEntropyValues(j).then(function(i){return e.setCH(new Pi(i,!1)).parseCH().get()}):e.parseCH().get()},s.prototype.withFeatureCheck=function(){return e.detectFeature().get()},i!=G&&(s.prototype.is=function(i){var e,t=!1;for(e in this)if(this.hasOwnProperty(e)&&!n(o,e)&&xi(r?_i(r,this[e]):this[e])==xi(r?_i(r,i):i)){if(t=!0,i!=b)break}else if(i==b&&t){t=!t;break}return t},s.prototype.toString=function(){var i,e=w;for(i in a)typeof this[a[i]]!==b&&(e+=(e?\" \":w)+this[a[i]]);return e||b}),hi||(s.prototype.then=function(i){var e=this,t=function(){for(var i in e)e.hasOwnProperty(i)&&(this[i]=e[i])};t.prototype={is:s.prototype.is,toString:s.prototype.toString};t=new t;return i(t),t}),new s};function Pi(i,e){if(i=i||{},yi.call(this,j),e)yi.call(this,[[S,vi(i[z])],[C,vi(i[N])],[y,/\\?1/.test(i[H])],[h,Si(i[E])],[q,Si(i[M])],[A,Si(i[R])],[x,Si(i[I])],[T,vi(i[U])],[O,Si(i[P])]]);else for(var t in i)this.hasOwnProperty(t)&&typeof i[t]!==b&&(this[t]=i[t])}function Ui(i,e,t,o){return this.get=function(i){return i?this.data.hasOwnProperty(i)?this.data[i]:u:this.data},this.set=function(i,e){return this.data[i]=e,this},this.setCH=function(i){return this.uaCH=i,this},this.detectFeature=function(){if(pi&&pi.userAgent==this.ua)switch(this.itemType){case V:pi.brave&&typeof pi.brave.isBrave==c&&this.set(f,\"Brave\");break;case F:!this.get(m)&&hi&&hi[y]&&this.set(m,y),\"Macintosh\"==this.get(h)&&pi&&typeof pi.standalone!==b&&pi.maxTouchPoints&&2<pi.maxTouchPoints&&this.set(h,\"iPad\").set(m,r);break;case D:!this.get(f)&&hi&&hi[q]&&this.set(f,hi[q]);break;case G:var e=this.data,i=function(i){return e[i].getItem().detectFeature().get()};this.set(V,i(V)).set(B,i(B)).set(F,i(F)).set(X,i(X)).set(D,i(D))}return this},this.parseUA=function(){return this.itemType!=G&&Ci.call(this.data,this.ua,this.rgxMap),this.itemType==V&&this.set(p,ki(this.get(v))),this},this.parseCH=function(){var i,e=this.uaCH,t=this.rgxMap;switch(this.itemType){case V:var o,r=e[C]||e[S];if(r)for(var a in r){var s=_i(/(Google|Microsoft) /,r[a].brand||r[a]),a=r[a].version;/not.a.brand/i.test(s)||o&&(!/chrom/i.test(o)||/chromi/i.test(s))||(this.set(f,s).set(v,a).set(p,ki(a)),o=s)}break;case B:var n=e[x];n&&(n&&\"64\"==e[O]&&(n+=\"64\"),Ci.call(this.data,n+\";\",t));break;case F:if(e[y]&&this.set(m,y),e[h]&&this.set(h,e[h]),\"Xbox\"==e[h]&&this.set(m,k).set(g,ii),e[T]){if(\"string\"!=typeof e[T])for(var w=0;!i&&w<e[T].length;)i=qi(e[T][w++],Oi);else i=qi(e[T],Oi);this.set(m,i)}break;case D:n=e[q];n&&(l=e[A],n==ci&&(l=13<=parseInt(ki(l),10)?\"11\":\"10\"),this.set(f,n).set(v,l)),this.get(f)==ci&&\"Xbox\"==e[h]&&this.set(f,\"Xbox\").set(v,u);break;case G:var b=this.data,l=function(i){return b[i].getItem().setCH(e).parseCH().get()};this.set(V,l(V)).set(B,l(B)).set(F,l(F)).set(X,l(X)).set(D,l(D))}return this},yi.call(this,[[\"itemType\",i],[\"ua\",e],[\"uaCH\",o],[\"rgxMap\",t],[\"data\",Ii(this,i)]]),this}function Hi(i,e,t){if(typeof i===d?(e=mi(i)?(typeof e===d&&(t=e),i):(t=i,u),i=u):typeof i!==s||mi(e)||(t=e,e=u),!(this instanceof Hi))return new Hi(i,e,t).getResult();var o=typeof i===s?i:pi&&pi.userAgent?pi.userAgent:t&&t[l]?t[l]:w,r=new Pi(t,!0),a=e?fi(zi,e):zi,e=function(i){return i==G?function(){return new Ui(i,o,a,r).set(\"ua\",o).set(V,this.getBrowser()).set(B,this.getCPU()).set(F,this.getDevice()).set(X,this.getEngine()).set(D,this.getOS()).get()}:function(){return new Ui(i,o,a[i],r).parseUA().get()}};return yi.call(this,[[\"getBrowser\",e(V)],[\"getCPU\",e(B)],[\"getDevice\",e(F)],[\"getEngine\",e(X)],[\"getOS\",e(D)],[\"getResult\",e(G)],[\"getUA\",function(){return o}],[\"setUA\",function(i){return gi(i)&&(o=i.length>_?Ti(i,_):i),this}]]).setUA(o),this}Hi.VERSION=\"2.0.0-beta.2\",Hi.BROWSER=e([f,v,p]),Hi.CPU=e([x]),Hi.DEVICE=e([h,g,m,k,y,t,r,o,a]),Hi.ENGINE=Hi.OS=e([f,v]),typeof exports!==b?(typeof module!==b&&module.exports&&(exports=module.exports=Hi),exports.UAParser=Hi):typeof define===c&&define.amd?define(function(){return Hi}):di&&(i.UAParser=Hi);var Ei,Mi=di&&(i.jQuery||i.Zepto);Mi&&!Mi.ua&&(Ei=new Hi,Mi.ua=Ei.getResult(),Mi.ua.get=function(){return Ei.getUA()},Mi.ua.set=function(i){Ei.setUA(i);var e,t=Ei.getResult();for(e in t)Mi.ua[e]=t[e]})}(\"object\"==typeof window?window:this);","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { Environment } from '../components/zero-account/enums';\nimport { Build } from '@stencil/core';\n\nexport const format = (appId: string): string => {\n return appId || '';\n}\n\nexport class Logger {\n private readonly environment: Environment;\n constructor(environment: Environment) {\n this.environment = environment;\n }\n log = (...args) => {\n if (this.environment !== 'production' && Build.isDev) {\n console.clear()\n console.log(...args);\n }\n }\n}\n","export function appendToParams(url, getParamsToUpdate) {\n if (typeof getParamsToUpdate !== \"object\") return false;\n\n // remove consecutive duplicate '&' chars from the url\n url = url.replace(/(&)\\1+/g, '&')\n //Note: substr(1) removes first character (getting rid of possible \"?\")\n //\t\t\t(does nothing with empty string)\n let getParams = url.substr(1).split('&');\n\n //avoid extra \"&\" at the beginning if current document.location.search was empty or 1 char\n if ((getParams.length < 1) || ((getParams.length === 1) && (getParams[0] === \"\")))\n getParams = [];\n\n let searchBuffer;\n let found;\n\n for (let k in getParamsToUpdate) {\n if (!getParamsToUpdate.hasOwnProperty(k)) continue;\n\n let key = encodeURIComponent(k);\n let value = encodeURIComponent(getParamsToUpdate[k]);\n\n searchBuffer = [];\n found = false;\n\n let paramsLength = getParams.length - 1\n //from the end to start...\n for (let i = paramsLength; i >= 0; --i) {\n searchBuffer = getParams[i].split('=');\n\n if (searchBuffer[0] === key) {\n //found key!\n getParams[i] = key + '=' + value;\n found = true;\n break;\n }\n }\n\n if (!found) getParams.push(key + '=' + value);\n }\n\n return getParams.join('&');\n}","import { h } from '@stencil/core';\n\nconst Logo = ({ className = '', color = '#7263FA' }) => {\n return (\n <svg\n class={className}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox='0 0 256 256'\n fill=\"none\">\n <path fill={color} d=\"M128 185h57v57h-57v-57ZM128 14h57v57h-57V14ZM71 185h57v57H71v-57ZM71 14h57v57H71V14ZM14 71h57v57H14V71ZM185 71h57v57h-57V71ZM71 14v57H14l57-57ZM14 128h57v57H14v-57ZM185 128h57v57h-57v-57ZM14 185h57v57l-57-57ZM185 14l57 57h-57V14Z\"/>\n </svg>\n );\n};\n\nexport default Logo;\n","\nconst maxRetries = 30\nconst send = (url: string, opts: Options, request: XMLHttpRequest, errorCount: number): void => {\n if (errorCount >= maxRetries) {\n request.abort();\n request = null\n return\n }\n let limit = errorCount\n ? Math.pow(2, errorCount - 1) * opts.startLimit\n : 0;\n limit = limit < opts.maxLimit ? limit : opts.maxLimit\n const pause = Math.random() * limit;\n setTimeout(function () {\n request.open('POST', url, true)\n for (const k in opts.headers) {\n if (Object.prototype.hasOwnProperty.call(opts.headers, k)) {\n request.setRequestHeader(k, opts.headers[k])\n }\n }\n request.send()\n }, pause)\n}\n\ntype Options = {\n startLimit?: number;\n maxLimit?: number;\n enableWithCredentials?: boolean;\n headers?: any\n}\n\nconst xhr = (url: string, opts: Options, callback: (v: string) => void): XMLHttpRequest => {\n opts = {startLimit: 100, maxLimit: 3 * 1000, enableWithCredentials: false, ...opts};\n let errorCount = 0;\n const request = new XMLHttpRequest();\n if (opts.enableWithCredentials) request.withCredentials = true;\n const retry = (): void => send(url, opts, request, ++errorCount);\n request.addEventListener('error', retry);\n request.addEventListener('timeout', retry);\n request.addEventListener('load', () => {\n if (request.status >= 200 && request.status < 300) {\n return callback(request.responseText)\n }\n retry()\n })\n\n send(url, opts, request, errorCount)\n return request;\n}\n\nconst http = {\n send: xhr,\n}\nexport default http;\n","import { UAParser } from 'ua-parser-js';\nimport { Environment } from './enums';\nimport http from '../../utils/request';\n\nconst DEFAULT_CALLBACK_URL = window.location.origin + '/zero/auth';\nconst API_URL = 'wss://ws.0account.com/ws';\nconst API_URL_STAGING = 'wss://staging.ws.0account.com/ws';\n\nconst PREFIX = '0account';\nconst SESSION_ID = 'session-id';\nconst SESSION_TOKEN = 'session-token';\n\nconst fromWidgetUUIDUpdated = 'from-widget-uuid-updated';\nconst fromWidgetLoggedOut = 'from-widget-logged-out';\n// const fromWidgetAuthenticationStarted = 'from-widget-authentication-started';\nconst fromWidgetEnsureSession = 'from-widget-ensure-session';\n\nconst toWidgetLogout = 'to-widget-logout';\nconst toWidgetApproved = 'to-widget-approved';\nconst toAnyError = 'to-any-error';\n// CustomEvents\nconst zeroLogout = '0account-logout';\nconst zeroAuthenticated = '0account-authenticated';\n// const zeroAuthenticationFailed = '0account-authentication-failed';\n\nfunction debounce(func, timeout = 300) {\n let timer;\n return () => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func();\n }, timeout);\n };\n}\n\ntype Options = {\n callbackURL: string,\n updateInterval: number,\n enableWithCredentials: boolean,\n uaParser: UAParser,\n log: (...args) => void\n env?: Environment,\n}\n\n\nexport class WS {\n private readonly appId: string;\n private socket: WebSocket;\n private uaParser: UAParser;\n private readonly log: (...args) => void;\n private uuid: string;\n private wsURL = API_URL;\n private callbackURL = DEFAULT_CALLBACK_URL;\n private request: XMLHttpRequest;\n private readonly updateInterval: number;\n private enableWithCredentials: boolean;\n\n constructor(appId: string, opts: Options) {\n if (!opts.env) opts.env = Environment.production\n\n this.appId = appId;\n this.uaParser = opts.uaParser;\n this.callbackURL = opts.callbackURL;\n this.updateInterval = opts.updateInterval;\n this.enableWithCredentials = opts.enableWithCredentials;\n this.log = opts.log;\n if (opts.env !== Environment.production) this.wsURL = API_URL_STAGING;\n this.init();\n }\n\n private deviceInfo() {\n return {\n appId: this.appId,\n browser: this.uaParser.getBrowser().withFeatureCheck().name,\n os: this.uaParser.getOS().withFeatureCheck().name,\n // TODO: handle these on backend:\n // device: `${this.uaParser.getDevice().vendor} ${this.uaParser.getDevice().model}`,\n // all: this.uaParser.getResult()\n };\n }\n\n private reinit() {\n const retry = debounce(this.init.bind(this), 1000)\n retry()\n }\n\n private init() {\n const onopen = (_) => {\n this.send(fromWidgetEnsureSession, this.deviceInfo());\n };\n const onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n this.handleMessage(data);\n } catch (e) {\n this.log(e);\n }\n };\n const onerror = (_) => {\n if (this.socket && (this.socket.readyState !== WebSocket.CLOSED\n && this.socket.readyState !== WebSocket.CLOSING)) {\n this.socket.close();\n }\n };\n const onclose = (_) => {\n if (this.socket) {\n this.socket.removeEventListener('open', onopen);\n this.socket.removeEventListener('message', onmessage);\n this.socket.removeEventListener('error', onerror);\n this.socket.removeEventListener('close', onclose);\n delete this.socket;\n }\n this.reinit();\n };\n\n if (this.socket) {\n this.socket.removeEventListener('open', onopen);\n this.socket.removeEventListener('message', onmessage);\n this.socket.removeEventListener('error', onerror);\n this.socket.removeEventListener('close', onclose);\n }\n this.socket = new WebSocket(this.wsURL);\n this.socket.addEventListener('open', onopen);\n this.socket.addEventListener('message', onmessage);\n this.socket.addEventListener('error', onerror);\n this.socket.addEventListener('close', onclose);\n }\n\n updateUUID(uuid: string) {\n this.uuid = uuid;\n this.send(fromWidgetUUIDUpdated, this.deviceInfo());\n }\n\n logout() {\n this.send(fromWidgetLoggedOut, this.deviceInfo());\n }\n\n send(action, data) {\n if (!this.socket || !this.socket.readyState || this.socket.readyState !== WebSocket.OPEN) {\n const retry = debounce(this.send.bind(this, action, data), 1000)\n return retry();\n }\n\n const msg: any = {\n action: action,\n timeout: `${this.updateInterval}ms`,\n uuid: this.uuid,\n appId: `${this.appId}`,\n message: {},\n };\n if (action === fromWidgetEnsureSession || action === fromWidgetLoggedOut) {\n const sessionId = localStorage.getItem(`${PREFIX}_${SESSION_ID}`);\n const sessionToken = localStorage.getItem(`${PREFIX}_${SESSION_TOKEN}`);\n if (!sessionId || !sessionToken) return;\n msg.sessionId = sessionId;\n msg.sessionToken = sessionToken;\n }\n\n if (data) msg.message = data;\n this.socket.send(JSON.stringify(msg));\n }\n\n onZeroAuth() {\n if (this.request) this.request.abort();\n this.request = http.send(this.callbackURL,\n {\n enableWithCredentials: this.enableWithCredentials,\n headers: {\n 'x-0account-uuid': this.uuid,\n 'x-0account-auth': 'true',\n },\n },\n (responseText) => {\n try {\n const data = JSON.parse(responseText);\n this.dispatchEventAndWsSend(zeroAuthenticated, data);\n } catch (err) {\n this.log(err);\n }\n },\n );\n }\n\n private handleMessage(msg: any) {\n switch (msg.action) {\n case toWidgetApproved:\n this.onZeroAuth();\n localStorage.setItem(`${PREFIX}_${SESSION_ID}`, msg.sessionId);\n localStorage.setItem(`${PREFIX}_${SESSION_TOKEN}`, msg.message);\n break;\n case toWidgetLogout:\n localStorage.removeItem(`${PREFIX}_${SESSION_ID}`);\n localStorage.removeItem(`${PREFIX}_${SESSION_TOKEN}`);\n this.dispatchEvent(zeroLogout);\n this.send(fromWidgetLoggedOut, this.deviceInfo());\n break;\n case toAnyError:\n this.log('ws error', msg);\n break;\n default:\n this.log('incorrect action', msg.action, msg);\n }\n }\n\n private dispatchEventAndWsSend(name, data) {\n this.dispatchEvent(name, data);\n this.send('from-widget-' + name, data);\n }\n\n private dispatchEvent(name: string, data?: any) {\n let event = new CustomEvent(name);\n if (data) event = new CustomEvent(name, { detail: data });\n document.dispatchEvent(event);\n }\n\n}\n",":host {\n --primary-color: #7263FA;\n --primary-background-color: #FFF;\n --theme-based-radius: 0px;\n --theme-based-padding: 0px;\n\n /* buttons */\n --button-animation-duration: 200ms;\n --text-color: #000;\n --button-border-color: #B2D4FF;\n --button-border-radius: 9999px;\n --button-background-color: var(--primary-background-color);\n\n /* modal */\n --modal-logo-border-color: var(--primary-color);\n --modal-animation-duration: 350ms;\n --easing: cubic-bezier(0.16, 1, 0.3, 1);\n --disabled-background-color: rgba(0, 0, 0, 0.12);\n --disabled-color: rgba(0, 0, 0, 0.3);\n /*--easing: ease;*/\n\n font-family: sans-serif;\n}\n\n.dark {\n --button-background-color: rgb(30, 41, 59);\n --primary-background-color: rgb(30, 41, 59);\n --button-border-color: #FFFFF9;\n --text-color: #FFFFF9;\n --modal-logo-border-color: #CCC;\n --disabled-background-color: rgba(255, 255, 255, 0.12);\n --disabled-color: rgba(255, 255, 255, 0.3);\n --theme-based-radius: 4px;\n --theme-based-padding: 8px;\n}\n\n.button {\n font-size: 16px;\n color: var(--text-color);\n cursor: pointer;\n padding: 8px 12px 8px 10px;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n border: 1px solid var(--button-border-color);\n background-color: var(--button-background-color);\n border-radius: var(--button-border-radius);\n}\n\n.button:hover {\n transition: box-shadow var(--button-animation-duration);\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n /* lighter shade of --button-background-color */\n background: linear-gradient(\n to top,\n rgba(200, 200, 200, 0.1),\n rgba(200, 200, 200, 0.1)\n ) var(--button-background-color)\n}\n\n.button:active {\n transition: box-shadow var(--button-animation-duration);\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.button__logo {\n width: 1.3rem;\n}\n\n/* -------- modal --------- */\n\n.modal {\n display: flex;\n z-index: 9999;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 1;\n background-color: rgba(0, 0, 0, 0.3);\n transition: opacity var(--modal-animation-duration) var(--easing);\n}\n\n.modal--hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.modal__content {\n max-width: 240px;\n border-radius: 4px;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n background-color: var(--primary-background-color);\n transform: scale(1);\n transition: transform var(--modal-animation-duration) var(--easing);\n}\n\n.modal--hidden .modal__content {\n transform: scale(0.5);\n}\n\n.modal__qrcode__container {\n position: relative;\n background-color: white;\n border-radius: var(--theme-based-radius);\n padding: var(--theme-based-padding);\n}\n\n.modal__qrcode {\n border-radius: 4px;\n width: 100%;\n height: auto;\n}\n\n.modal__logo {\n padding: 8px;\n border: 2px var(--modal-logo-border-color) solid;\n border-radius: var(--button-border-radius);\n background-color: var(--primary-background-color);\n position: absolute;\n width: 16%;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -50%, 0);\n}\n\n.modal-animated .circle__overlay {\n width: 100%;\n height: 100%;\n}\n\n.modal-animated .modal__qrcode {\n filter: blur(2px);\n}\n\n.modal-animated .modal__logo {\n border: none;\n animation: spin 2.5s var(--easing) infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: translate3d(-50%, -50%, 0) rotate(0deg);\n }\n 50% {\n transform: translate3d(-50%, -50%, 0) rotate(180deg);\n }\n 100% {\n transform: translate3d(-50%, -50%, 0) rotate(360deg);\n }\n}\n\n.modal__buttons {\n width: 100%;\n flex-direction: column;\n align-items: center;\n margin-top: 14px;\n display: flex;\n text-align: center;\n}\n\n.modal:not(.modal--hidden) .modal__button {\n transform: scale(1) translate3d(0, 0, 0);\n}\n\n.modal:not(.modal--hidden) .modal__link {\n transform: scale(1) translate3d(0, 0, 0);\n}\n\n.modal__button {\n transform: scale(0) translate3d(0, 150px, 0);\n transition: calc(var(--modal-animation-duration) + 50ms) var(--easing);\n transition-property: scale, transform, background-color;\n cursor: pointer;\n padding: 12px;\n font-size: 14px;\n background-color: var(--primary-color);\n color: white;\n border: none;\n border-radius: 6px;\n width: 100%;\n}\n\n.modal__button:hover {\n /* darker shade of --primary-color */\n background: linear-gradient(\n to top,\n rgba(0, 0, 0, 0.1),\n rgba(0, 0, 0, 0.1)\n ) var(--primary-color);\n}\n\n.modal__button:disabled {\n background-color: var(--disabled-background-color);\n color: var(--disabled-color);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.modal__link {\n transform: scale(0) translate3d(0, 150px, 0);\n transition: calc(var(--modal-animation-duration) + 150ms) var(--easing);\n transition-property: scale, transform;\n font-size: 0.8rem;\n padding: 10px 20px 0;\n color: var(--primary-color);\n width: 100%;\n text-decoration: underline rgba(0, 0, 0, 0);\n}\n\n.modal__link:hover {\n text-decoration-color:var(--primary-color);\n}\n\n.modal__close-button {\n position: absolute;\n top: -26px;\n right: -26px;\n width: 24px;\n height: 24px;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 10px;\n cursor: pointer;\n transition: background-color var(--modal-animation-duration) var(--easing);\n}\n\n.modal__close-button:hover {\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.modal__close-button:before,\n.modal__close-button:after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 1px;\n background-color: rgba(255, 255, 255, 0.8);\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n.modal__close-button:after {\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n/* circle ripple */\n\n.circle__overlay{\n overflow: hidden;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n background-color: var(--primary-background-color);\n border-radius: var(--button-border-radius);\n width: 10%;\n height: 10%;\n border: 2px var(--modal-logo-border-color) solid;\n transition: calc(var(--modal-animation-duration) + 200ms) var(--easing);\n transition-property: width, height, opacity;\n}\n\n.circle {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background-color: #E0E0E0;\n animation: circle__ripple 2s linear infinite;\n}\n\n.circle--medium {\n width: 150px;\n height: 150px;\n animation-duration: 2.5s;\n}\n\n.circle--large {\n width: 200px;\n height: 200px;\n animation-duration: 3s;\n}\n\n@keyframes circle__ripple {\n 0% {\n transform: translate(-50%, -50%) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n}\n","import { Element, Component, h, Host, Prop, Listen, State } from '@stencil/core';\nimport { UAParser } from 'ua-parser-js';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { Environment, ErrorCorrectionLevel, ThemePreset } from './enums';\nimport { Logger } from '../../utils/utils';\nimport * as utilsURL from '../../utils/url';\nimport Logo from './logo';\nimport { WS } from './websocket';\n\nconst maxInterval = 59 * 60 * 1000;\nconst minInterval = 10 * 1000;\n\nconst DEFAULT_CALLBACK_URL = window.location.origin + '/zero/auth';\nconst ANIMATION_DURATION = 3000\n\n@Component({\n tag: 'zero-account',\n styleUrl: 'zero-account.css',\n shadow: true,\n})\nexport class ZeroAccount {\n @Prop() appId!: string;\n @Prop() updateInterval?: number = 3 * 60 * 1000;\n @Prop({attribute: 'callback-url'}) callbackURL: string = DEFAULT_CALLBACK_URL;\n @Prop() level?: ErrorCorrectionLevel = ErrorCorrectionLevel.M;\n @Prop() environment?: Environment = Environment.production;\n @Prop() enableWithCredentials?: boolean = false;\n @Prop() themePreset?: ThemePreset = ThemePreset.light;\n @Prop() autoStartApp? = true;\n\n private logger: Logger;\n private uaParser: UAParser;\n private ws: WS;\n\n private timer: number;\n private animationTimer: number;\n\n @Element() host: HTMLElement;\n private modalEl: HTMLDivElement;\n private closeButtonEl: HTMLDivElement;\n\n @State() modalOpen = false;\n @State() isAnimating = false;\n @State() url = '';\n\n private getUpdateInterval() {\n // make sure the provided value is within bounds\n return Math.min(Math.max(this.updateInterval, minInterval), maxInterval);\n }\n private refreshQR = (ignoreAnimate = false)=> {\n this.initServices();\n const update = () => {\n this.restartTimer();\n this.updateURL()\n }\n if (ignoreAnimate) return update();\n\n this.isAnimating = true\n this.animationTimer = window.setTimeout(()=>{\n update()\n this.isAnimating = false\n }, ANIMATION_DURATION)\n }\n\n @Listen('0account-toggle-modal', { target: 'document' })\n toggleModal() {\n this.modalOpen = !this.modalOpen;\n if (this.modalOpen) this.refreshQR(true)\n if ((this.modalOpen && this.autoStartApp) || this.isMobile()) this.openApp()\n }\n\n @Listen('0account-close-modal', { target: 'document' })\n @Listen('0account-authenticated', { target: 'document' })\n private _closeModal() {\n this.modalOpen = false;\n this.stopTimer()\n }\n\n @Listen('0account-logout', { target: 'document' })\n logout() {\n this.ws.logout()\n }\n\n private closeModal(e: MouseEvent) {\n if (e.target !== this.modalEl && e.target !== this.closeButtonEl) {\n return e.stopPropagation();\n }\n this._closeModal()\n }\n\n @Listen('0account-open-app', { target: 'document' })\n openApp() {\n this.refreshQR(true)\n window.location.assign(this.url)\n }\n\n render() {\n const logoColor = this.themePreset === ThemePreset.light ? '#7263FA': '#FFFFF9'\n const qrColor = '#000'\n return (\n <Host>\n <slot />\n {this.host.childNodes.length === 0 &&\n <button class={`button ${this.themePreset}`} onClick={()=>this.toggleModal()}>\n <Logo className='button__logo' color={logoColor} />\n use 0account\n </button>\n }\n <div\n ref={el => this.modalEl = el}\n onClick={(e) => this.closeModal(e)}\n class={`modal ${this.themePreset} ${this.isAnimating ? 'modal-animated': ''} ${this.modalOpen ? '' : 'modal--hidden'}`}>\n <div class='modal__content'>\n <div ref={el => this.closeButtonEl = el} class='modal__close-button'></div>\n <div class='modal__qrcode__container'>\n <qr-code url={this.url} class={`modal__qrcode`} level={this.level} color={qrColor}/>\n <div class='circle__overlay'>\n <div class='circle'></div>\n <div class='circle circle--medium'></div>\n <div class='circle circle--large'></div>\n </div>\n <Logo className='modal__logo' color={logoColor} />\n </div>\n <div class='modal__buttons'>\n <button disabled={this.isAnimating} onClick={()=>this.openApp()} class='modal__button'>Open 0account</button>\n <a href='https://0account.com/downloads' class='modal__link'>Download</a>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n private hideOnEsc = (e) => {\n if ((e.key === 'Escape' || e.key === 'Esc')) {\n this.modalOpen = false;\n }\n };\n\n initServices() {\n if (this.logger && this.uaParser && this.ws) return;\n this.logger = new Logger(this.environment);\n this.uaParser = new UAParser()\n this.ws = new WS(this.appId, {\n updateInterval: this.getUpdateInterval(),\n enableWithCredentials: this.enableWithCredentials,\n callbackURL: this.callbackURL,\n uaParser: this.uaParser,\n env: this.environment,\n log: this.log,\n })\n }\n // called only once\n componentWillLoad() {\n this.initServices()\n\n // make sure we initQR\n this.refreshQR(true)\n document.addEventListener('keydown', this.hideOnEsc);\n }\n\n private updateURL() {\n const expires = new Date().getTime() + this.getUpdateInterval();\n const uuid = uuidv4();\n this.ws.updateUUID(uuid);\n const params = utilsURL.appendToParams('', {\n appId: this.appId,\n uuid: uuid,\n expires: expires,\n })\n\n if (this.isMobile()) {\n this.url = 'https://launch.0account.com/auth?' + params;\n } else {\n this.url = 'zero-account://auth?' + params;\n }\n }\n\n isMobile() {\n const device = this.uaParser.getDevice()\n return device.type === 'tablet' || device.type === 'mobile'\n }\n\n connectedCallback() {\n this.startTimer()\n }\n\n disconnectedCallback() {\n this.stopTimer()\n document.removeEventListener('keydown', this.hideOnEsc);\n }\n\n private restartTimer() {\n this.stopTimer()\n this.startTimer()\n }\n\n private startTimer() {\n this.timer = window.setInterval(this.refreshQR, this.getUpdateInterval());\n }\n\n private stopTimer() {\n window.clearInterval(this.timer);\n window.clearTimeout(this.animationTimer);\n this.isAnimating = false\n }\n\n private log = (...args) => this.logger.log(...args);\n}\n"],"version":3}
|