@bounded-sh/client 0.0.6 → 0.0.8
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/auth/index.d.ts +15 -0
- package/dist/auth/oidc-auth.d.ts +25 -11
- package/dist/auth/providers/email-auth-provider.d.ts +10 -0
- package/dist/auth/providers/mock-auth-provider.d.ts +1 -0
- package/dist/auth/providers/privy-wallet-provider.d.ts +2 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +24058 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +24177 -108
- package/dist/index.js.map +1 -1
- package/dist/{index.native-Lrhg8G-G.js → index.native-C-duG1XV.js} +494 -2625
- package/dist/index.native-C-duG1XV.js.map +1 -0
- package/dist/{index.native-Y7aFGpZp.esm.js → index.native-DnVLH-7o.esm.js} +492 -2624
- package/dist/index.native-DnVLH-7o.esm.js.map +1 -0
- package/dist/index.native.d.ts +2 -1
- package/dist/index.native.esm.js +1 -1
- package/dist/index.native.js +3 -1
- package/dist/index.native.js.map +1 -1
- package/dist/{phantom-wallet-provider-DQDZjZkl.js → phantom-wallet-provider-DKScS8m6.js} +3 -3
- package/dist/{phantom-wallet-provider-DQDZjZkl.js.map → phantom-wallet-provider-DKScS8m6.js.map} +1 -1
- package/dist/{phantom-wallet-provider-K10GQBxk.esm.js → phantom-wallet-provider-DfTqdjx7.esm.js} +3 -3
- package/dist/{phantom-wallet-provider-K10GQBxk.esm.js.map → phantom-wallet-provider-DfTqdjx7.esm.js.map} +1 -1
- package/dist/{privy-wallet-provider-scXNSzjF.esm.js → privy-wallet-provider-BpPAZyUD.esm.js} +43 -23
- package/dist/privy-wallet-provider-BpPAZyUD.esm.js.map +1 -0
- package/dist/{privy-wallet-provider-Dh_jHrsq.js → privy-wallet-provider-wCTdqpRq.js} +43 -23
- package/dist/privy-wallet-provider-wCTdqpRq.js.map +1 -0
- package/dist/{solana-mobile-wallet-provider-DMXR_nmz.js → solana-mobile-wallet-provider-DZx3xVit.js} +5 -5
- package/dist/{solana-mobile-wallet-provider-DMXR_nmz.js.map → solana-mobile-wallet-provider-DZx3xVit.js.map} +1 -1
- package/dist/{solana-mobile-wallet-provider-BlwQuB4D.esm.js → solana-mobile-wallet-provider-xmASWrPf.esm.js} +5 -5
- package/dist/{solana-mobile-wallet-provider-BlwQuB4D.esm.js.map → solana-mobile-wallet-provider-xmASWrPf.esm.js.map} +1 -1
- package/package.json +23 -12
- package/dist/index-BzOrZU4R.esm.js +0 -16841
- package/dist/index-BzOrZU4R.esm.js.map +0 -1
- package/dist/index-CSUmsmHJ.js +0 -16884
- package/dist/index-CSUmsmHJ.js.map +0 -1
- package/dist/index-CtMYXtmh.js +0 -16882
- package/dist/index-CtMYXtmh.js.map +0 -1
- package/dist/index-DAI10qql.esm.js +0 -16843
- package/dist/index-DAI10qql.esm.js.map +0 -1
- package/dist/index-Dj2C_uV6.js +0 -26293
- package/dist/index-Dj2C_uV6.js.map +0 -1
- package/dist/index-Oc5pQUDo.esm.js +0 -26171
- package/dist/index-Oc5pQUDo.esm.js.map +0 -1
- package/dist/index.browser-BxwM4axz.esm.js +0 -5064
- package/dist/index.browser-BxwM4axz.esm.js.map +0 -1
- package/dist/index.browser-C_TToxuO.esm.js +0 -4208
- package/dist/index.browser-C_TToxuO.esm.js.map +0 -1
- package/dist/index.browser-Cp6PqsEM.js +0 -5074
- package/dist/index.browser-Cp6PqsEM.js.map +0 -1
- package/dist/index.browser-DcHalmEf.js +0 -4213
- package/dist/index.browser-DcHalmEf.js.map +0 -1
- package/dist/index.native-Lrhg8G-G.js.map +0 -1
- package/dist/index.native-Y7aFGpZp.esm.js.map +0 -1
- package/dist/privy-wallet-provider-Dh_jHrsq.js.map +0 -1
- package/dist/privy-wallet-provider-scXNSzjF.esm.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.native-Y7aFGpZp.esm.js","sources":["../node_modules/@bounded-sh/core/node_modules/tweetnacl/nacl-fast.js","../node_modules/@bounded-sh/core/node_modules/bn.js/lib/bn.js","../node_modules/@bounded-sh/core/node_modules/reconnecting-websocket/dist/reconnecting-websocket-mjs.js","../node_modules/@bounded-sh/core/dist/index.mjs","../.rollup-tmp/platform.js","../.rollup-tmp/auth/providers/mock-auth-provider.js","../.rollup-tmp/auth/providers/offchain-auth-provider.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/index.js","../node_modules/safe-buffer/index.js","../node_modules/base-x/src/index.js","../node_modules/bs58/src/esm/index.js","../node_modules/tweetnacl/nacl-fast.js","../.rollup-tmp/auth/providers/guest-keystore.js","../.rollup-tmp/auth/providers/guest-auth-provider.js","../.rollup-tmp/auth/providers/email-auth-provider.js","../.rollup-tmp/auth/oidc-auth.js","../.rollup-tmp/auth/index.js","../.rollup-tmp/global.js","../.rollup-tmp/auth/hooks/useAuth.js","../.rollup-tmp/auth/providers/sol/sol-utils.js","../.rollup-tmp/utils.js","../.rollup-tmp/auth/providers/transaction-utils.js","../.rollup-tmp/auth/providers/privy-expo-provider.js"],"sourcesContent":["(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nvar Event = /** @class */ (function () {\r\n function Event(type, target) {\r\n this.target = target;\r\n this.type = type;\r\n }\r\n return Event;\r\n}());\r\nvar ErrorEvent = /** @class */ (function (_super) {\r\n __extends(ErrorEvent, _super);\r\n function ErrorEvent(error, target) {\r\n var _this = _super.call(this, 'error', target) || this;\r\n _this.message = error.message;\r\n _this.error = error;\r\n return _this;\r\n }\r\n return ErrorEvent;\r\n}(Event));\r\nvar CloseEvent = /** @class */ (function (_super) {\r\n __extends(CloseEvent, _super);\r\n function CloseEvent(code, reason, target) {\r\n if (code === void 0) { code = 1000; }\r\n if (reason === void 0) { reason = ''; }\r\n var _this = _super.call(this, 'close', target) || this;\r\n _this.wasClean = true;\r\n _this.code = code;\r\n _this.reason = reason;\r\n return _this;\r\n }\r\n return CloseEvent;\r\n}(Event));\n\n/*!\r\n * Reconnecting WebSocket\r\n * by Pedro Ladaria <pedro.ladaria@gmail.com>\r\n * https://github.com/pladaria/reconnecting-websocket\r\n * License MIT\r\n */\r\nvar getGlobalWebSocket = function () {\r\n if (typeof WebSocket !== 'undefined') {\r\n // @ts-ignore\r\n return WebSocket;\r\n }\r\n};\r\n/**\r\n * Returns true if given argument looks like a WebSocket class\r\n */\r\nvar isWebSocket = function (w) { return typeof w !== 'undefined' && !!w && w.CLOSING === 2; };\r\nvar DEFAULT = {\r\n maxReconnectionDelay: 10000,\r\n minReconnectionDelay: 1000 + Math.random() * 4000,\r\n minUptime: 5000,\r\n reconnectionDelayGrowFactor: 1.3,\r\n connectionTimeout: 4000,\r\n maxRetries: Infinity,\r\n maxEnqueuedMessages: Infinity,\r\n startClosed: false,\r\n debug: false,\r\n};\r\nvar ReconnectingWebSocket = /** @class */ (function () {\r\n function ReconnectingWebSocket(url, protocols, options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n this._listeners = {\r\n error: [],\r\n message: [],\r\n open: [],\r\n close: [],\r\n };\r\n this._retryCount = -1;\r\n this._shouldReconnect = true;\r\n this._connectLock = false;\r\n this._binaryType = 'blob';\r\n this._closeCalled = false;\r\n this._messageQueue = [];\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to CLOSED\r\n */\r\n this.onclose = null;\r\n /**\r\n * An event listener to be called when an error occurs\r\n */\r\n this.onerror = null;\r\n /**\r\n * An event listener to be called when a message is received from the server\r\n */\r\n this.onmessage = null;\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to OPEN;\r\n * this indicates that the connection is ready to send and receive data\r\n */\r\n this.onopen = null;\r\n this._handleOpen = function (event) {\r\n _this._debug('open event');\r\n var _a = _this._options.minUptime, minUptime = _a === void 0 ? DEFAULT.minUptime : _a;\r\n clearTimeout(_this._connectTimeout);\r\n _this._uptimeTimeout = setTimeout(function () { return _this._acceptOpen(); }, minUptime);\r\n _this._ws.binaryType = _this._binaryType;\r\n // send enqueued messages (messages sent before websocket open event)\r\n _this._messageQueue.forEach(function (message) { return _this._ws.send(message); });\r\n _this._messageQueue = [];\r\n if (_this.onopen) {\r\n _this.onopen(event);\r\n }\r\n _this._listeners.open.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleMessage = function (event) {\r\n _this._debug('message event');\r\n if (_this.onmessage) {\r\n _this.onmessage(event);\r\n }\r\n _this._listeners.message.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleError = function (event) {\r\n _this._debug('error event', event.message);\r\n _this._disconnect(undefined, event.message === 'TIMEOUT' ? 'timeout' : undefined);\r\n if (_this.onerror) {\r\n _this.onerror(event);\r\n }\r\n _this._debug('exec error listeners');\r\n _this._listeners.error.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n _this._connect();\r\n };\r\n this._handleClose = function (event) {\r\n _this._debug('close event');\r\n _this._clearTimeouts();\r\n if (_this._shouldReconnect) {\r\n _this._connect();\r\n }\r\n if (_this.onclose) {\r\n _this.onclose(event);\r\n }\r\n _this._listeners.close.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._url = url;\r\n this._protocols = protocols;\r\n this._options = options;\r\n if (this._options.startClosed) {\r\n this._shouldReconnect = false;\r\n }\r\n this._connect();\r\n }\r\n Object.defineProperty(ReconnectingWebSocket, \"CONNECTING\", {\r\n get: function () {\r\n return 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"OPEN\", {\r\n get: function () {\r\n return 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSING\", {\r\n get: function () {\r\n return 2;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSED\", {\r\n get: function () {\r\n return 3;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CONNECTING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"OPEN\", {\r\n get: function () {\r\n return ReconnectingWebSocket.OPEN;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSED\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSED;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"binaryType\", {\r\n get: function () {\r\n return this._ws ? this._ws.binaryType : this._binaryType;\r\n },\r\n set: function (value) {\r\n this._binaryType = value;\r\n if (this._ws) {\r\n this._ws.binaryType = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"retryCount\", {\r\n /**\r\n * Returns the number or connection retries\r\n */\r\n get: function () {\r\n return Math.max(this._retryCount, 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"bufferedAmount\", {\r\n /**\r\n * The number of bytes of data that have been queued using calls to send() but not yet\r\n * transmitted to the network. This value resets to zero once all queued data has been sent.\r\n * This value does not reset to zero when the connection is closed; if you keep calling send(),\r\n * this will continue to climb. Read only\r\n */\r\n get: function () {\r\n var bytes = this._messageQueue.reduce(function (acc, message) {\r\n if (typeof message === 'string') {\r\n acc += message.length; // not byte size\r\n }\r\n else if (message instanceof Blob) {\r\n acc += message.size;\r\n }\r\n else {\r\n acc += message.byteLength;\r\n }\r\n return acc;\r\n }, 0);\r\n return bytes + (this._ws ? this._ws.bufferedAmount : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"extensions\", {\r\n /**\r\n * The extensions selected by the server. This is currently only the empty string or a list of\r\n * extensions as negotiated by the connection\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.extensions : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"protocol\", {\r\n /**\r\n * A string indicating the name of the sub-protocol the server selected;\r\n * this will be one of the strings specified in the protocols parameter when creating the\r\n * WebSocket object\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.protocol : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"readyState\", {\r\n /**\r\n * The current state of the connection; this is one of the Ready state constants\r\n */\r\n get: function () {\r\n if (this._ws) {\r\n return this._ws.readyState;\r\n }\r\n return this._options.startClosed\r\n ? ReconnectingWebSocket.CLOSED\r\n : ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"url\", {\r\n /**\r\n * The URL as resolved by the constructor\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.url : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Closes the WebSocket connection or connection attempt, if any. If the connection is already\r\n * CLOSED, this method does nothing\r\n */\r\n ReconnectingWebSocket.prototype.close = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._closeCalled = true;\r\n this._shouldReconnect = false;\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n this._debug('close enqueued: no ws instance');\r\n return;\r\n }\r\n if (this._ws.readyState === this.CLOSED) {\r\n this._debug('close: already closed');\r\n return;\r\n }\r\n this._ws.close(code, reason);\r\n };\r\n /**\r\n * Closes the WebSocket connection or connection attempt and connects again.\r\n * Resets retry counter;\r\n */\r\n ReconnectingWebSocket.prototype.reconnect = function (code, reason) {\r\n this._shouldReconnect = true;\r\n this._closeCalled = false;\r\n this._retryCount = -1;\r\n if (!this._ws || this._ws.readyState === this.CLOSED) {\r\n this._connect();\r\n }\r\n else {\r\n this._disconnect(code, reason);\r\n this._connect();\r\n }\r\n };\r\n /**\r\n * Enqueue specified data to be transmitted to the server over the WebSocket connection\r\n */\r\n ReconnectingWebSocket.prototype.send = function (data) {\r\n if (this._ws && this._ws.readyState === this.OPEN) {\r\n this._debug('send', data);\r\n this._ws.send(data);\r\n }\r\n else {\r\n var _a = this._options.maxEnqueuedMessages, maxEnqueuedMessages = _a === void 0 ? DEFAULT.maxEnqueuedMessages : _a;\r\n if (this._messageQueue.length < maxEnqueuedMessages) {\r\n this._debug('enqueue', data);\r\n this._messageQueue.push(data);\r\n }\r\n }\r\n };\r\n /**\r\n * Register an event handler of a specific event type\r\n */\r\n ReconnectingWebSocket.prototype.addEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type].push(listener);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype.dispatchEvent = function (event) {\r\n var e_1, _a;\r\n var listeners = this._listeners[event.type];\r\n if (listeners) {\r\n try {\r\n for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {\r\n var listener = listeners_1_1.value;\r\n this._callEventListener(event, listener);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Removes an event listener\r\n */\r\n ReconnectingWebSocket.prototype.removeEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type] = this._listeners[type].filter(function (l) { return l !== listener; });\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this._options.debug) {\r\n // not using spread because compiled version uses Symbols\r\n // tslint:disable-next-line\r\n console.log.apply(console, __spread(['RWS>'], args));\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._getNextDelay = function () {\r\n var _a = this._options, _b = _a.reconnectionDelayGrowFactor, reconnectionDelayGrowFactor = _b === void 0 ? DEFAULT.reconnectionDelayGrowFactor : _b, _c = _a.minReconnectionDelay, minReconnectionDelay = _c === void 0 ? DEFAULT.minReconnectionDelay : _c, _d = _a.maxReconnectionDelay, maxReconnectionDelay = _d === void 0 ? DEFAULT.maxReconnectionDelay : _d;\r\n var delay = 0;\r\n if (this._retryCount > 0) {\r\n delay =\r\n minReconnectionDelay * Math.pow(reconnectionDelayGrowFactor, this._retryCount - 1);\r\n if (delay > maxReconnectionDelay) {\r\n delay = maxReconnectionDelay;\r\n }\r\n }\r\n this._debug('next delay', delay);\r\n return delay;\r\n };\r\n ReconnectingWebSocket.prototype._wait = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n setTimeout(resolve, _this._getNextDelay());\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._getNextUrl = function (urlProvider) {\r\n if (typeof urlProvider === 'string') {\r\n return Promise.resolve(urlProvider);\r\n }\r\n if (typeof urlProvider === 'function') {\r\n var url = urlProvider();\r\n if (typeof url === 'string') {\r\n return Promise.resolve(url);\r\n }\r\n if (!!url.then) {\r\n return url;\r\n }\r\n }\r\n throw Error('Invalid URL');\r\n };\r\n ReconnectingWebSocket.prototype._connect = function () {\r\n var _this = this;\r\n if (this._connectLock || !this._shouldReconnect) {\r\n return;\r\n }\r\n this._connectLock = true;\r\n var _a = this._options, _b = _a.maxRetries, maxRetries = _b === void 0 ? DEFAULT.maxRetries : _b, _c = _a.connectionTimeout, connectionTimeout = _c === void 0 ? DEFAULT.connectionTimeout : _c, _d = _a.WebSocket, WebSocket = _d === void 0 ? getGlobalWebSocket() : _d;\r\n if (this._retryCount >= maxRetries) {\r\n this._debug('max retries reached', this._retryCount, '>=', maxRetries);\r\n return;\r\n }\r\n this._retryCount++;\r\n this._debug('connect', this._retryCount);\r\n this._removeListeners();\r\n if (!isWebSocket(WebSocket)) {\r\n throw Error('No valid WebSocket class provided');\r\n }\r\n this._wait()\r\n .then(function () { return _this._getNextUrl(_this._url); })\r\n .then(function (url) {\r\n // close could be called before creating the ws\r\n if (_this._closeCalled) {\r\n return;\r\n }\r\n _this._debug('connect', { url: url, protocols: _this._protocols });\r\n _this._ws = _this._protocols\r\n ? new WebSocket(url, _this._protocols)\r\n : new WebSocket(url);\r\n _this._ws.binaryType = _this._binaryType;\r\n _this._connectLock = false;\r\n _this._addListeners();\r\n _this._connectTimeout = setTimeout(function () { return _this._handleTimeout(); }, connectionTimeout);\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._handleTimeout = function () {\r\n this._debug('timeout event');\r\n this._handleError(new ErrorEvent(Error('TIMEOUT'), this));\r\n };\r\n ReconnectingWebSocket.prototype._disconnect = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._removeListeners();\r\n try {\r\n this._ws.close(code, reason);\r\n this._handleClose(new CloseEvent(code, reason, this));\r\n }\r\n catch (error) {\r\n // ignore\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._acceptOpen = function () {\r\n this._debug('accept open');\r\n this._retryCount = 0;\r\n };\r\n ReconnectingWebSocket.prototype._callEventListener = function (event, listener) {\r\n if ('handleEvent' in listener) {\r\n // @ts-ignore\r\n listener.handleEvent(event);\r\n }\r\n else {\r\n // @ts-ignore\r\n listener(event);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._removeListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('removeListeners');\r\n this._ws.removeEventListener('open', this._handleOpen);\r\n this._ws.removeEventListener('close', this._handleClose);\r\n this._ws.removeEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.removeEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._addListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('addListeners');\r\n this._ws.addEventListener('open', this._handleOpen);\r\n this._ws.addEventListener('close', this._handleClose);\r\n this._ws.addEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.addEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._clearTimeouts = function () {\r\n clearTimeout(this._connectTimeout);\r\n clearTimeout(this._uptimeTimeout);\r\n };\r\n return ReconnectingWebSocket;\r\n}());\n\nexport default ReconnectingWebSocket;\n","import axios from 'axios';\nimport { ComputeBudgetProgram, PublicKey, VersionedTransaction, TransactionMessage, Keypair, SystemProgram, TransactionInstruction, Connection } from '@solana/web3.js';\nimport nacl from 'tweetnacl';\nimport * as anchor from '@coral-xyz/anchor';\nimport { Program } from '@coral-xyz/anchor';\nimport BN from 'bn.js';\nimport ReconnectingWebSocket from 'reconnecting-websocket';\n\nlet clientConfig = {\n // User configured settings\n name: '',\n logoUrl: '',\n apiKey: '',\n // Bounded production is the out-of-the-box default — a Bounded app needs only\n // `{ appId }`. Pass `network: 'bounded-staging'` to target staging.\n network: 'bounded-production',\n wsApiUrl: 'wss://realtime.bounded.sh',\n apiUrl: 'https://realtime.bounded.sh',\n authApiUrl: 'https://wallet-auth.bounded.sh',\n humanAuthApiUrl: 'https://auth.bounded.sh',\n functionsUrl: 'https://functions.bounded.sh',\n appId: '',\n // 'email' = Bounded Better Auth human login (inline OTP) — the out-of-box default\n // for most apps. For wallet login use authMethod:'phantom' (Solana / Phantom, the\n // recommended wallet option), or signInAnonymously() for zero-friction 'guest'\n // accounts — all coexist. ('wallet' is an unimplemented stub; don't use.)\n authMethod: 'email',\n chain: '',\n rpcUrl: '',\n skipBackendInit: true,\n authProvider: null,\n isServer: false,\n};\nlet isInitialized = false;\nconst BOUNDED_NETWORKS = {\n 'bounded-staging': {\n wsApiUrl: 'wss://realtime-staging.bounded.sh',\n apiUrl: 'https://realtime-staging.bounded.sh',\n authApiUrl: 'https://wallet-auth-staging.bounded.sh',\n humanAuthApiUrl: 'https://auth-staging.bounded.sh',\n functionsUrl: 'https://functions-staging.bounded.sh',\n },\n 'bounded-production': {\n // All on bounded.sh custom domains. authApiUrl = WALLET/SIWS issuer\n // (wallet + guest providers); humanAuthApiUrl = human email-OTP issuer\n // (the 'email' provider). realtime.bounded.sh fronts the realtime worker.\n wsApiUrl: 'wss://realtime.bounded.sh',\n apiUrl: 'https://realtime.bounded.sh',\n authApiUrl: 'https://wallet-auth.bounded.sh',\n humanAuthApiUrl: 'https://auth.bounded.sh',\n functionsUrl: 'https://functions.bounded.sh',\n },\n};\n// `network: 'bounded'` is an alias for the current GA target.\nBOUNDED_NETWORKS['bounded'] = BOUNDED_NETWORKS['bounded-production'];\n/**\n * The hosted `/.well-known/bounded-webhook-keys.json` URL for the configured\n * Bounded network, or `undefined` when no Bounded network is set. Used by\n * `verifyWebhook` so a staging receiver that did `init({ network:\n * 'bounded-staging' })` verifies against the STAGING signing keys instead of\n * the production default. Synchronous and non-blocking on purpose: a pure\n * webhook receiver may never call `init()`, so we read the already-applied\n * config rather than awaiting `getConfig()` (which blocks on initialization).\n * Returns `undefined` when the network is unknown so the caller keeps its\n * fail-closed production default (audit SDK LOW-7).\n */\nfunction getWebhookKeysUrl() {\n const net = clientConfig.network;\n const preset = net ? BOUNDED_NETWORKS[net] : undefined;\n const host = preset === null || preset === void 0 ? void 0 : preset.apiUrl;\n if (!host)\n return undefined;\n return host.replace(/\\/$/, '') + '/.well-known/bounded-webhook-keys.json';\n}\n/**\n * True when init() configured a Bounded network (the Cloudflare-native stack).\n * Synchronous + non-blocking. Used to route reads/writes that behave differently\n * on Bounded vs the legacy backend (e.g. `count`/`aggregate`, which on\n * Bounded must use the deterministic server aggregation, not the legacy AI query).\n */\nfunction isBoundedNetwork() {\n const net = clientConfig.network;\n return typeof net === 'string' && net in BOUNDED_NETWORKS;\n}\nfunction init(newConfig) {\n return new Promise((resolve, reject) => {\n if (!newConfig.apiKey && !newConfig.appId) {\n reject(new Error('No app ID provided.'));\n return;\n }\n // Bounded is client-driven: defaults are Bounded production, `network`\n // switches the whole endpoint set (e.g. 'bounded-staging'), and anything\n // passed explicitly wins. No `/config` round-trip — `init({ appId })` is\n // synchronous and works out of the box.\n // defaults (bounded-production) < network preset < explicit newConfig\n const preset = (newConfig.network && BOUNDED_NETWORKS[newConfig.network]) || {};\n clientConfig = Object.assign(Object.assign(Object.assign({}, clientConfig), preset), newConfig);\n isInitialized = true;\n resolve();\n });\n}\nfunction waitForInitialization() {\n return new Promise((resolve) => {\n if (isInitialized) {\n resolve();\n }\n else {\n const interval = setInterval(() => {\n if (isInitialized) {\n clearInterval(interval);\n resolve();\n }\n }, 50);\n }\n });\n}\nasync function getConfig() {\n await waitForInitialization();\n return clientConfig;\n}\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar buffer = {};\n\nvar base64Js = {};\n\nvar hasRequiredBase64Js;\n\nfunction requireBase64Js () {\n\tif (hasRequiredBase64Js) return base64Js;\n\thasRequiredBase64Js = 1;\n\n\tbase64Js.byteLength = byteLength;\n\tbase64Js.toByteArray = toByteArray;\n\tbase64Js.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\treturn base64Js;\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nvar hasRequiredIeee754;\n\nfunction requireIeee754 () {\n\tif (hasRequiredIeee754) return ieee754;\n\thasRequiredIeee754 = 1;\n\tieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var nBits = -7;\n\t var i = isLE ? (nBytes - 1) : 0;\n\t var d = isLE ? -1 : 1;\n\t var s = buffer[offset + i];\n\n\t i += d;\n\n\t e = s & ((1 << (-nBits)) - 1);\n\t s >>= (-nBits);\n\t nBits += eLen;\n\t for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t m = e & ((1 << (-nBits)) - 1);\n\t e >>= (-nBits);\n\t nBits += mLen;\n\t for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t if (e === 0) {\n\t e = 1 - eBias;\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen);\n\t e = e - eBias;\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t};\n\n\tieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n\t var i = isLE ? 0 : (nBytes - 1);\n\t var d = isLE ? 1 : -1;\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n\t value = Math.abs(value);\n\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0;\n\t e = eMax;\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2);\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--;\n\t c *= 2;\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c;\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias);\n\t }\n\t if (value * c >= 2) {\n\t e++;\n\t c /= 2;\n\t }\n\n\t if (e + eBias >= eMax) {\n\t m = 0;\n\t e = eMax;\n\t } else if (e + eBias >= 1) {\n\t m = ((value * c) - 1) * Math.pow(2, mLen);\n\t e = e + eBias;\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n\t e = 0;\n\t }\n\t }\n\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n\t e = (e << mLen) | m;\n\t eLen += mLen;\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n\t buffer[offset + i - d] |= s * 128;\n\t};\n\treturn ieee754;\n}\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nvar hasRequiredBuffer;\n\nfunction requireBuffer () {\n\tif (hasRequiredBuffer) return buffer;\n\thasRequiredBuffer = 1;\n\t(function (exports$1) {\n\n\t\tconst base64 = requireBase64Js();\n\t\tconst ieee754 = requireIeee754();\n\t\tconst customInspectSymbol =\n\t\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t\t : null;\n\n\t\texports$1.Buffer = Buffer;\n\t\texports$1.SlowBuffer = SlowBuffer;\n\t\texports$1.INSPECT_MAX_BYTES = 50;\n\n\t\tconst K_MAX_LENGTH = 0x7fffffff;\n\t\texports$1.kMaxLength = K_MAX_LENGTH;\n\n\t\t/**\n\t\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t\t * === true Use Uint8Array implementation (fastest)\n\t\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t\t * implementation (most compatible, even IE6)\n\t\t *\n\t\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t\t * Opera 11.6+, iOS 4.2+.\n\t\t *\n\t\t * We report that the browser does not support typed arrays if the are not subclassable\n\t\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t\t * for __proto__ and has a buggy typed array implementation.\n\t\t */\n\t\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\t\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t\t typeof console.error === 'function') {\n\t\t console.error(\n\t\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t\t );\n\t\t}\n\n\t\tfunction typedArraySupport () {\n\t\t // Can typed array instances can be augmented?\n\t\t try {\n\t\t const arr = new Uint8Array(1);\n\t\t const proto = { foo: function () { return 42 } };\n\t\t Object.setPrototypeOf(proto, Uint8Array.prototype);\n\t\t Object.setPrototypeOf(arr, proto);\n\t\t return arr.foo() === 42\n\t\t } catch (e) {\n\t\t return false\n\t\t }\n\t\t}\n\n\t\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t\t enumerable: true,\n\t\t get: function () {\n\t\t if (!Buffer.isBuffer(this)) return undefined\n\t\t return this.buffer\n\t\t }\n\t\t});\n\n\t\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t\t enumerable: true,\n\t\t get: function () {\n\t\t if (!Buffer.isBuffer(this)) return undefined\n\t\t return this.byteOffset\n\t\t }\n\t\t});\n\n\t\tfunction createBuffer (length) {\n\t\t if (length > K_MAX_LENGTH) {\n\t\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t\t }\n\t\t // Return an augmented `Uint8Array` instance\n\t\t const buf = new Uint8Array(length);\n\t\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t\t return buf\n\t\t}\n\n\t\t/**\n\t\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t\t * returns a single octet.\n\t\t *\n\t\t * The `Uint8Array` prototype remains unmodified.\n\t\t */\n\n\t\tfunction Buffer (arg, encodingOrOffset, length) {\n\t\t // Common case.\n\t\t if (typeof arg === 'number') {\n\t\t if (typeof encodingOrOffset === 'string') {\n\t\t throw new TypeError(\n\t\t 'The \"string\" argument must be of type string. Received type number'\n\t\t )\n\t\t }\n\t\t return allocUnsafe(arg)\n\t\t }\n\t\t return from(arg, encodingOrOffset, length)\n\t\t}\n\n\t\tBuffer.poolSize = 8192; // not used by this implementation\n\n\t\tfunction from (value, encodingOrOffset, length) {\n\t\t if (typeof value === 'string') {\n\t\t return fromString(value, encodingOrOffset)\n\t\t }\n\n\t\t if (ArrayBuffer.isView(value)) {\n\t\t return fromArrayView(value)\n\t\t }\n\n\t\t if (value == null) {\n\t\t throw new TypeError(\n\t\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t\t 'or Array-like Object. Received type ' + (typeof value)\n\t\t )\n\t\t }\n\n\t\t if (isInstance(value, ArrayBuffer) ||\n\t\t (value && isInstance(value.buffer, ArrayBuffer))) {\n\t\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t\t }\n\n\t\t if (typeof SharedArrayBuffer !== 'undefined' &&\n\t\t (isInstance(value, SharedArrayBuffer) ||\n\t\t (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n\t\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t\t }\n\n\t\t if (typeof value === 'number') {\n\t\t throw new TypeError(\n\t\t 'The \"value\" argument must not be of type number. Received type number'\n\t\t )\n\t\t }\n\n\t\t const valueOf = value.valueOf && value.valueOf();\n\t\t if (valueOf != null && valueOf !== value) {\n\t\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t\t }\n\n\t\t const b = fromObject(value);\n\t\t if (b) return b\n\n\t\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t\t typeof value[Symbol.toPrimitive] === 'function') {\n\t\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t\t }\n\n\t\t throw new TypeError(\n\t\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t\t 'or Array-like Object. Received type ' + (typeof value)\n\t\t )\n\t\t}\n\n\t\t/**\n\t\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t\t * if value is a number.\n\t\t * Buffer.from(str[, encoding])\n\t\t * Buffer.from(array)\n\t\t * Buffer.from(buffer)\n\t\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t\t **/\n\t\tBuffer.from = function (value, encodingOrOffset, length) {\n\t\t return from(value, encodingOrOffset, length)\n\t\t};\n\n\t\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t\t// https://github.com/feross/buffer/pull/148\n\t\tObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n\t\tObject.setPrototypeOf(Buffer, Uint8Array);\n\n\t\tfunction assertSize (size) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('\"size\" argument must be of type number')\n\t\t } else if (size < 0) {\n\t\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t\t }\n\t\t}\n\n\t\tfunction alloc (size, fill, encoding) {\n\t\t assertSize(size);\n\t\t if (size <= 0) {\n\t\t return createBuffer(size)\n\t\t }\n\t\t if (fill !== undefined) {\n\t\t // Only pay attention to encoding if it's a string. This\n\t\t // prevents accidentally sending in a number that would\n\t\t // be interpreted as a start offset.\n\t\t return typeof encoding === 'string'\n\t\t ? createBuffer(size).fill(fill, encoding)\n\t\t : createBuffer(size).fill(fill)\n\t\t }\n\t\t return createBuffer(size)\n\t\t}\n\n\t\t/**\n\t\t * Creates a new filled Buffer instance.\n\t\t * alloc(size[, fill[, encoding]])\n\t\t **/\n\t\tBuffer.alloc = function (size, fill, encoding) {\n\t\t return alloc(size, fill, encoding)\n\t\t};\n\n\t\tfunction allocUnsafe (size) {\n\t\t assertSize(size);\n\t\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t\t}\n\n\t\t/**\n\t\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t\t * */\n\t\tBuffer.allocUnsafe = function (size) {\n\t\t return allocUnsafe(size)\n\t\t};\n\t\t/**\n\t\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t\t */\n\t\tBuffer.allocUnsafeSlow = function (size) {\n\t\t return allocUnsafe(size)\n\t\t};\n\n\t\tfunction fromString (string, encoding) {\n\t\t if (typeof encoding !== 'string' || encoding === '') {\n\t\t encoding = 'utf8';\n\t\t }\n\n\t\t if (!Buffer.isEncoding(encoding)) {\n\t\t throw new TypeError('Unknown encoding: ' + encoding)\n\t\t }\n\n\t\t const length = byteLength(string, encoding) | 0;\n\t\t let buf = createBuffer(length);\n\n\t\t const actual = buf.write(string, encoding);\n\n\t\t if (actual !== length) {\n\t\t // Writing a hex string, for example, that contains invalid characters will\n\t\t // cause everything after the first invalid character to be ignored. (e.g.\n\t\t // 'abxxcd' will be treated as 'ab')\n\t\t buf = buf.slice(0, actual);\n\t\t }\n\n\t\t return buf\n\t\t}\n\n\t\tfunction fromArrayLike (array) {\n\t\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t\t const buf = createBuffer(length);\n\t\t for (let i = 0; i < length; i += 1) {\n\t\t buf[i] = array[i] & 255;\n\t\t }\n\t\t return buf\n\t\t}\n\n\t\tfunction fromArrayView (arrayView) {\n\t\t if (isInstance(arrayView, Uint8Array)) {\n\t\t const copy = new Uint8Array(arrayView);\n\t\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t\t }\n\t\t return fromArrayLike(arrayView)\n\t\t}\n\n\t\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t\t }\n\n\t\t if (array.byteLength < byteOffset + (length || 0)) {\n\t\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t\t }\n\n\t\t let buf;\n\t\t if (byteOffset === undefined && length === undefined) {\n\t\t buf = new Uint8Array(array);\n\t\t } else if (length === undefined) {\n\t\t buf = new Uint8Array(array, byteOffset);\n\t\t } else {\n\t\t buf = new Uint8Array(array, byteOffset, length);\n\t\t }\n\n\t\t // Return an augmented `Uint8Array` instance\n\t\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t\t return buf\n\t\t}\n\n\t\tfunction fromObject (obj) {\n\t\t if (Buffer.isBuffer(obj)) {\n\t\t const len = checked(obj.length) | 0;\n\t\t const buf = createBuffer(len);\n\n\t\t if (buf.length === 0) {\n\t\t return buf\n\t\t }\n\n\t\t obj.copy(buf, 0, 0, len);\n\t\t return buf\n\t\t }\n\n\t\t if (obj.length !== undefined) {\n\t\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t\t return createBuffer(0)\n\t\t }\n\t\t return fromArrayLike(obj)\n\t\t }\n\n\t\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t\t return fromArrayLike(obj.data)\n\t\t }\n\t\t}\n\n\t\tfunction checked (length) {\n\t\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t\t // length is NaN (which is otherwise coerced to zero.)\n\t\t if (length >= K_MAX_LENGTH) {\n\t\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t\t }\n\t\t return length | 0\n\t\t}\n\n\t\tfunction SlowBuffer (length) {\n\t\t if (+length != length) { // eslint-disable-line eqeqeq\n\t\t length = 0;\n\t\t }\n\t\t return Buffer.alloc(+length)\n\t\t}\n\n\t\tBuffer.isBuffer = function isBuffer (b) {\n\t\t return b != null && b._isBuffer === true &&\n\t\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t\t};\n\n\t\tBuffer.compare = function compare (a, b) {\n\t\t if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t\t if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t\t throw new TypeError(\n\t\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t\t )\n\t\t }\n\n\t\t if (a === b) return 0\n\n\t\t let x = a.length;\n\t\t let y = b.length;\n\n\t\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t\t if (a[i] !== b[i]) {\n\t\t x = a[i];\n\t\t y = b[i];\n\t\t break\n\t\t }\n\t\t }\n\n\t\t if (x < y) return -1\n\t\t if (y < x) return 1\n\t\t return 0\n\t\t};\n\n\t\tBuffer.isEncoding = function isEncoding (encoding) {\n\t\t switch (String(encoding).toLowerCase()) {\n\t\t case 'hex':\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t case 'ascii':\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t case 'base64':\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return true\n\t\t default:\n\t\t return false\n\t\t }\n\t\t};\n\n\t\tBuffer.concat = function concat (list, length) {\n\t\t if (!Array.isArray(list)) {\n\t\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t\t }\n\n\t\t if (list.length === 0) {\n\t\t return Buffer.alloc(0)\n\t\t }\n\n\t\t let i;\n\t\t if (length === undefined) {\n\t\t length = 0;\n\t\t for (i = 0; i < list.length; ++i) {\n\t\t length += list[i].length;\n\t\t }\n\t\t }\n\n\t\t const buffer = Buffer.allocUnsafe(length);\n\t\t let pos = 0;\n\t\t for (i = 0; i < list.length; ++i) {\n\t\t let buf = list[i];\n\t\t if (isInstance(buf, Uint8Array)) {\n\t\t if (pos + buf.length > buffer.length) {\n\t\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t\t buf.copy(buffer, pos);\n\t\t } else {\n\t\t Uint8Array.prototype.set.call(\n\t\t buffer,\n\t\t buf,\n\t\t pos\n\t\t );\n\t\t }\n\t\t } else if (!Buffer.isBuffer(buf)) {\n\t\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t\t } else {\n\t\t buf.copy(buffer, pos);\n\t\t }\n\t\t pos += buf.length;\n\t\t }\n\t\t return buffer\n\t\t};\n\n\t\tfunction byteLength (string, encoding) {\n\t\t if (Buffer.isBuffer(string)) {\n\t\t return string.length\n\t\t }\n\t\t if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n\t\t return string.byteLength\n\t\t }\n\t\t if (typeof string !== 'string') {\n\t\t throw new TypeError(\n\t\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t\t 'Received type ' + typeof string\n\t\t )\n\t\t }\n\n\t\t const len = string.length;\n\t\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t\t if (!mustMatch && len === 0) return 0\n\n\t\t // Use a for loop to avoid recursion\n\t\t let loweredCase = false;\n\t\t for (;;) {\n\t\t switch (encoding) {\n\t\t case 'ascii':\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t return len\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t return utf8ToBytes(string).length\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return len * 2\n\t\t case 'hex':\n\t\t return len >>> 1\n\t\t case 'base64':\n\t\t return base64ToBytes(string).length\n\t\t default:\n\t\t if (loweredCase) {\n\t\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t\t }\n\t\t encoding = ('' + encoding).toLowerCase();\n\t\t loweredCase = true;\n\t\t }\n\t\t }\n\t\t}\n\t\tBuffer.byteLength = byteLength;\n\n\t\tfunction slowToString (encoding, start, end) {\n\t\t let loweredCase = false;\n\n\t\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t\t // property of a typed array.\n\n\t\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t\t // to their upper/lower bounds if the value passed is out of range.\n\t\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t\t if (start === undefined || start < 0) {\n\t\t start = 0;\n\t\t }\n\t\t // Return early if start > this.length. Done here to prevent potential uint32\n\t\t // coercion fail below.\n\t\t if (start > this.length) {\n\t\t return ''\n\t\t }\n\n\t\t if (end === undefined || end > this.length) {\n\t\t end = this.length;\n\t\t }\n\n\t\t if (end <= 0) {\n\t\t return ''\n\t\t }\n\n\t\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t\t end >>>= 0;\n\t\t start >>>= 0;\n\n\t\t if (end <= start) {\n\t\t return ''\n\t\t }\n\n\t\t if (!encoding) encoding = 'utf8';\n\n\t\t while (true) {\n\t\t switch (encoding) {\n\t\t case 'hex':\n\t\t return hexSlice(this, start, end)\n\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t return utf8Slice(this, start, end)\n\n\t\t case 'ascii':\n\t\t return asciiSlice(this, start, end)\n\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t return latin1Slice(this, start, end)\n\n\t\t case 'base64':\n\t\t return base64Slice(this, start, end)\n\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return utf16leSlice(this, start, end)\n\n\t\t default:\n\t\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t\t encoding = (encoding + '').toLowerCase();\n\t\t loweredCase = true;\n\t\t }\n\t\t }\n\t\t}\n\n\t\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t\t// reliably in a browserify context because there could be multiple different\n\t\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t\t// instances that were created from another copy of the `buffer` package.\n\t\t// See: https://github.com/feross/buffer/issues/154\n\t\tBuffer.prototype._isBuffer = true;\n\n\t\tfunction swap (b, n, m) {\n\t\t const i = b[n];\n\t\t b[n] = b[m];\n\t\t b[m] = i;\n\t\t}\n\n\t\tBuffer.prototype.swap16 = function swap16 () {\n\t\t const len = this.length;\n\t\t if (len % 2 !== 0) {\n\t\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t\t }\n\t\t for (let i = 0; i < len; i += 2) {\n\t\t swap(this, i, i + 1);\n\t\t }\n\t\t return this\n\t\t};\n\n\t\tBuffer.prototype.swap32 = function swap32 () {\n\t\t const len = this.length;\n\t\t if (len % 4 !== 0) {\n\t\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t\t }\n\t\t for (let i = 0; i < len; i += 4) {\n\t\t swap(this, i, i + 3);\n\t\t swap(this, i + 1, i + 2);\n\t\t }\n\t\t return this\n\t\t};\n\n\t\tBuffer.prototype.swap64 = function swap64 () {\n\t\t const len = this.length;\n\t\t if (len % 8 !== 0) {\n\t\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t\t }\n\t\t for (let i = 0; i < len; i += 8) {\n\t\t swap(this, i, i + 7);\n\t\t swap(this, i + 1, i + 6);\n\t\t swap(this, i + 2, i + 5);\n\t\t swap(this, i + 3, i + 4);\n\t\t }\n\t\t return this\n\t\t};\n\n\t\tBuffer.prototype.toString = function toString () {\n\t\t const length = this.length;\n\t\t if (length === 0) return ''\n\t\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t\t return slowToString.apply(this, arguments)\n\t\t};\n\n\t\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\t\tBuffer.prototype.equals = function equals (b) {\n\t\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t\t if (this === b) return true\n\t\t return Buffer.compare(this, b) === 0\n\t\t};\n\n\t\tBuffer.prototype.inspect = function inspect () {\n\t\t let str = '';\n\t\t const max = exports$1.INSPECT_MAX_BYTES;\n\t\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t\t if (this.length > max) str += ' ... ';\n\t\t return '<Buffer ' + str + '>'\n\t\t};\n\t\tif (customInspectSymbol) {\n\t\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t\t}\n\n\t\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t\t if (isInstance(target, Uint8Array)) {\n\t\t target = Buffer.from(target, target.offset, target.byteLength);\n\t\t }\n\t\t if (!Buffer.isBuffer(target)) {\n\t\t throw new TypeError(\n\t\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t\t 'Received type ' + (typeof target)\n\t\t )\n\t\t }\n\n\t\t if (start === undefined) {\n\t\t start = 0;\n\t\t }\n\t\t if (end === undefined) {\n\t\t end = target ? target.length : 0;\n\t\t }\n\t\t if (thisStart === undefined) {\n\t\t thisStart = 0;\n\t\t }\n\t\t if (thisEnd === undefined) {\n\t\t thisEnd = this.length;\n\t\t }\n\n\t\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t\t throw new RangeError('out of range index')\n\t\t }\n\n\t\t if (thisStart >= thisEnd && start >= end) {\n\t\t return 0\n\t\t }\n\t\t if (thisStart >= thisEnd) {\n\t\t return -1\n\t\t }\n\t\t if (start >= end) {\n\t\t return 1\n\t\t }\n\n\t\t start >>>= 0;\n\t\t end >>>= 0;\n\t\t thisStart >>>= 0;\n\t\t thisEnd >>>= 0;\n\n\t\t if (this === target) return 0\n\n\t\t let x = thisEnd - thisStart;\n\t\t let y = end - start;\n\t\t const len = Math.min(x, y);\n\n\t\t const thisCopy = this.slice(thisStart, thisEnd);\n\t\t const targetCopy = target.slice(start, end);\n\n\t\t for (let i = 0; i < len; ++i) {\n\t\t if (thisCopy[i] !== targetCopy[i]) {\n\t\t x = thisCopy[i];\n\t\t y = targetCopy[i];\n\t\t break\n\t\t }\n\t\t }\n\n\t\t if (x < y) return -1\n\t\t if (y < x) return 1\n\t\t return 0\n\t\t};\n\n\t\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t\t//\n\t\t// Arguments:\n\t\t// - buffer - a Buffer to search\n\t\t// - val - a string, Buffer, or number\n\t\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t\t// - encoding - an optional encoding, relevant is val is a string\n\t\t// - dir - true for indexOf, false for lastIndexOf\n\t\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t\t // Empty buffer means no match\n\t\t if (buffer.length === 0) return -1\n\n\t\t // Normalize byteOffset\n\t\t if (typeof byteOffset === 'string') {\n\t\t encoding = byteOffset;\n\t\t byteOffset = 0;\n\t\t } else if (byteOffset > 0x7fffffff) {\n\t\t byteOffset = 0x7fffffff;\n\t\t } else if (byteOffset < -2147483648) {\n\t\t byteOffset = -2147483648;\n\t\t }\n\t\t byteOffset = +byteOffset; // Coerce to Number.\n\t\t if (numberIsNaN(byteOffset)) {\n\t\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t\t }\n\n\t\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t\t if (byteOffset >= buffer.length) {\n\t\t if (dir) return -1\n\t\t else byteOffset = buffer.length - 1;\n\t\t } else if (byteOffset < 0) {\n\t\t if (dir) byteOffset = 0;\n\t\t else return -1\n\t\t }\n\n\t\t // Normalize val\n\t\t if (typeof val === 'string') {\n\t\t val = Buffer.from(val, encoding);\n\t\t }\n\n\t\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t\t if (Buffer.isBuffer(val)) {\n\t\t // Special case: looking for empty string/buffer always fails\n\t\t if (val.length === 0) {\n\t\t return -1\n\t\t }\n\t\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t\t } else if (typeof val === 'number') {\n\t\t val = val & 0xFF; // Search for a byte value [0-255]\n\t\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t\t if (dir) {\n\t\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t\t } else {\n\t\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t\t }\n\t\t }\n\t\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t\t }\n\n\t\t throw new TypeError('val must be string, number or Buffer')\n\t\t}\n\n\t\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t\t let indexSize = 1;\n\t\t let arrLength = arr.length;\n\t\t let valLength = val.length;\n\n\t\t if (encoding !== undefined) {\n\t\t encoding = String(encoding).toLowerCase();\n\t\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t\t if (arr.length < 2 || val.length < 2) {\n\t\t return -1\n\t\t }\n\t\t indexSize = 2;\n\t\t arrLength /= 2;\n\t\t valLength /= 2;\n\t\t byteOffset /= 2;\n\t\t }\n\t\t }\n\n\t\t function read (buf, i) {\n\t\t if (indexSize === 1) {\n\t\t return buf[i]\n\t\t } else {\n\t\t return buf.readUInt16BE(i * indexSize)\n\t\t }\n\t\t }\n\n\t\t let i;\n\t\t if (dir) {\n\t\t let foundIndex = -1;\n\t\t for (i = byteOffset; i < arrLength; i++) {\n\t\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t\t if (foundIndex === -1) foundIndex = i;\n\t\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t\t } else {\n\t\t if (foundIndex !== -1) i -= i - foundIndex;\n\t\t foundIndex = -1;\n\t\t }\n\t\t }\n\t\t } else {\n\t\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t\t for (i = byteOffset; i >= 0; i--) {\n\t\t let found = true;\n\t\t for (let j = 0; j < valLength; j++) {\n\t\t if (read(arr, i + j) !== read(val, j)) {\n\t\t found = false;\n\t\t break\n\t\t }\n\t\t }\n\t\t if (found) return i\n\t\t }\n\t\t }\n\n\t\t return -1\n\t\t}\n\n\t\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t\t};\n\n\t\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t\t};\n\n\t\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t\t};\n\n\t\tfunction hexWrite (buf, string, offset, length) {\n\t\t offset = Number(offset) || 0;\n\t\t const remaining = buf.length - offset;\n\t\t if (!length) {\n\t\t length = remaining;\n\t\t } else {\n\t\t length = Number(length);\n\t\t if (length > remaining) {\n\t\t length = remaining;\n\t\t }\n\t\t }\n\n\t\t const strLen = string.length;\n\n\t\t if (length > strLen / 2) {\n\t\t length = strLen / 2;\n\t\t }\n\t\t let i;\n\t\t for (i = 0; i < length; ++i) {\n\t\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t\t if (numberIsNaN(parsed)) return i\n\t\t buf[offset + i] = parsed;\n\t\t }\n\t\t return i\n\t\t}\n\n\t\tfunction utf8Write (buf, string, offset, length) {\n\t\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t\t}\n\n\t\tfunction asciiWrite (buf, string, offset, length) {\n\t\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t\t}\n\n\t\tfunction base64Write (buf, string, offset, length) {\n\t\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t\t}\n\n\t\tfunction ucs2Write (buf, string, offset, length) {\n\t\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t\t}\n\n\t\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t\t // Buffer#write(string)\n\t\t if (offset === undefined) {\n\t\t encoding = 'utf8';\n\t\t length = this.length;\n\t\t offset = 0;\n\t\t // Buffer#write(string, encoding)\n\t\t } else if (length === undefined && typeof offset === 'string') {\n\t\t encoding = offset;\n\t\t length = this.length;\n\t\t offset = 0;\n\t\t // Buffer#write(string, offset[, length][, encoding])\n\t\t } else if (isFinite(offset)) {\n\t\t offset = offset >>> 0;\n\t\t if (isFinite(length)) {\n\t\t length = length >>> 0;\n\t\t if (encoding === undefined) encoding = 'utf8';\n\t\t } else {\n\t\t encoding = length;\n\t\t length = undefined;\n\t\t }\n\t\t } else {\n\t\t throw new Error(\n\t\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t\t )\n\t\t }\n\n\t\t const remaining = this.length - offset;\n\t\t if (length === undefined || length > remaining) length = remaining;\n\n\t\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t\t throw new RangeError('Attempt to write outside buffer bounds')\n\t\t }\n\n\t\t if (!encoding) encoding = 'utf8';\n\n\t\t let loweredCase = false;\n\t\t for (;;) {\n\t\t switch (encoding) {\n\t\t case 'hex':\n\t\t return hexWrite(this, string, offset, length)\n\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t return utf8Write(this, string, offset, length)\n\n\t\t case 'ascii':\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t return asciiWrite(this, string, offset, length)\n\n\t\t case 'base64':\n\t\t // Warning: maxLength not taken into account in base64Write\n\t\t return base64Write(this, string, offset, length)\n\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return ucs2Write(this, string, offset, length)\n\n\t\t default:\n\t\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t\t encoding = ('' + encoding).toLowerCase();\n\t\t loweredCase = true;\n\t\t }\n\t\t }\n\t\t};\n\n\t\tBuffer.prototype.toJSON = function toJSON () {\n\t\t return {\n\t\t type: 'Buffer',\n\t\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t\t }\n\t\t};\n\n\t\tfunction base64Slice (buf, start, end) {\n\t\t if (start === 0 && end === buf.length) {\n\t\t return base64.fromByteArray(buf)\n\t\t } else {\n\t\t return base64.fromByteArray(buf.slice(start, end))\n\t\t }\n\t\t}\n\n\t\tfunction utf8Slice (buf, start, end) {\n\t\t end = Math.min(buf.length, end);\n\t\t const res = [];\n\n\t\t let i = start;\n\t\t while (i < end) {\n\t\t const firstByte = buf[i];\n\t\t let codePoint = null;\n\t\t let bytesPerSequence = (firstByte > 0xEF)\n\t\t ? 4\n\t\t : (firstByte > 0xDF)\n\t\t ? 3\n\t\t : (firstByte > 0xBF)\n\t\t ? 2\n\t\t : 1;\n\n\t\t if (i + bytesPerSequence <= end) {\n\t\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t\t switch (bytesPerSequence) {\n\t\t case 1:\n\t\t if (firstByte < 0x80) {\n\t\t codePoint = firstByte;\n\t\t }\n\t\t break\n\t\t case 2:\n\t\t secondByte = buf[i + 1];\n\t\t if ((secondByte & 0xC0) === 0x80) {\n\t\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t\t if (tempCodePoint > 0x7F) {\n\t\t codePoint = tempCodePoint;\n\t\t }\n\t\t }\n\t\t break\n\t\t case 3:\n\t\t secondByte = buf[i + 1];\n\t\t thirdByte = buf[i + 2];\n\t\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t\t codePoint = tempCodePoint;\n\t\t }\n\t\t }\n\t\t break\n\t\t case 4:\n\t\t secondByte = buf[i + 1];\n\t\t thirdByte = buf[i + 2];\n\t\t fourthByte = buf[i + 3];\n\t\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t\t codePoint = tempCodePoint;\n\t\t }\n\t\t }\n\t\t }\n\t\t }\n\n\t\t if (codePoint === null) {\n\t\t // we did not generate a valid codePoint so insert a\n\t\t // replacement char (U+FFFD) and advance only 1 byte\n\t\t codePoint = 0xFFFD;\n\t\t bytesPerSequence = 1;\n\t\t } else if (codePoint > 0xFFFF) {\n\t\t // encode to utf16 (surrogate pair dance)\n\t\t codePoint -= 0x10000;\n\t\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t }\n\n\t\t res.push(codePoint);\n\t\t i += bytesPerSequence;\n\t\t }\n\n\t\t return decodeCodePointsArray(res)\n\t\t}\n\n\t\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t\t// the lowest limit is Chrome, with 0x10000 args.\n\t\t// We go 1 magnitude less, for safety\n\t\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\t\tfunction decodeCodePointsArray (codePoints) {\n\t\t const len = codePoints.length;\n\t\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t\t }\n\n\t\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t\t let res = '';\n\t\t let i = 0;\n\t\t while (i < len) {\n\t\t res += String.fromCharCode.apply(\n\t\t String,\n\t\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t\t );\n\t\t }\n\t\t return res\n\t\t}\n\n\t\tfunction asciiSlice (buf, start, end) {\n\t\t let ret = '';\n\t\t end = Math.min(buf.length, end);\n\n\t\t for (let i = start; i < end; ++i) {\n\t\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t\t }\n\t\t return ret\n\t\t}\n\n\t\tfunction latin1Slice (buf, start, end) {\n\t\t let ret = '';\n\t\t end = Math.min(buf.length, end);\n\n\t\t for (let i = start; i < end; ++i) {\n\t\t ret += String.fromCharCode(buf[i]);\n\t\t }\n\t\t return ret\n\t\t}\n\n\t\tfunction hexSlice (buf, start, end) {\n\t\t const len = buf.length;\n\n\t\t if (!start || start < 0) start = 0;\n\t\t if (!end || end < 0 || end > len) end = len;\n\n\t\t let out = '';\n\t\t for (let i = start; i < end; ++i) {\n\t\t out += hexSliceLookupTable[buf[i]];\n\t\t }\n\t\t return out\n\t\t}\n\n\t\tfunction utf16leSlice (buf, start, end) {\n\t\t const bytes = buf.slice(start, end);\n\t\t let res = '';\n\t\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t\t }\n\t\t return res\n\t\t}\n\n\t\tBuffer.prototype.slice = function slice (start, end) {\n\t\t const len = this.length;\n\t\t start = ~~start;\n\t\t end = end === undefined ? len : ~~end;\n\n\t\t if (start < 0) {\n\t\t start += len;\n\t\t if (start < 0) start = 0;\n\t\t } else if (start > len) {\n\t\t start = len;\n\t\t }\n\n\t\t if (end < 0) {\n\t\t end += len;\n\t\t if (end < 0) end = 0;\n\t\t } else if (end > len) {\n\t\t end = len;\n\t\t }\n\n\t\t if (end < start) end = start;\n\n\t\t const newBuf = this.subarray(start, end);\n\t\t // Return an augmented `Uint8Array` instance\n\t\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t\t return newBuf\n\t\t};\n\n\t\t/*\n\t\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t\t */\n\t\tfunction checkOffset (offset, ext, length) {\n\t\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t\t}\n\n\t\tBuffer.prototype.readUintLE =\n\t\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t\t let val = this[offset];\n\t\t let mul = 1;\n\t\t let i = 0;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t val += this[offset + i] * mul;\n\t\t }\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readUintBE =\n\t\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) {\n\t\t checkOffset(offset, byteLength, this.length);\n\t\t }\n\n\t\t let val = this[offset + --byteLength];\n\t\t let mul = 1;\n\t\t while (byteLength > 0 && (mul *= 0x100)) {\n\t\t val += this[offset + --byteLength] * mul;\n\t\t }\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readUint8 =\n\t\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t\t return this[offset]\n\t\t};\n\n\t\tBuffer.prototype.readUint16LE =\n\t\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t return this[offset] | (this[offset + 1] << 8)\n\t\t};\n\n\t\tBuffer.prototype.readUint16BE =\n\t\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t return (this[offset] << 8) | this[offset + 1]\n\t\t};\n\n\t\tBuffer.prototype.readUint32LE =\n\t\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return ((this[offset]) |\n\t\t (this[offset + 1] << 8) |\n\t\t (this[offset + 2] << 16)) +\n\t\t (this[offset + 3] * 0x1000000)\n\t\t};\n\n\t\tBuffer.prototype.readUint32BE =\n\t\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return (this[offset] * 0x1000000) +\n\t\t ((this[offset + 1] << 16) |\n\t\t (this[offset + 2] << 8) |\n\t\t this[offset + 3])\n\t\t};\n\n\t\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const lo = first +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 24;\n\n\t\t const hi = this[++offset] +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t last * 2 ** 24;\n\n\t\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t\t});\n\n\t\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const hi = first * 2 ** 24 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset];\n\n\t\t const lo = this[++offset] * 2 ** 24 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t last;\n\n\t\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t\t});\n\n\t\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t\t let val = this[offset];\n\t\t let mul = 1;\n\t\t let i = 0;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t val += this[offset + i] * mul;\n\t\t }\n\t\t mul *= 0x80;\n\n\t\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t\t let i = byteLength;\n\t\t let mul = 1;\n\t\t let val = this[offset + --i];\n\t\t while (i > 0 && (mul *= 0x100)) {\n\t\t val += this[offset + --i] * mul;\n\t\t }\n\t\t mul *= 0x80;\n\n\t\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t\t if (!(this[offset] & 0x80)) return (this[offset])\n\t\t return ((0xff - this[offset] + 1) * -1)\n\t\t};\n\n\t\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t const val = this[offset] | (this[offset + 1] << 8);\n\t\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t\t};\n\n\t\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t const val = this[offset + 1] | (this[offset] << 8);\n\t\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t\t};\n\n\t\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return (this[offset]) |\n\t\t (this[offset + 1] << 8) |\n\t\t (this[offset + 2] << 16) |\n\t\t (this[offset + 3] << 24)\n\t\t};\n\n\t\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return (this[offset] << 24) |\n\t\t (this[offset + 1] << 16) |\n\t\t (this[offset + 2] << 8) |\n\t\t (this[offset + 3])\n\t\t};\n\n\t\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const val = this[offset + 4] +\n\t\t this[offset + 5] * 2 ** 8 +\n\t\t this[offset + 6] * 2 ** 16 +\n\t\t (last << 24); // Overflow\n\n\t\t return (BigInt(val) << BigInt(32)) +\n\t\t BigInt(first +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 24)\n\t\t});\n\n\t\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const val = (first << 24) + // Overflow\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset];\n\n\t\t return (BigInt(val) << BigInt(32)) +\n\t\t BigInt(this[++offset] * 2 ** 24 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t last)\n\t\t});\n\n\t\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t\t return ieee754.read(this, offset, true, 23, 4)\n\t\t};\n\n\t\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t\t return ieee754.read(this, offset, false, 23, 4)\n\t\t};\n\n\t\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t\t return ieee754.read(this, offset, true, 52, 8)\n\t\t};\n\n\t\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t\t return ieee754.read(this, offset, false, 52, 8)\n\t\t};\n\n\t\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t\t}\n\n\t\tBuffer.prototype.writeUintLE =\n\t\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) {\n\t\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t\t }\n\n\t\t let mul = 1;\n\t\t let i = 0;\n\t\t this[offset] = value & 0xFF;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t this[offset + i] = (value / mul) & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeUintBE =\n\t\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) {\n\t\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t\t }\n\n\t\t let i = byteLength - 1;\n\t\t let mul = 1;\n\t\t this[offset + i] = value & 0xFF;\n\t\t while (--i >= 0 && (mul *= 0x100)) {\n\t\t this[offset + i] = (value / mul) & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeUint8 =\n\t\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t\t this[offset] = (value & 0xff);\n\t\t return offset + 1\n\t\t};\n\n\t\tBuffer.prototype.writeUint16LE =\n\t\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t\t this[offset] = (value & 0xff);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeUint16BE =\n\t\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t\t this[offset] = (value >>> 8);\n\t\t this[offset + 1] = (value & 0xff);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeUint32LE =\n\t\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t\t this[offset + 3] = (value >>> 24);\n\t\t this[offset + 2] = (value >>> 16);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t this[offset] = (value & 0xff);\n\t\t return offset + 4\n\t\t};\n\n\t\tBuffer.prototype.writeUint32BE =\n\t\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t\t this[offset] = (value >>> 24);\n\t\t this[offset + 1] = (value >>> 16);\n\t\t this[offset + 2] = (value >>> 8);\n\t\t this[offset + 3] = (value & 0xff);\n\t\t return offset + 4\n\t\t};\n\n\t\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t\t let lo = Number(value & BigInt(0xffffffff));\n\t\t buf[offset++] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset++] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset++] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset++] = lo;\n\t\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t\t buf[offset++] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset++] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset++] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset++] = hi;\n\t\t return offset\n\t\t}\n\n\t\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t\t let lo = Number(value & BigInt(0xffffffff));\n\t\t buf[offset + 7] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset + 6] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset + 5] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset + 4] = lo;\n\t\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t\t buf[offset + 3] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset + 2] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset + 1] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset] = hi;\n\t\t return offset + 8\n\t\t}\n\n\t\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t\t});\n\n\t\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t\t});\n\n\t\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t\t }\n\n\t\t let i = 0;\n\t\t let mul = 1;\n\t\t let sub = 0;\n\t\t this[offset] = value & 0xFF;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t\t sub = 1;\n\t\t }\n\t\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t\t }\n\n\t\t let i = byteLength - 1;\n\t\t let mul = 1;\n\t\t let sub = 0;\n\t\t this[offset + i] = value & 0xFF;\n\t\t while (--i >= 0 && (mul *= 0x100)) {\n\t\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t\t sub = 1;\n\t\t }\n\t\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -128);\n\t\t if (value < 0) value = 0xff + value + 1;\n\t\t this[offset] = (value & 0xff);\n\t\t return offset + 1\n\t\t};\n\n\t\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -32768);\n\t\t this[offset] = (value & 0xff);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -32768);\n\t\t this[offset] = (value >>> 8);\n\t\t this[offset + 1] = (value & 0xff);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -2147483648);\n\t\t this[offset] = (value & 0xff);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t this[offset + 2] = (value >>> 16);\n\t\t this[offset + 3] = (value >>> 24);\n\t\t return offset + 4\n\t\t};\n\n\t\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -2147483648);\n\t\t if (value < 0) value = 0xffffffff + value + 1;\n\t\t this[offset] = (value >>> 24);\n\t\t this[offset + 1] = (value >>> 16);\n\t\t this[offset + 2] = (value >>> 8);\n\t\t this[offset + 3] = (value & 0xff);\n\t\t return offset + 4\n\t\t};\n\n\t\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t\t});\n\n\t\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t\t});\n\n\t\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t\t if (offset < 0) throw new RangeError('Index out of range')\n\t\t}\n\n\t\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t checkIEEE754(buf, value, offset, 4);\n\t\t }\n\t\t ieee754.write(buf, value, offset, littleEndian, 23, 4);\n\t\t return offset + 4\n\t\t}\n\n\t\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t\t return writeFloat(this, value, offset, true, noAssert)\n\t\t};\n\n\t\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t\t return writeFloat(this, value, offset, false, noAssert)\n\t\t};\n\n\t\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t checkIEEE754(buf, value, offset, 8);\n\t\t }\n\t\t ieee754.write(buf, value, offset, littleEndian, 52, 8);\n\t\t return offset + 8\n\t\t}\n\n\t\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t\t return writeDouble(this, value, offset, true, noAssert)\n\t\t};\n\n\t\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t\t return writeDouble(this, value, offset, false, noAssert)\n\t\t};\n\n\t\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\t\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t\t if (!start) start = 0;\n\t\t if (!end && end !== 0) end = this.length;\n\t\t if (targetStart >= target.length) targetStart = target.length;\n\t\t if (!targetStart) targetStart = 0;\n\t\t if (end > 0 && end < start) end = start;\n\n\t\t // Copy 0 bytes; we're done\n\t\t if (end === start) return 0\n\t\t if (target.length === 0 || this.length === 0) return 0\n\n\t\t // Fatal error conditions\n\t\t if (targetStart < 0) {\n\t\t throw new RangeError('targetStart out of bounds')\n\t\t }\n\t\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t\t // Are we oob?\n\t\t if (end > this.length) end = this.length;\n\t\t if (target.length - targetStart < end - start) {\n\t\t end = target.length - targetStart + start;\n\t\t }\n\n\t\t const len = end - start;\n\n\t\t if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n\t\t // Use built-in when available, missing from IE11\n\t\t this.copyWithin(targetStart, start, end);\n\t\t } else {\n\t\t Uint8Array.prototype.set.call(\n\t\t target,\n\t\t this.subarray(start, end),\n\t\t targetStart\n\t\t );\n\t\t }\n\n\t\t return len\n\t\t};\n\n\t\t// Usage:\n\t\t// buffer.fill(number[, offset[, end]])\n\t\t// buffer.fill(buffer[, offset[, end]])\n\t\t// buffer.fill(string[, offset[, end]][, encoding])\n\t\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t\t // Handle string cases:\n\t\t if (typeof val === 'string') {\n\t\t if (typeof start === 'string') {\n\t\t encoding = start;\n\t\t start = 0;\n\t\t end = this.length;\n\t\t } else if (typeof end === 'string') {\n\t\t encoding = end;\n\t\t end = this.length;\n\t\t }\n\t\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t\t throw new TypeError('encoding must be a string')\n\t\t }\n\t\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t\t throw new TypeError('Unknown encoding: ' + encoding)\n\t\t }\n\t\t if (val.length === 1) {\n\t\t const code = val.charCodeAt(0);\n\t\t if ((encoding === 'utf8' && code < 128) ||\n\t\t encoding === 'latin1') {\n\t\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t\t val = code;\n\t\t }\n\t\t }\n\t\t } else if (typeof val === 'number') {\n\t\t val = val & 255;\n\t\t } else if (typeof val === 'boolean') {\n\t\t val = Number(val);\n\t\t }\n\n\t\t // Invalid ranges are not set to a default, so can range check early.\n\t\t if (start < 0 || this.length < start || this.length < end) {\n\t\t throw new RangeError('Out of range index')\n\t\t }\n\n\t\t if (end <= start) {\n\t\t return this\n\t\t }\n\n\t\t start = start >>> 0;\n\t\t end = end === undefined ? this.length : end >>> 0;\n\n\t\t if (!val) val = 0;\n\n\t\t let i;\n\t\t if (typeof val === 'number') {\n\t\t for (i = start; i < end; ++i) {\n\t\t this[i] = val;\n\t\t }\n\t\t } else {\n\t\t const bytes = Buffer.isBuffer(val)\n\t\t ? val\n\t\t : Buffer.from(val, encoding);\n\t\t const len = bytes.length;\n\t\t if (len === 0) {\n\t\t throw new TypeError('The value \"' + val +\n\t\t '\" is invalid for argument \"value\"')\n\t\t }\n\t\t for (i = 0; i < end - start; ++i) {\n\t\t this[i + start] = bytes[i % len];\n\t\t }\n\t\t }\n\n\t\t return this\n\t\t};\n\n\t\t// CUSTOM ERRORS\n\t\t// =============\n\n\t\t// Simplified versions from Node, changed for Buffer-only usage\n\t\tconst errors = {};\n\t\tfunction E (sym, getMessage, Base) {\n\t\t errors[sym] = class NodeError extends Base {\n\t\t constructor () {\n\t\t super();\n\n\t\t Object.defineProperty(this, 'message', {\n\t\t value: getMessage.apply(this, arguments),\n\t\t writable: true,\n\t\t configurable: true\n\t\t });\n\n\t\t // Add the error code to the name to include it in the stack trace.\n\t\t this.name = `${this.name} [${sym}]`;\n\t\t // Access the stack to generate the error message including the error code\n\t\t // from the name.\n\t\t this.stack; // eslint-disable-line no-unused-expressions\n\t\t // Reset the name to the actual name.\n\t\t delete this.name;\n\t\t }\n\n\t\t get code () {\n\t\t return sym\n\t\t }\n\n\t\t set code (value) {\n\t\t Object.defineProperty(this, 'code', {\n\t\t configurable: true,\n\t\t enumerable: true,\n\t\t value,\n\t\t writable: true\n\t\t });\n\t\t }\n\n\t\t toString () {\n\t\t return `${this.name} [${sym}]: ${this.message}`\n\t\t }\n\t\t };\n\t\t}\n\n\t\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t\t function (name) {\n\t\t if (name) {\n\t\t return `${name} is outside of buffer bounds`\n\t\t }\n\n\t\t return 'Attempt to access memory outside buffer bounds'\n\t\t }, RangeError);\n\t\tE('ERR_INVALID_ARG_TYPE',\n\t\t function (name, actual) {\n\t\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t\t }, TypeError);\n\t\tE('ERR_OUT_OF_RANGE',\n\t\t function (str, range, input) {\n\t\t let msg = `The value of \"${str}\" is out of range.`;\n\t\t let received = input;\n\t\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t\t received = addNumericalSeparator(String(input));\n\t\t } else if (typeof input === 'bigint') {\n\t\t received = String(input);\n\t\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t\t received = addNumericalSeparator(received);\n\t\t }\n\t\t received += 'n';\n\t\t }\n\t\t msg += ` It must be ${range}. Received ${received}`;\n\t\t return msg\n\t\t }, RangeError);\n\n\t\tfunction addNumericalSeparator (val) {\n\t\t let res = '';\n\t\t let i = val.length;\n\t\t const start = val[0] === '-' ? 1 : 0;\n\t\t for (; i >= start + 4; i -= 3) {\n\t\t res = `_${val.slice(i - 3, i)}${res}`;\n\t\t }\n\t\t return `${val.slice(0, i)}${res}`\n\t\t}\n\n\t\t// CHECK FUNCTIONS\n\t\t// ===============\n\n\t\tfunction checkBounds (buf, offset, byteLength) {\n\t\t validateNumber(offset, 'offset');\n\t\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t\t boundsError(offset, buf.length - (byteLength + 1));\n\t\t }\n\t\t}\n\n\t\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t\t if (value > max || value < min) {\n\t\t const n = typeof min === 'bigint' ? 'n' : '';\n\t\t let range;\n\t\t {\n\t\t if (min === 0 || min === BigInt(0)) {\n\t\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t\t } else {\n\t\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t\t }\n\t\t }\n\t\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t\t }\n\t\t checkBounds(buf, offset, byteLength);\n\t\t}\n\n\t\tfunction validateNumber (value, name) {\n\t\t if (typeof value !== 'number') {\n\t\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t\t }\n\t\t}\n\n\t\tfunction boundsError (value, length, type) {\n\t\t if (Math.floor(value) !== value) {\n\t\t validateNumber(value, type);\n\t\t throw new errors.ERR_OUT_OF_RANGE('offset', 'an integer', value)\n\t\t }\n\n\t\t if (length < 0) {\n\t\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t\t }\n\n\t\t throw new errors.ERR_OUT_OF_RANGE('offset',\n\t\t `>= ${0} and <= ${length}`,\n\t\t value)\n\t\t}\n\n\t\t// HELPER FUNCTIONS\n\t\t// ================\n\n\t\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\t\tfunction base64clean (str) {\n\t\t // Node takes equal signs as end of the Base64 encoding\n\t\t str = str.split('=')[0];\n\t\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t\t // Node converts strings with length < 2 to ''\n\t\t if (str.length < 2) return ''\n\t\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t\t while (str.length % 4 !== 0) {\n\t\t str = str + '=';\n\t\t }\n\t\t return str\n\t\t}\n\n\t\tfunction utf8ToBytes (string, units) {\n\t\t units = units || Infinity;\n\t\t let codePoint;\n\t\t const length = string.length;\n\t\t let leadSurrogate = null;\n\t\t const bytes = [];\n\n\t\t for (let i = 0; i < length; ++i) {\n\t\t codePoint = string.charCodeAt(i);\n\n\t\t // is surrogate component\n\t\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t\t // last char was a lead\n\t\t if (!leadSurrogate) {\n\t\t // no lead yet\n\t\t if (codePoint > 0xDBFF) {\n\t\t // unexpected trail\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t continue\n\t\t } else if (i + 1 === length) {\n\t\t // unpaired lead\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t continue\n\t\t }\n\n\t\t // valid lead\n\t\t leadSurrogate = codePoint;\n\n\t\t continue\n\t\t }\n\n\t\t // 2 leads in a row\n\t\t if (codePoint < 0xDC00) {\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t leadSurrogate = codePoint;\n\t\t continue\n\t\t }\n\n\t\t // valid surrogate pair\n\t\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t\t } else if (leadSurrogate) {\n\t\t // valid bmp char, but last char was a lead\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t }\n\n\t\t leadSurrogate = null;\n\n\t\t // encode utf8\n\t\t if (codePoint < 0x80) {\n\t\t if ((units -= 1) < 0) break\n\t\t bytes.push(codePoint);\n\t\t } else if (codePoint < 0x800) {\n\t\t if ((units -= 2) < 0) break\n\t\t bytes.push(\n\t\t codePoint >> 0x6 | 0xC0,\n\t\t codePoint & 0x3F | 0x80\n\t\t );\n\t\t } else if (codePoint < 0x10000) {\n\t\t if ((units -= 3) < 0) break\n\t\t bytes.push(\n\t\t codePoint >> 0xC | 0xE0,\n\t\t codePoint >> 0x6 & 0x3F | 0x80,\n\t\t codePoint & 0x3F | 0x80\n\t\t );\n\t\t } else if (codePoint < 0x110000) {\n\t\t if ((units -= 4) < 0) break\n\t\t bytes.push(\n\t\t codePoint >> 0x12 | 0xF0,\n\t\t codePoint >> 0xC & 0x3F | 0x80,\n\t\t codePoint >> 0x6 & 0x3F | 0x80,\n\t\t codePoint & 0x3F | 0x80\n\t\t );\n\t\t } else {\n\t\t throw new Error('Invalid code point')\n\t\t }\n\t\t }\n\n\t\t return bytes\n\t\t}\n\n\t\tfunction asciiToBytes (str) {\n\t\t const byteArray = [];\n\t\t for (let i = 0; i < str.length; ++i) {\n\t\t // Node's code seems to be doing this and not & 0x7F..\n\t\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t\t }\n\t\t return byteArray\n\t\t}\n\n\t\tfunction utf16leToBytes (str, units) {\n\t\t let c, hi, lo;\n\t\t const byteArray = [];\n\t\t for (let i = 0; i < str.length; ++i) {\n\t\t if ((units -= 2) < 0) break\n\n\t\t c = str.charCodeAt(i);\n\t\t hi = c >> 8;\n\t\t lo = c % 256;\n\t\t byteArray.push(lo);\n\t\t byteArray.push(hi);\n\t\t }\n\n\t\t return byteArray\n\t\t}\n\n\t\tfunction base64ToBytes (str) {\n\t\t return base64.toByteArray(base64clean(str))\n\t\t}\n\n\t\tfunction blitBuffer (src, dst, offset, length) {\n\t\t let i;\n\t\t for (i = 0; i < length; ++i) {\n\t\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t\t dst[i + offset] = src[i];\n\t\t }\n\t\t return i\n\t\t}\n\n\t\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t\t// the `instanceof` check but they should be treated as of that type.\n\t\t// See: https://github.com/feross/buffer/issues/166\n\t\tfunction isInstance (obj, type) {\n\t\t return obj instanceof type ||\n\t\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t\t obj.constructor.name === type.name)\n\t\t}\n\t\tfunction numberIsNaN (obj) {\n\t\t // For IE11 support\n\t\t return obj !== obj // eslint-disable-line no-self-compare\n\t\t}\n\n\t\t// Create lookup table for `toString('hex')`\n\t\t// See: https://github.com/feross/buffer/issues/219\n\t\tconst hexSliceLookupTable = (function () {\n\t\t const alphabet = '0123456789abcdef';\n\t\t const table = new Array(256);\n\t\t for (let i = 0; i < 16; ++i) {\n\t\t const i16 = i * 16;\n\t\t for (let j = 0; j < 16; ++j) {\n\t\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t\t }\n\t\t }\n\t\t return table\n\t\t})();\n\n\t\t// Return not function with Error if BigInt not supported\n\t\tfunction defineBigIntMethod (fn) {\n\t\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t\t}\n\n\t\tfunction BufferBigIntNotDefined () {\n\t\t throw new Error('BigInt not supported')\n\t\t} \n\t} (buffer));\n\treturn buffer;\n}\n\nvar bufferExports = requireBuffer();\n\nvar isRetryAllowed$1;\nvar hasRequiredIsRetryAllowed;\n\nfunction requireIsRetryAllowed () {\n\tif (hasRequiredIsRetryAllowed) return isRetryAllowed$1;\n\thasRequiredIsRetryAllowed = 1;\n\n\tconst denyList = new Set([\n\t\t'ENOTFOUND',\n\t\t'ENETUNREACH',\n\n\t\t// SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328\n\t\t'UNABLE_TO_GET_ISSUER_CERT',\n\t\t'UNABLE_TO_GET_CRL',\n\t\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t\t'CERT_SIGNATURE_FAILURE',\n\t\t'CRL_SIGNATURE_FAILURE',\n\t\t'CERT_NOT_YET_VALID',\n\t\t'CERT_HAS_EXPIRED',\n\t\t'CRL_NOT_YET_VALID',\n\t\t'CRL_HAS_EXPIRED',\n\t\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t\t'OUT_OF_MEM',\n\t\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t\t'CERT_CHAIN_TOO_LONG',\n\t\t'CERT_REVOKED',\n\t\t'INVALID_CA',\n\t\t'PATH_LENGTH_EXCEEDED',\n\t\t'INVALID_PURPOSE',\n\t\t'CERT_UNTRUSTED',\n\t\t'CERT_REJECTED',\n\t\t'HOSTNAME_MISMATCH'\n\t]);\n\n\t// TODO: Use `error?.code` when targeting Node.js 14\n\tisRetryAllowed$1 = error => !denyList.has(error && error.code);\n\treturn isRetryAllowed$1;\n}\n\nvar isRetryAllowedExports = requireIsRetryAllowed();\nvar isRetryAllowed = /*@__PURE__*/getDefaultExportFromCjs(isRetryAllowedExports);\n\nconst namespace = 'axios-retry';\nfunction isNetworkError(error) {\n const CODE_EXCLUDE_LIST = ['ERR_CANCELED', 'ECONNABORTED'];\n if (error.response) {\n return false;\n }\n if (!error.code) {\n return false;\n }\n // Prevents retrying timed out & cancelled requests\n if (CODE_EXCLUDE_LIST.includes(error.code)) {\n return false;\n }\n // Prevents retrying unsafe errors\n return isRetryAllowed(error);\n}\nconst SAFE_HTTP_METHODS = ['get', 'head', 'options'];\nconst IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']);\nfunction isRetryableError(error) {\n return (error.code !== 'ECONNABORTED' &&\n (!error.response ||\n error.response.status === 429 ||\n (error.response.status >= 500 && error.response.status <= 599)));\n}\nfunction isSafeRequestError(error) {\n if (!error.config?.method) {\n // Cannot determine if the request can be retried\n return false;\n }\n return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nfunction isIdempotentRequestError(error) {\n if (!error.config?.method) {\n // Cannot determine if the request can be retried\n return false;\n }\n return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nfunction isNetworkOrIdempotentRequestError(error) {\n return isNetworkError(error) || isIdempotentRequestError(error);\n}\nfunction retryAfter(error = undefined) {\n const retryAfterHeader = error?.response?.headers['retry-after'];\n if (!retryAfterHeader) {\n return 0;\n }\n // if the retry after header is a number, convert it to milliseconds\n let retryAfterMs = (Number(retryAfterHeader) || 0) * 1000;\n // If the retry after header is a date, get the number of milliseconds until that date\n if (retryAfterMs === 0) {\n retryAfterMs = (new Date(retryAfterHeader).valueOf() || 0) - Date.now();\n }\n return Math.max(0, retryAfterMs);\n}\nfunction noDelay(_retryNumber = 0, error = undefined) {\n return Math.max(0, retryAfter(error));\n}\nfunction exponentialDelay(retryNumber = 0, error = undefined, delayFactor = 100) {\n const calculatedDelay = 2 ** retryNumber * delayFactor;\n const delay = Math.max(calculatedDelay, retryAfter(error));\n const randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay\n return delay + randomSum;\n}\n/**\n * Linear delay\n * @param {number | undefined} delayFactor - delay factor in milliseconds (default: 100)\n * @returns {function} (retryNumber: number, error: AxiosError | undefined) => number\n */\nfunction linearDelay(delayFactor = 100) {\n return (retryNumber = 0, error = undefined) => {\n const delay = retryNumber * delayFactor;\n return Math.max(delay, retryAfter(error));\n };\n}\nconst DEFAULT_OPTIONS = {\n retries: 3,\n retryCondition: isNetworkOrIdempotentRequestError,\n retryDelay: noDelay,\n shouldResetTimeout: false,\n onRetry: () => { },\n onMaxRetryTimesExceeded: () => { },\n validateResponse: null\n};\nfunction getRequestOptions(config, defaultOptions) {\n return { ...DEFAULT_OPTIONS, ...defaultOptions, ...config[namespace] };\n}\nfunction setCurrentState(config, defaultOptions, resetLastRequestTime = false) {\n const currentState = getRequestOptions(config, defaultOptions || {});\n currentState.retryCount = currentState.retryCount || 0;\n if (!currentState.lastRequestTime || resetLastRequestTime) {\n currentState.lastRequestTime = Date.now();\n }\n config[namespace] = currentState;\n return currentState;\n}\nfunction fixConfig(axiosInstance, config) {\n // @ts-ignore\n if (axiosInstance.defaults.agent === config.agent) {\n // @ts-ignore\n delete config.agent;\n }\n if (axiosInstance.defaults.httpAgent === config.httpAgent) {\n delete config.httpAgent;\n }\n if (axiosInstance.defaults.httpsAgent === config.httpsAgent) {\n delete config.httpsAgent;\n }\n}\nasync function shouldRetry(currentState, error) {\n const { retries, retryCondition } = currentState;\n const shouldRetryOrPromise = (currentState.retryCount || 0) < retries && retryCondition(error);\n // This could be a promise\n if (typeof shouldRetryOrPromise === 'object') {\n try {\n const shouldRetryPromiseResult = await shouldRetryOrPromise;\n // keep return true unless shouldRetryPromiseResult return false for compatibility\n return shouldRetryPromiseResult !== false;\n }\n catch (_err) {\n return false;\n }\n }\n return shouldRetryOrPromise;\n}\nasync function handleRetry(axiosInstance, currentState, error, config) {\n currentState.retryCount += 1;\n const { retryDelay, shouldResetTimeout, onRetry } = currentState;\n const delay = retryDelay(currentState.retryCount, error);\n // Axios fails merging this configuration to the default configuration because it has an issue\n // with circular structures: https://github.com/mzabriskie/axios/issues/370\n fixConfig(axiosInstance, config);\n if (!shouldResetTimeout && config.timeout && currentState.lastRequestTime) {\n const lastRequestDuration = Date.now() - currentState.lastRequestTime;\n const timeout = config.timeout - lastRequestDuration - delay;\n if (timeout <= 0) {\n return Promise.reject(error);\n }\n config.timeout = timeout;\n }\n config.transformRequest = [(data) => data];\n await onRetry(currentState.retryCount, error, config);\n if (config.signal?.aborted) {\n return Promise.resolve(axiosInstance(config));\n }\n return new Promise((resolve) => {\n const abortListener = () => {\n clearTimeout(timeout);\n resolve(axiosInstance(config));\n };\n const timeout = setTimeout(() => {\n resolve(axiosInstance(config));\n if (config.signal?.removeEventListener) {\n config.signal.removeEventListener('abort', abortListener);\n }\n }, delay);\n if (config.signal?.addEventListener) {\n config.signal.addEventListener('abort', abortListener, { once: true });\n }\n });\n}\nasync function handleMaxRetryTimesExceeded(currentState, error) {\n if (currentState.retryCount >= currentState.retries)\n await currentState.onMaxRetryTimesExceeded(error, currentState.retryCount);\n}\nconst axiosRetry = (axiosInstance, defaultOptions) => {\n const requestInterceptorId = axiosInstance.interceptors.request.use((config) => {\n setCurrentState(config, defaultOptions, true);\n if (config[namespace]?.validateResponse) {\n // by setting this, all HTTP responses will be go through the error interceptor first\n config.validateStatus = () => false;\n }\n return config;\n });\n const responseInterceptorId = axiosInstance.interceptors.response.use(null, async (error) => {\n const { config } = error;\n // If we have no information to retry the request\n if (!config) {\n return Promise.reject(error);\n }\n const currentState = setCurrentState(config, defaultOptions);\n if (error.response && currentState.validateResponse?.(error.response)) {\n // no issue with response\n return error.response;\n }\n if (await shouldRetry(currentState, error)) {\n return handleRetry(axiosInstance, currentState, error, config);\n }\n await handleMaxRetryTimesExceeded(currentState, error);\n return Promise.reject(error);\n });\n return { requestInterceptorId, responseInterceptorId };\n};\n// Compatibility with CommonJS\naxiosRetry.isNetworkError = isNetworkError;\naxiosRetry.isSafeRequestError = isSafeRequestError;\naxiosRetry.isIdempotentRequestError = isIdempotentRequestError;\naxiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\naxiosRetry.exponentialDelay = exponentialDelay;\naxiosRetry.linearDelay = linearDelay;\naxiosRetry.isRetryableError = isRetryableError;\n\n/**\n * Resolve the refresh/revoke base URL to a CONFIGURED issuer only. The session's\n * `issuer` is persisted in client storage; if that storage is tampered (e.g. XSS)\n * a raw value could redirect the refresh token to an attacker host. So we accept the\n * stored issuer only when it exactly matches a configured allowlisted issuer\n * (authApiUrl / humanAuthApiUrl); otherwise we fall back to authApiUrl. The refresh\n * token is therefore never POSTed anywhere except a Bounded-configured origin.\n */\nfunction resolveIssuerBase(issuer, cfg) {\n const norm = (u) => (u || '').replace(/\\/$/, '');\n const allow = [norm(cfg.authApiUrl), norm(cfg.humanAuthApiUrl)].filter(Boolean);\n const want = norm(issuer);\n if (want && allow.includes(want))\n return want;\n return norm(cfg.authApiUrl);\n}\nlet axiosClient;\nasync function getAxiosAuthClient() {\n if (!axiosClient) {\n const config = await getConfig();\n axiosClient = axios.create({\n baseURL: config.authApiUrl,\n headers: {\n 'Content-Type': 'application/json',\n },\n timeout: 30000, // 30s timeout, matching makeApiRequest\n });\n }\n return axiosClient;\n}\nasync function genAuthNonce() {\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/auth/nonce', {\n appId\n });\n return response.data.nonce;\n}\n// authMethods that the /session issuer treats as a Solana wallet-signature flow.\n// createSessionWithSignature ALWAYS exchanges an Ed25519 signature over the\n// canonical genSolanaMessage prompt (server keypair, Phantom, mobile wallet,\n// guest device key), so the method it reports must be a wallet method — never a\n// human-login method like 'email' (the SDK default). Both issuers reject a\n// signature carrying a non-wallet authMethod: the bounded-auth worker returns\n// 501 (\"email-OTP not yet enabled\") and the legacy session-management server\n// returns 400 (\"EVM/SIWE auth is no longer supported\"). See routes.ts /session.\n// Wallet/signature methods whose authMethod is forwarded verbatim to the /session\n// issuer. 'guest' is included so anonymous (device-keypair) logins arrive as\n// authMethod:\"guest\" — the issuer gates them on the app's anonymous opt-in and\n// stamps an is_anonymous claim. Without this a guest would be indistinguishable\n// from 'phantom' and couldn't be gated or flagged.\nconst SIGNATURE_AUTH_METHODS = new Set(['phantom', 'mobile-wallet-adapter', 'guest']);\nasync function createSessionWithSignature(address, message, signature) {\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n // Preserve a wallet authMethod when one is configured (so the backend records\n // the real method, e.g. mobile-wallet-adapter); otherwise default to the\n // canonical Solana wallet method 'phantom' that every /session issuer accepts\n // for a signature exchange. This is what makes the server SDK + guest device\n // keypair work under the email-default config.\n const authMethod = SIGNATURE_AUTH_METHODS.has(config.authMethod) ? config.authMethod : 'phantom';\n const response = await client.post('/session', {\n appId,\n address,\n message,\n signature,\n authMethod\n });\n return response.data;\n}\n// Deduplicate concurrent refreshSession calls to prevent multiple code paths\n// (WebSocket reconnection, periodic refresh, API 401 retry) from all hitting\n// /session/refresh simultaneously.\n// Note: module-level state is shared across requests in SSR/Node — acceptable\n// since there is only one active session per server instance (same pattern as\n// refreshInFlight in api.ts).\nlet refreshInFlight$1 = null;\nlet refreshInFlightToken = null;\nasync function refreshSession(refreshToken, issuer) {\n // Dedupe per (issuer, token): the rotating token is single-use, so two\n // concurrent refreshes of the SAME token must share one in-flight request or\n // the second would look like reuse and revoke the family.\n const dedupeKey = `${issuer || ''}::${refreshToken}`;\n if (refreshInFlight$1 && refreshInFlightToken === dedupeKey) {\n return refreshInFlight$1;\n }\n refreshInFlightToken = dedupeKey;\n let currentFlight;\n currentFlight = refreshInFlight$1 = (async () => {\n try {\n const config = await getConfig();\n const appId = config.appId;\n // Route to the issuer that MINTED this session (email/social ->\n // humanAuthApiUrl, wallet/guest -> authApiUrl), validated against the\n // configured allowlist so a tampered stored issuer can't exfiltrate the token.\n const base = resolveIssuerBase(issuer, config);\n const response = await axios.post(`${base}/session/refresh`, {\n refreshToken,\n appId\n }, { headers: { 'Content-Type': 'application/json' }, timeout: 30000 });\n return response.data;\n }\n finally {\n // Only clear if we're still the active in-flight request.\n // A second call with a different token may have replaced us.\n if (refreshInFlight$1 === currentFlight) {\n refreshInFlight$1 = null;\n refreshInFlightToken = null;\n }\n }\n })();\n return refreshInFlight$1;\n}\n/**\n * Revoke a session's refresh-token family server-side (logout). Best-effort: if the\n * call fails the local logout still proceeds. Routes to the minting issuer.\n */\nasync function revokeSession(refreshToken, issuer) {\n if (!refreshToken)\n return;\n try {\n const config = await getConfig();\n const base = resolveIssuerBase(issuer, config);\n await axios.post(`${base}/session/revoke`, {\n refreshToken,\n appId: config.appId,\n }, { headers: { 'Content-Type': 'application/json' }, timeout: 15000 });\n }\n catch (_a) {\n // best-effort: logout must succeed even if the revoke call doesn't\n }\n}\nasync function signSessionCreateMessage(_signMessageFunction) {\n}\n\nclass WebSessionManager {\n /**\n * Decode a base64url-encoded string (used by JWT payloads).\n * Normalises base64url → standard base64 before calling browser atob().\n */\n static decodeBase64Url(input) {\n let b64 = input.replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return atob(b64);\n }\n /* ------------------------------------------------------------------ */\n /* STORE */\n /* ------------------------------------------------------------------ */\n static async storeSession(address, accessToken, idToken, refreshToken, issuer) {\n if (typeof window === \"undefined\")\n return;\n // JWT-wallet binding: refuse to store a session whose idToken is bound\n // to a different wallet than `address`. Prevents races that would otherwise\n // leave localStorage with mismatched address/token state.\n try {\n const payloadB64 = idToken.split(\".\")[1];\n if (payloadB64) {\n const payload = JSON.parse(this.decodeBase64Url(payloadB64));\n const tokenWallet = payload[\"custom:walletAddress\"];\n if (tokenWallet && tokenWallet !== address) {\n throw new Error(`[WebSessionManager] Refusing to store session: address (${address}) does not match idToken custom:walletAddress (${tokenWallet})`);\n }\n if (!tokenWallet) {\n console.warn(\"[WebSessionManager] storeSession: idToken has no custom:walletAddress claim — writing without validation\");\n }\n }\n }\n catch (err) {\n if (typeof (err === null || err === void 0 ? void 0 : err.message) === \"string\" && err.message.includes(\"Refusing to store session\")) {\n throw err;\n }\n console.warn(\"[WebSessionManager] storeSession: failed to decode idToken for validation:\", err);\n }\n const config = await getConfig();\n const currentAppId = config.appId;\n // The auth issuer base that minted this session, so silent refresh POSTs to\n // the RIGHT /session/refresh. Email overrides with humanAuthApiUrl; all\n // wallet/guest/signature flows default to authApiUrl (the bounded-auth issuer).\n const sessionIssuer = (issuer || config.authApiUrl || \"\").replace(/\\/$/, \"\");\n localStorage.setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(Object.assign({ address,\n accessToken,\n idToken,\n refreshToken, appId: currentAppId }, (sessionIssuer ? { issuer: sessionIssuer } : {}))));\n }\n /* ------------------------------------------------------------------ */\n /* GET */\n /* ------------------------------------------------------------------ */\n static async getSession() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n if (!session)\n return null;\n const sessionObj = JSON.parse(session);\n /* ---------- validate app-id ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return null;\n }\n /* ---------- check JWT expiration ---------- */\n try {\n const { accessToken } = sessionObj;\n const { exp } = JSON.parse(this.decodeBase64Url(accessToken.split(\".\")[1]));\n if (Date.now() > exp * 1000) {\n const { refreshToken } = sessionObj;\n if (!refreshToken)\n return null;\n const refreshed = await refreshSession(refreshToken, sessionObj.issuer);\n if ((refreshed === null || refreshed === void 0 ? void 0 : refreshed.idToken) && (refreshed === null || refreshed === void 0 ? void 0 : refreshed.accessToken)) {\n await this.updateIdTokenAndAccessToken(refreshed.idToken, refreshed.accessToken, \n // Persist the ROTATED refresh token — the old one is now\n // single-use spent; reusing it would revoke the family.\n refreshed.refreshToken);\n const newSession = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n if (!newSession)\n return null;\n const newObj = JSON.parse(newSession);\n return { address: newObj.address, session: newObj };\n }\n // Refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n }\n catch (err) {\n // Token decode or refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n return { address: sessionObj.address, session: sessionObj };\n }\n /* ------------------------------------------------------------------ */\n /* CLEAR */\n /* ------------------------------------------------------------------ */\n static clearSession() {\n if (typeof window === \"undefined\")\n return;\n localStorage.removeItem(this.BOUNDED_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* IS-AUTH */\n /* ------------------------------------------------------------------ */\n static isAuthenticated() {\n // NOTE: this remains synchronous to stay backward compatible\n return !!localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* TOKEN HELPERS */\n /* ------------------------------------------------------------------ */\n static getIdToken() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).idToken : null;\n }\n static getRefreshToken() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).refreshToken : null;\n }\n /** The issuer base that minted this session (for routing silent refresh). */\n static getIssuer() {\n var _a;\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n return session ? ((_a = JSON.parse(session).issuer) !== null && _a !== void 0 ? _a : null) : null;\n }\n /* ------------------------------------------------------------------ */\n /* UPDATE TOKENS */\n /* ------------------------------------------------------------------ */\n static async updateIdTokenAndAccessToken(idToken, accessToken, refreshToken) {\n var _a;\n if (typeof window === \"undefined\")\n return;\n const session = localStorage.getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n if (!session)\n return;\n const sessionObj = JSON.parse(session);\n /* ---------- app-id guard ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return;\n }\n sessionObj.idToken = idToken;\n sessionObj.accessToken = accessToken;\n // Persist the rotated refresh token when the issuer returns a new one.\n if (typeof refreshToken === \"string\" && refreshToken.length > 0) {\n sessionObj.refreshToken = refreshToken;\n }\n (_a = sessionObj.appId) !== null && _a !== void 0 ? _a : (sessionObj.appId = config.appId);\n localStorage.setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));\n }\n}\nWebSessionManager.BOUNDED_SESSION_STORAGE_KEY = \"bounded_session_storage\";\n\nlet _config = null;\nclass ReactNativeSessionManager {\n /**\n * Must be called once before any other method.\n *\n * ```ts\n * import { ReactNativeSessionManager } from '@bounded-sh/core';\n * import { MMKV } from 'react-native-mmkv';\n * import { decode } from 'base-64';\n *\n * const mmkv = new MMKV();\n * ReactNativeSessionManager.configure({\n * storage: {\n * getItem: (k) => mmkv.getString(k) ?? null,\n * setItem: (k, v) => mmkv.set(k, v),\n * removeItem: (k) => mmkv.delete(k),\n * },\n * atob: decode,\n * });\n * ```\n */\n static configure(cfg) {\n _config = cfg;\n }\n /**\n * Whether configure() has been called. This is the canonical \"are we on\n * React Native?\" signal used by getActiveSessionManager(): RN consumers MUST\n * call configure() at startup, while web/Node never do. Far more reliable\n * than sniffing `typeof window` (React Native defines a global `window`, so\n * that test misclassifies RN as web and routes session writes to a\n * non-existent localStorage).\n */\n static isConfigured() {\n return _config !== null;\n }\n static getStorage() {\n if (!_config) {\n throw new Error(\"ReactNativeSessionManager.configure() must be called before using session methods.\");\n }\n return _config.storage;\n }\n static decodeBase64(input) {\n if (!_config) {\n throw new Error(\"ReactNativeSessionManager.configure() must be called before using session methods.\");\n }\n return _config.atob(input);\n }\n /**\n * Decode a base64url-encoded string (used by JWT payloads).\n * Normalises base64url → standard base64 before decoding.\n */\n static decodeBase64Url(input) {\n let b64 = input.replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return this.decodeBase64(b64);\n }\n /* ------------------------------------------------------------------ */\n /* STORE */\n /* ------------------------------------------------------------------ */\n static async storeSession(address, accessToken, idToken, refreshToken, issuer) {\n // JWT-wallet binding: refuse to store a session whose idToken is bound\n // to a different wallet than `address`. Prevents races that would otherwise\n // leave storage with mismatched address/token state.\n try {\n const payloadB64 = idToken.split(\".\")[1];\n if (payloadB64) {\n const payload = JSON.parse(this.decodeBase64Url(payloadB64));\n const tokenWallet = payload[\"custom:walletAddress\"];\n if (tokenWallet && tokenWallet !== address) {\n throw new Error(`[ReactNativeSessionManager] Refusing to store session: address (${address}) does not match idToken custom:walletAddress (${tokenWallet})`);\n }\n if (!tokenWallet) {\n console.warn(\"[ReactNativeSessionManager] storeSession: idToken has no custom:walletAddress claim — writing without validation\");\n }\n }\n }\n catch (err) {\n if (typeof (err === null || err === void 0 ? void 0 : err.message) === \"string\" && err.message.includes(\"Refusing to store session\")) {\n throw err;\n }\n console.warn(\"[ReactNativeSessionManager] storeSession: failed to decode idToken for validation:\", err);\n }\n const config = await getConfig();\n const currentAppId = config.appId;\n // Issuer base for silent refresh (email overrides w/ humanAuthApiUrl; wallet/\n // guest default to authApiUrl). See WebSessionManager for the rationale.\n const sessionIssuer = (issuer || config.authApiUrl || \"\").replace(/\\/$/, \"\");\n this.getStorage().setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(Object.assign({ address,\n accessToken,\n idToken,\n refreshToken, appId: currentAppId }, (sessionIssuer ? { issuer: sessionIssuer } : {}))));\n }\n /* ------------------------------------------------------------------ */\n /* GET */\n /* ------------------------------------------------------------------ */\n static async getSession() {\n const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n if (!session)\n return null;\n const sessionObj = JSON.parse(session);\n /* ---------- validate app-id ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return null;\n }\n /* ---------- check JWT expiration ---------- */\n try {\n const { accessToken } = sessionObj;\n const { exp } = JSON.parse(this.decodeBase64Url(accessToken.split(\".\")[1]));\n if (Date.now() > exp * 1000) {\n const { refreshToken } = sessionObj;\n if (!refreshToken)\n return null;\n const refreshed = await refreshSession(refreshToken, sessionObj.issuer);\n if ((refreshed === null || refreshed === void 0 ? void 0 : refreshed.idToken) && (refreshed === null || refreshed === void 0 ? void 0 : refreshed.accessToken)) {\n await this.updateIdTokenAndAccessToken(refreshed.idToken, refreshed.accessToken, refreshed.refreshToken);\n const newSession = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n if (!newSession)\n return null;\n const newObj = JSON.parse(newSession);\n return { address: newObj.address, session: newObj };\n }\n // Refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n }\n catch (err) {\n // Token decode or refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n return { address: sessionObj.address, session: sessionObj };\n }\n /* ------------------------------------------------------------------ */\n /* CLEAR */\n /* ------------------------------------------------------------------ */\n static clearSession() {\n this.getStorage().removeItem(this.BOUNDED_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* IS-AUTH */\n /* ------------------------------------------------------------------ */\n static isAuthenticated() {\n return !!this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* TOKEN HELPERS */\n /* ------------------------------------------------------------------ */\n static getIdToken() {\n try {\n const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).idToken : null;\n }\n catch (_a) {\n return null;\n }\n }\n /** The issuer base that minted this session (for routing silent refresh). */\n static getIssuer() {\n var _a;\n try {\n const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n return session ? ((_a = JSON.parse(session).issuer) !== null && _a !== void 0 ? _a : null) : null;\n }\n catch (_b) {\n return null;\n }\n }\n static getRefreshToken() {\n try {\n const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).refreshToken : null;\n }\n catch (_a) {\n return null;\n }\n }\n /* ------------------------------------------------------------------ */\n /* UPDATE TOKENS */\n /* ------------------------------------------------------------------ */\n static async updateIdTokenAndAccessToken(idToken, accessToken, refreshToken) {\n var _a;\n const session = this.getStorage().getItem(this.BOUNDED_SESSION_STORAGE_KEY);\n if (!session)\n return;\n const sessionObj = JSON.parse(session);\n /* ---------- app-id guard ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return;\n }\n sessionObj.idToken = idToken;\n sessionObj.accessToken = accessToken;\n if (typeof refreshToken === \"string\" && refreshToken.length > 0) {\n sessionObj.refreshToken = refreshToken;\n }\n (_a = sessionObj.appId) !== null && _a !== void 0 ? _a : (sessionObj.appId = config.appId);\n this.getStorage().setItem(this.BOUNDED_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));\n }\n}\nReactNativeSessionManager.BOUNDED_SESSION_STORAGE_KEY = \"bounded_session_storage\";\n\n/**\n * Return the active CLIENT session manager for the current runtime.\n *\n * This is the single source of truth for \"which store holds the session token\"\n * and MUST be used everywhere the client reads/writes the session (login,\n * restore, logout, and — critically — the per-request auth-header path in\n * utils.ts). Previously this decision was made ad-hoc with\n * `typeof window !== 'undefined' ? WebSessionManager : ReactNativeSessionManager`,\n * which is wrong on React Native: RN defines a global `window`, so that test\n * picked WebSessionManager and then hit a non-existent `localStorage` — the\n * session was silently dropped (or threw), so every authenticated request 403'd.\n *\n * Decision rule: if a consumer configured the React Native session manager\n * (ReactNativeSessionManager.configure(), which RN apps call once at startup and\n * web/Node never do), we're on RN — use it. Otherwise use the localStorage-backed\n * WebSessionManager (which itself no-ops gracefully in Node/SSR where there is no\n * `window`). This changes ONLY React Native behavior; web and Node are unchanged.\n *\n * NOTE: this intentionally does NOT cover the SERVER (keypair) path — callers that\n * branch on `isServer` keep using ServerSessionManager and only fall through to\n * getActiveSessionManager() for the browser/RN client case.\n */\nfunction getActiveSessionManager() {\n return ReactNativeSessionManager.isConfigured()\n ? ReactNativeSessionManager\n : WebSessionManager;\n}\n\nvar sessionManager = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getActiveSessionManager: getActiveSessionManager\n});\n\nvar safeBuffer = {exports: {}};\n\n/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nvar hasRequiredSafeBuffer;\n\nfunction requireSafeBuffer () {\n\tif (hasRequiredSafeBuffer) return safeBuffer.exports;\n\thasRequiredSafeBuffer = 1;\n\t(function (module, exports$1) {\n\t\t/* eslint-disable node/no-deprecated-api */\n\t\tvar buffer = requireBuffer();\n\t\tvar Buffer = buffer.Buffer;\n\n\t\t// alternative to using Object.keys for old browsers\n\t\tfunction copyProps (src, dst) {\n\t\t for (var key in src) {\n\t\t dst[key] = src[key];\n\t\t }\n\t\t}\n\t\tif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n\t\t module.exports = buffer;\n\t\t} else {\n\t\t // Copy properties from require('buffer')\n\t\t copyProps(buffer, exports$1);\n\t\t exports$1.Buffer = SafeBuffer;\n\t\t}\n\n\t\tfunction SafeBuffer (arg, encodingOrOffset, length) {\n\t\t return Buffer(arg, encodingOrOffset, length)\n\t\t}\n\n\t\tSafeBuffer.prototype = Object.create(Buffer.prototype);\n\n\t\t// Copy static methods from Buffer\n\t\tcopyProps(Buffer, SafeBuffer);\n\n\t\tSafeBuffer.from = function (arg, encodingOrOffset, length) {\n\t\t if (typeof arg === 'number') {\n\t\t throw new TypeError('Argument must not be a number')\n\t\t }\n\t\t return Buffer(arg, encodingOrOffset, length)\n\t\t};\n\n\t\tSafeBuffer.alloc = function (size, fill, encoding) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('Argument must be a number')\n\t\t }\n\t\t var buf = Buffer(size);\n\t\t if (fill !== undefined) {\n\t\t if (typeof encoding === 'string') {\n\t\t buf.fill(fill, encoding);\n\t\t } else {\n\t\t buf.fill(fill);\n\t\t }\n\t\t } else {\n\t\t buf.fill(0);\n\t\t }\n\t\t return buf\n\t\t};\n\n\t\tSafeBuffer.allocUnsafe = function (size) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('Argument must be a number')\n\t\t }\n\t\t return Buffer(size)\n\t\t};\n\n\t\tSafeBuffer.allocUnsafeSlow = function (size) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('Argument must be a number')\n\t\t }\n\t\t return buffer.SlowBuffer(size)\n\t\t}; \n\t} (safeBuffer, safeBuffer.exports));\n\treturn safeBuffer.exports;\n}\n\nvar src;\nvar hasRequiredSrc;\n\nfunction requireSrc () {\n\tif (hasRequiredSrc) return src;\n\thasRequiredSrc = 1;\n\t// base-x encoding / decoding\n\t// Copyright (c) 2018 base-x contributors\n\t// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n\t// Distributed under the MIT software license, see the accompanying\n\t// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n\t// @ts-ignore\n\tvar _Buffer = requireSafeBuffer().Buffer;\n\tfunction base (ALPHABET) {\n\t if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n\t var BASE_MAP = new Uint8Array(256);\n\t for (var j = 0; j < BASE_MAP.length; j++) {\n\t BASE_MAP[j] = 255;\n\t }\n\t for (var i = 0; i < ALPHABET.length; i++) {\n\t var x = ALPHABET.charAt(i);\n\t var xc = x.charCodeAt(0);\n\t if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n\t BASE_MAP[xc] = i;\n\t }\n\t var BASE = ALPHABET.length;\n\t var LEADER = ALPHABET.charAt(0);\n\t var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n\t var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n\t function encode (source) {\n\t if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source); }\n\t if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n\t if (source.length === 0) { return '' }\n\t // Skip & count leading zeroes.\n\t var zeroes = 0;\n\t var length = 0;\n\t var pbegin = 0;\n\t var pend = source.length;\n\t while (pbegin !== pend && source[pbegin] === 0) {\n\t pbegin++;\n\t zeroes++;\n\t }\n\t // Allocate enough space in big-endian base58 representation.\n\t var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n\t var b58 = new Uint8Array(size);\n\t // Process the bytes.\n\t while (pbegin !== pend) {\n\t var carry = source[pbegin];\n\t // Apply \"b58 = b58 * 256 + ch\".\n\t var i = 0;\n\t for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n\t carry += (256 * b58[it1]) >>> 0;\n\t b58[it1] = (carry % BASE) >>> 0;\n\t carry = (carry / BASE) >>> 0;\n\t }\n\t if (carry !== 0) { throw new Error('Non-zero carry') }\n\t length = i;\n\t pbegin++;\n\t }\n\t // Skip leading zeroes in base58 result.\n\t var it2 = size - length;\n\t while (it2 !== size && b58[it2] === 0) {\n\t it2++;\n\t }\n\t // Translate the result into a string.\n\t var str = LEADER.repeat(zeroes);\n\t for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }\n\t return str\n\t }\n\t function decodeUnsafe (source) {\n\t if (typeof source !== 'string') { throw new TypeError('Expected String') }\n\t if (source.length === 0) { return _Buffer.alloc(0) }\n\t var psz = 0;\n\t // Skip and count leading '1's.\n\t var zeroes = 0;\n\t var length = 0;\n\t while (source[psz] === LEADER) {\n\t zeroes++;\n\t psz++;\n\t }\n\t // Allocate enough space in big-endian base256 representation.\n\t var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n\t var b256 = new Uint8Array(size);\n\t // Process the characters.\n\t while (psz < source.length) {\n\t // Find code of next character\n\t var charCode = source.charCodeAt(psz);\n\t // Base map can not be indexed using char code\n\t if (charCode > 255) { return }\n\t // Decode character\n\t var carry = BASE_MAP[charCode];\n\t // Invalid character\n\t if (carry === 255) { return }\n\t var i = 0;\n\t for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n\t carry += (BASE * b256[it3]) >>> 0;\n\t b256[it3] = (carry % 256) >>> 0;\n\t carry = (carry / 256) >>> 0;\n\t }\n\t if (carry !== 0) { throw new Error('Non-zero carry') }\n\t length = i;\n\t psz++;\n\t }\n\t // Skip leading zeroes in b256.\n\t var it4 = size - length;\n\t while (it4 !== size && b256[it4] === 0) {\n\t it4++;\n\t }\n\t var vch = _Buffer.allocUnsafe(zeroes + (size - it4));\n\t vch.fill(0x00, 0, zeroes);\n\t var j = zeroes;\n\t while (it4 !== size) {\n\t vch[j++] = b256[it4++];\n\t }\n\t return vch\n\t }\n\t function decode (string) {\n\t var buffer = decodeUnsafe(string);\n\t if (buffer) { return buffer }\n\t throw new Error('Non-base' + BASE + ' character')\n\t }\n\t return {\n\t encode: encode,\n\t decodeUnsafe: decodeUnsafe,\n\t decode: decode\n\t }\n\t}\n\tsrc = base;\n\treturn src;\n}\n\nvar bs58$1;\nvar hasRequiredBs58;\n\nfunction requireBs58 () {\n\tif (hasRequiredBs58) return bs58$1;\n\thasRequiredBs58 = 1;\n\tvar basex = requireSrc();\n\tvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\n\tbs58$1 = basex(ALPHABET);\n\treturn bs58$1;\n}\n\nvar bs58Exports = requireBs58();\nvar bs58 = /*@__PURE__*/getDefaultExportFromCjs(bs58Exports);\n\n// ─────────────────────────────────────────────────────────────\n// Local implementation of getSimulationComputeUnits\n// (Replaces @solana-developers/helpers to avoid Wallet import issue in browser/ESM builds)\n// Source: https://github.com/solana-developers/helpers/blob/main/src/lib/transaction.ts\n// ─────────────────────────────────────────────────────────────\n/**\n * Check if a given instruction is a SetComputeUnitLimit instruction\n * See https://github.com/solana-program/compute-budget/blob/main/clients/js/src/generated/programs/computeBudget.ts#L29\n */\nfunction isSetComputeLimitInstruction(ix) {\n return (ix.programId.equals(ComputeBudgetProgram.programId) &&\n ix.data[0] === 2 // opcode for setComputeUnitLimit is 2\n );\n}\n/**\n * Get the compute units required for a set of instructions via simulation.\n * Credit https://twitter.com/stegabob, originally from https://x.com/stegaBOB/status/1766662289392889920\n */\nasync function getSimulationComputeUnits(connection, instructions, payer, lookupTables, commitment = \"confirmed\") {\n var _a, _b, _c;\n const simulationInstructions = [...instructions];\n // Replace or add compute limit instruction\n const computeLimitIndex = simulationInstructions.findIndex(isSetComputeLimitInstruction);\n const simulationLimitIx = ComputeBudgetProgram.setComputeUnitLimit({\n units: 1400000,\n });\n if (computeLimitIndex >= 0) {\n simulationInstructions[computeLimitIndex] = simulationLimitIx;\n }\n else {\n simulationInstructions.unshift(simulationLimitIx);\n }\n const testTransaction = new VersionedTransaction(new TransactionMessage({\n instructions: simulationInstructions,\n payerKey: payer,\n // RecentBlockhash can by any public key during simulation\n // since 'replaceRecentBlockhash' is set to 'true' below\n recentBlockhash: PublicKey.default.toString(),\n }).compileToV0Message(lookupTables));\n const rpcResponse = await connection.simulateTransaction(testTransaction, {\n replaceRecentBlockhash: true,\n sigVerify: false,\n commitment,\n });\n if ((_a = rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value) === null || _a === void 0 ? void 0 : _a.err) {\n const logs = ((_b = rpcResponse.value.logs) === null || _b === void 0 ? void 0 : _b.join(\"\\n • \")) || \"No logs available\";\n throw new Error(`Transaction simulation failed:\\n •${logs}` +\n JSON.stringify((_c = rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value) === null || _c === void 0 ? void 0 : _c.err));\n }\n return rpcResponse.value.unitsConsumed || null;\n}\n/* ------------------------------------------------------------------ */\n/* RFC-4501 message */\n/* ------------------------------------------------------------------ */\nasync function genSolanaMessage(address, nonce) {\n var _a, _b;\n /* Domain / origin aren't available server-side – fall back to envs\n or simple placeholders. */\n const domain = (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.SESSION_DOMAIN)) || \"server\";\n const origin = (typeof process !== 'undefined' && ((_b = process.env) === null || _b === void 0 ? void 0 : _b.SESSION_ORIGIN)) || \"server\";\n // SECURITY (audit-4 CRITICAL-1): bind the signed prompt to the target app.\n // appId is read from the SAME global config that genAuthNonce + /session use,\n // so the signed \"App ID\" is guaranteed to equal the app the session is minted\n // for; the server verifier rejects any mismatch. No caller change needed.\n const appId = (await getConfig()).appId;\n const statement = \"Sign this message to authenticate with our application.\";\n const currentDate = new Date();\n const issuedAt = currentDate.toISOString();\n const expirationDate = new Date(currentDate.getTime() + 5 * 60 * 1000);\n const expirationTime = expirationDate.toISOString();\n // SECURITY (audit-4 CRITICAL-1): the signed prompt MUST name the target app so\n // a signature can't be replayed to mint a session for a different app. The\n // server verifier requires `App ID` to equal the app the session is for.\n return `${statement}\\n\\n` +\n `Wallet address:\\n${address}\\n\\n` +\n `App ID: ${appId}\\n` +\n `Domain: ${domain}\\n` +\n `Origin: ${origin}\\n` +\n `Nonce: ${nonce}\\n` +\n `Issued At: ${issuedAt}\\n` +\n `Expiration Time: ${expirationTime}`;\n}\n// ─────────────────────────────────────────────────────────────\n// Serialization Helpers\n// ─────────────────────────────────────────────────────────────\nfunction isHexString(value) {\n // Only strings can be hex-encoded. Numbers, BNs, and other shapes coming back\n // from the API for u64Val/i64Val should fall through to `new BN(value)` which\n // accepts those shapes natively. Without this guard, calling .startsWith on a\n // non-string blows up with TypeError.\n if (typeof value !== \"string\")\n return false;\n // Matches strings containing only 0-9, a-f, or A-F (optionally prefixed with 0x)\n let testValue = value;\n // Handle negative values\n if (value.startsWith(\"-\")) {\n testValue = value.slice(1);\n }\n const hexRegex = /^(0x)?[0-9a-fA-F]+$/;\n return hexRegex.test(testValue);\n}\nfunction prepareAnchorArgs(documents) {\n return documents.map((doc) => ({\n path: doc.path,\n operations: doc.operations.map((op) => {\n let preparedValue = null;\n if (op.value) {\n if (\"u64Val\" in op.value) {\n if (isHexString(op.value.u64Val.value)) {\n preparedValue = { u64Val: { value: new BN(op.value.u64Val.value, \"hex\") } };\n }\n else {\n preparedValue = { u64Val: { value: new BN(op.value.u64Val.value) } };\n }\n }\n else if (\"i64Val\" in op.value) {\n if (isHexString(op.value.i64Val.value)) {\n if (op.value.i64Val.value.startsWith(\"-\")) {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value.slice(1), \"hex\").mul(new BN(-1)) } };\n }\n else {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value, \"hex\") } };\n }\n }\n else {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value) } };\n }\n }\n else if (op.value.boolVal) {\n preparedValue = { boolVal: { value: !!op.value.boolVal.value } };\n }\n else if (op.value.stringVal) {\n preparedValue = { stringVal: { value: String(op.value.stringVal.value) } };\n }\n else if (op.value.addressVal) {\n preparedValue = { addressVal: { value: new PublicKey(op.value.addressVal.value) } };\n }\n else {\n preparedValue = op.value;\n }\n }\n return {\n key: op.key,\n value: preparedValue,\n operation: op.operation,\n };\n }),\n }));\n}\nfunction convertRemainingAccounts(remainingAccounts) {\n return remainingAccounts.map(acc => {\n return {\n pubkey: new PublicKey(acc.pubkey),\n isWritable: acc.isWritable,\n isSigner: acc.isSigner\n };\n });\n}\n// ─────────────────────────────────────────────────────────────\n// Updated Transaction Builder: It now accepts a PublicKey for the payer\n// ─────────────────────────────────────────────────────────────\nasync function buildSetDocumentsTransaction(connection, idl, anchorProvider, payerPublicKey, args, remainingAccounts, lutKey, preInstructions, simulate, additionalLutAddresses) {\n const computeBudgetIx = ComputeBudgetProgram.setComputeUnitLimit({\n units: 1400000,\n });\n //TODO: Figure out long term solution to estimate heap frame size\n const requestHeapFrameIx = ComputeBudgetProgram.requestHeapFrame({\n bytes: 1024 * 160,\n });\n const instructions = [];\n instructions.unshift(requestHeapFrameIx);\n instructions.unshift(computeBudgetIx);\n instructions.push(...preInstructions);\n let tx = null;\n if (idl.address === \"taro6CvKqwrYrDc16ufYgzQ2NZcyyVKStffbtudrhRu\") {\n const program = new Program(idl, anchorProvider);\n tx = await program.methods\n .setDocuments(args.app_id, prepareAnchorArgs(args.documents), args.delete_paths, simulate)\n .preInstructions(instructions)\n .accounts({\n payer: payerPublicKey\n })\n .remainingAccounts(remainingAccounts)\n .transaction();\n }\n else if (idl.address === \"poof4b5pk1L9tmThvBmaABjcyjfhFGbMbQP5BXk2QZp\") {\n const program = new Program(idl, anchorProvider);\n // Targets `set_documents_v2` (Vec<u8> ra_indices). The on-chain program\n // also exposes the legacy `set_documents` (Vec<u64>) so SDKs already on npm\n // continue to work — but new releases of this SDK speak v2 only.\n tx = await program.methods\n .setDocumentsV2(args.app_id, prepareAnchorArgs(args.documents), args.delete_paths, args.txData, simulate)\n .preInstructions(instructions)\n .accounts({\n payer: payerPublicKey\n })\n .remainingAccounts(remainingAccounts)\n .transaction();\n }\n else {\n throw new Error(`Invalid program id: ${idl.address}`);\n }\n tx.feePayer = payerPublicKey;\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(\"confirmed\");\n tx.recentBlockhash = blockhash;\n // Resolve LUTs: additionalLutAddresses (when present) is the authoritative set.\n // Falls back to lutKey alone for backwards compatibility.\n const lookupTables = [];\n const isSurfnet = anchorProvider.connection.rpcEndpoint == \"https://surfpool.fly.dev\";\n if (additionalLutAddresses && additionalLutAddresses.length > 0) {\n const results = await Promise.all(additionalLutAddresses.map(addr => connection.getAddressLookupTable(new PublicKey(addr)).catch(() => null)));\n for (const result of results) {\n if (result === null || result === void 0 ? void 0 : result.value) {\n lookupTables.push(result.value);\n }\n }\n }\n else if (lutKey != null) {\n // The LUT may have just been created server-side and the client's RPC node\n // may not have indexed it yet (load-balancer split). Retry with exponential\n // back-off; first retry at 100 ms almost always resolves it.\n let table = null;\n for (let attempt = 0; attempt < 5; attempt++) {\n const { value } = await connection.getAddressLookupTable(new PublicKey(lutKey));\n if (value) {\n table = value;\n break;\n }\n if (attempt < 4)\n await new Promise(r => setTimeout(r, 100 * Math.pow(2, attempt)));\n }\n if (!table)\n throw new Error('LUT not found after creation/extend');\n lookupTables.push(table);\n }\n if (lookupTables.length === 0) {\n const computeUnits = isSurfnet ? 1400000 : await getSimulationComputeUnits(connection, tx.instructions, payerPublicKey, []);\n const computeBudgetIxOptimized = ComputeBudgetProgram.setComputeUnitLimit({\n units: computeUnits ? computeUnits * 1.2 : 1400000,\n }); // 20% buffer\n tx.instructions[0] = computeBudgetIxOptimized;\n return { tx, blockhash, lastValidBlockHeight };\n }\n const computeUnits = isSurfnet ? 1400000 : await getSimulationComputeUnits(connection, tx.instructions, payerPublicKey, lookupTables);\n const computeBudgetIxOptimized = ComputeBudgetProgram.setComputeUnitLimit({\n units: computeUnits ? computeUnits * 1.2 : 1400000,\n }); // 20% buffer\n tx.instructions[0] = computeBudgetIxOptimized;\n const msgV0 = new anchor.web3.TransactionMessage({\n payerKey: payerPublicKey,\n recentBlockhash: blockhash,\n instructions: tx.instructions,\n }).compileToV0Message(lookupTables);\n const vTx = new anchor.web3.VersionedTransaction(msgV0);\n return { tx: vTx, blockhash, lastValidBlockHeight };\n}\n\n/* ------------------------------------------------------------------ */\n/* ENV helpers */\n/* ------------------------------------------------------------------ */\n// Canonical `BOUNDED_PRIVATE_KEY` (matches the CLI); legacy\n// `BOUNDED_SOLANA_KEYPAIR` still honored. Only consulted when no explicit\n// keypair was provided (createWalletClient passes one).\nconst ENV_KEYPAIRS = [\"BOUNDED_PRIVATE_KEY\", \"BOUNDED_SOLANA_KEYPAIR\"];\nfunction loadKeypairFromEnv() {\n let secret;\n let found;\n for (const name of ENV_KEYPAIRS) {\n const v = process.env[name];\n if (v) {\n secret = v;\n found = name;\n break;\n }\n }\n if (!secret) {\n throw new Error(`No server keypair for this top-level call. The top-level get/set/subscribe/etc. use an ` +\n `AMBIENT session — set ${ENV_KEYPAIRS[0]} to a base-58 secret key (or JSON array) to provide one. ` +\n `If you already created a wallet with createWalletClient({ keypair }), call ITS methods instead ` +\n `(client.subscribe / client.set / client.get): that client is self-contained and deliberately does ` +\n `not set the ambient session, so the top-level functions can't see it.`);\n }\n try {\n const secretKey = secret.trim().startsWith(\"[\")\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n return Keypair.fromSecretKey(secretKey);\n }\n catch (err) {\n throw new Error(`Unable to parse ${found}. Ensure it is valid base-58 or JSON.`);\n }\n}\n/* ------------------------------------------------------------------ */\n/* SESSION MANAGER */\n/* ------------------------------------------------------------------ */\nclass ServerSessionManager {\n constructor(keypair) {\n /* Private cache (lives for the life of the instance) */\n this.session = null;\n /* Coalesce concurrent getSession() calls into a single in-flight request */\n this.pendingSession = null;\n this.keypair = keypair !== null && keypair !== void 0 ? keypair : null;\n }\n /**\n * Create a session manager for a specific keypair.\n * Each instance has its own independent session cache.\n */\n static forKeypair(keypair) {\n return new ServerSessionManager(keypair);\n }\n /* ---------------------------------------------- *\n * Session creation (instance method)\n * ---------------------------------------------- */\n async createSession() {\n var _a;\n const kp = (_a = this.keypair) !== null && _a !== void 0 ? _a : loadKeypairFromEnv();\n const address = kp.publicKey.toBase58();\n /* fetch nonce from auth API */\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n /* sign the message */\n const sigBytes = nacl.sign.detached(new TextEncoder().encode(message), kp.secretKey);\n const signature = bufferExports.Buffer.from(sigBytes).toString(\"base64\");\n /* call auth API */\n const { accessToken, idToken, refreshToken, } = await createSessionWithSignature(address, message, signature);\n return { address, accessToken, idToken, refreshToken };\n }\n /* ---------------------------------------------- *\n * GET (lazy-fetch)\n * ---------------------------------------------- */\n async getSession() {\n if (this.session !== null) {\n return this.session;\n }\n // If a session creation is already in-flight, reuse that promise\n // instead of firing a second concurrent request.\n if (this.pendingSession !== null) {\n return this.pendingSession;\n }\n this.pendingSession = this.createSession()\n .then((session) => {\n this.session = session;\n return session;\n })\n .finally(() => {\n this.pendingSession = null;\n });\n return this.pendingSession;\n }\n /* ---------------------------------------------- *\n * STORE (overwrites the cached value)\n * ---------------------------------------------- */\n setSession(session) {\n this.session = session;\n }\n /* ---------------------------------------------- *\n * CLEAR (e.g. after logout or 401 retry)\n * ---------------------------------------------- */\n clearSession() {\n this.session = null;\n this.pendingSession = null;\n }\n /* ---------------------------------------------- *\n * QUICK helpers\n * ---------------------------------------------- */\n isAuthenticated() {\n return this.session !== null;\n }\n getIdToken() {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.idToken) !== null && _b !== void 0 ? _b : null;\n }\n getRefreshToken() {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.refreshToken) !== null && _b !== void 0 ? _b : null;\n }\n}\n/* The default singleton instance (reads keypair from env) */\nServerSessionManager.instance = new ServerSessionManager();\n\nvar serverSessionManager = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ServerSessionManager: ServerSessionManager\n});\n\n/**\n * Safe base64 helpers for bounded-core.\n *\n * Uses the global atob/btoa when available (browser, RN with polyfill),\n * falls back to the 'buffer' package (Node.js / SSR / RN without polyfill).\n *\n * These are used instead of bare `atob()`/`btoa()` so the core package\n * works in React Native without requiring the consumer to polyfill globals.\n */\nfunction safeAtob(input) {\n if (typeof globalThis.atob === 'function') {\n return globalThis.atob(input);\n }\n return bufferExports.Buffer.from(input, 'base64').toString('binary');\n}\nfunction safeBtoa(input) {\n if (typeof globalThis.btoa === 'function') {\n return globalThis.btoa(input);\n }\n return bufferExports.Buffer.from(input, 'binary').toString('base64');\n}\n/**\n * Decode a base64url-encoded string (used by JWT payloads).\n * Normalises base64url → standard base64 before decoding.\n */\nfunction decodeBase64Url(input) {\n let b64 = input.replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return safeAtob(b64);\n}\n\nasync function createBearerToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n if (!(session === null || session === void 0 ? void 0 : session.idToken)) {\n return null;\n }\n return `Bearer ${session.idToken}`;\n }\n const idToken = getActiveSessionManager().getIdToken();\n if (!idToken) {\n return null;\n }\n return `Bearer ${idToken}`;\n}\nasync function createAuthHeader(isServer) {\n const bearerToken = await createBearerToken(isServer);\n if (!bearerToken) {\n return null;\n }\n return {\n Authorization: bearerToken\n };\n}\nasync function getUserInfo(isServer) {\n const idToken = await getIdToken(isServer);\n if (!idToken) {\n return null;\n }\n // Decode the JWT to get user info (base64url-safe)\n const payload = JSON.parse(decodeBase64Url(idToken.split('.')[1]));\n return payload;\n}\n/**\n * Derive { id, address, email } from an idToken's claims.\n *\n * Mirrors the realtime-worker auth.ts identity resolution so the client-side\n * `user` object matches what the backend authenticates as:\n * - id = custom:userId when present, else custom:walletAddress (the fallback\n * keeps wallet/SIWS tokens — which omit userId — AND legacy Better Auth\n * tokens — which put the account id in custom:walletAddress — working).\n * - address = custom:walletAddress only (a REAL wallet). NEVER falls back to the\n * identity: an opaque id is not a spendable onchain address. null for\n * email-only sessions.\n * - email = the token's `email` claim, lowercased to match the canonical form\n * policy equality compares against. null when absent (wallet/SIWS).\n *\n * Returns all-null when the token can't be decoded (caller treats as no identity).\n */\nfunction deriveUserIdentityFromIdToken(idToken) {\n const empty = { id: null, address: null, email: null };\n if (!idToken)\n return empty;\n try {\n const parts = idToken.split('.');\n if (parts.length < 2)\n return empty;\n const payload = JSON.parse(decodeBase64Url(parts[1]));\n const walletClaim = payload['custom:walletAddress'];\n const address = (typeof walletClaim === 'string' && walletClaim.length > 0)\n ? walletClaim\n : null;\n const userIdClaim = payload['custom:userId'];\n const id = (typeof userIdClaim === 'string' && userIdClaim.length > 0)\n ? userIdClaim\n : address;\n const emailClaim = payload['email'];\n const email = (typeof emailClaim === 'string' && emailClaim.length > 0)\n ? emailClaim.toLowerCase()\n : null;\n return { id, address, email };\n }\n catch (_a) {\n return empty;\n }\n}\nasync function getIdToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n return session === null || session === void 0 ? void 0 : session.idToken;\n }\n return getActiveSessionManager().getIdToken();\n}\nasync function getRefreshToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n return session === null || session === void 0 ? void 0 : session.refreshToken;\n }\n return getActiveSessionManager().getRefreshToken();\n}\n/** The auth issuer base that minted the active client session, so a refresh POSTs\n * to the right /session/refresh. Undefined on the server (keypair, no refresh). */\nfunction getSessionIssuer(isServer) {\n var _a;\n if (isServer)\n return undefined;\n return (_a = getActiveSessionManager().getIssuer()) !== null && _a !== void 0 ? _a : undefined;\n}\nasync function updateIdTokenAndAccessToken(idToken, accessToken, isServer = false, refreshToken) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n // Ensure we have a session to update; if missing, let lazy creation happen on next request.\n let session = null;\n try {\n session = await sessionMgr.getSession();\n }\n catch (_a) {\n return;\n }\n if (!session) {\n return;\n }\n sessionMgr.setSession(Object.assign(Object.assign(Object.assign({}, session), { idToken,\n accessToken }), (refreshToken ? { refreshToken } : {})));\n return;\n }\n await getActiveSessionManager().updateIdTokenAndAccessToken(idToken, accessToken, refreshToken);\n}\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createAuthHeader: createAuthHeader,\n deriveUserIdentityFromIdToken: deriveUserIdentityFromIdToken,\n getIdToken: getIdToken,\n getRefreshToken: getRefreshToken,\n getSessionIssuer: getSessionIssuer,\n getUserInfo: getUserInfo,\n updateIdTokenAndAccessToken: updateIdTokenAndAccessToken\n});\n\nconst apiClient = axios.create();\naxiosRetry(apiClient, {\n retries: 2,\n retryCondition: (error) => {\n var _a, _b;\n // Only retry GET requests on network errors (ECONNRESET, ETIMEDOUT, etc.)\n // Writes (POST/PUT) are not retried — the server may have processed\n // the request before the connection was reset.\n return axiosRetry.isNetworkError(error) && ((_b = (_a = error.config) === null || _a === void 0 ? void 0 : _a.method) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'get';\n },\n retryDelay: axiosRetry.exponentialDelay,\n shouldResetTimeout: true,\n onRetry: (retryCount, error, requestConfig) => {\n var _a;\n console.warn(`[bounded-sdk] retry ${retryCount} for ${(_a = requestConfig.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()} ${requestConfig.url} — ${error.code || error.message}`);\n },\n});\nconst refreshInFlight = new Map();\nasync function refreshAuthSessionOnce(appId, isServer) {\n const key = `${isServer ? \"server\" : \"web\"}:${appId}`;\n const existing = refreshInFlight.get(key);\n if (existing) {\n return existing;\n }\n const refreshPromise = (async () => {\n var _a, _b;\n try {\n const refreshToken = await getRefreshToken(isServer);\n if (!refreshToken) {\n return false;\n }\n const refreshData = await refreshSession(refreshToken, getSessionIssuer(isServer));\n if (!(refreshData === null || refreshData === void 0 ? void 0 : refreshData.idToken) || !(refreshData === null || refreshData === void 0 ? void 0 : refreshData.accessToken)) {\n return false;\n }\n await updateIdTokenAndAccessToken(refreshData.idToken, refreshData.accessToken, isServer, \n // Persist the ROTATED refresh token — the old one is single-use spent.\n refreshData.refreshToken);\n return true;\n }\n catch (error) {\n if (!isServer && (((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.status) === 403)) {\n const { getActiveSessionManager } = await Promise.resolve().then(function () { return sessionManager; });\n getActiveSessionManager().clearSession();\n }\n return false;\n }\n finally {\n refreshInFlight.delete(key);\n }\n })();\n refreshInFlight.set(key, refreshPromise);\n return refreshPromise;\n}\nasync function makeApiRequest(method, urlPath, data, _overrides) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const config = await getConfig();\n let hasRetriedAfterServerSessionReset = false;\n const clearServerSession = async () => {\n if (!config.isServer)\n return;\n const { ServerSessionManager } = await Promise.resolve().then(function () { return serverSessionManager; });\n ServerSessionManager.instance.clearSession();\n };\n async function executeRequest() {\n var _a;\n // When _getAuthHeaders is provided (wallet client), use it as the sole auth source.\n // Otherwise use the global createAuthHeader (default path).\n const authHeader = (_overrides === null || _overrides === void 0 ? void 0 : _overrides._getAuthHeaders)\n ? await _overrides._getAuthHeaders()\n : await createAuthHeader(config.isServer);\n const headers = Object.assign({ \"Content-Type\": \"application/json\", \"X-Public-App-Id\": config.appId, \"X-App-Id\": config.appId }, authHeader);\n if (typeof window !== \"undefined\" &&\n window.CUSTOM_BOUNDED_APP_ID_HEADER) {\n const customAppId = window.CUSTOM_BOUNDED_APP_ID_HEADER;\n if (customAppId) {\n headers[\"X-App-Id\"] = customAppId;\n }\n }\n // Apply custom headers from _overrides\n if (_overrides === null || _overrides === void 0 ? void 0 : _overrides.headers) {\n Object.assign(headers, _overrides.headers);\n }\n // Writes (PUT/POST/DELETE) can take significantly longer than reads —\n // server-side they may trigger ad-hoc LUT creation (create + extend +\n // wait-for-finalization, ~15-30s on mainnet). Use a larger default for\n // non-GET so the SDK doesn't time out before client-api responds.\n const isRead = method.toUpperCase() === \"GET\";\n const defaultTimeout = isRead ? 30000 : 90000;\n const requestConfig = {\n method,\n url: `${config.apiUrl}${urlPath.startsWith(\"/\") ? urlPath : `/${urlPath}`}`,\n headers,\n timeout: (_a = _overrides === null || _overrides === void 0 ? void 0 : _overrides.timeout) !== null && _a !== void 0 ? _a : defaultTimeout,\n };\n if (method !== \"GET\" && method !== \"get\") {\n requestConfig.data = data ? JSON.stringify(data) : {};\n }\n const response = await apiClient(requestConfig);\n return { data: response.data, status: response.status, headers: response.headers };\n }\n try {\n return await executeRequest();\n }\n catch (error) {\n if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {\n // Wallet client path: use client-specific retry, skip global fallback entirely\n if (_overrides === null || _overrides === void 0 ? void 0 : _overrides._clearAuth) {\n await _overrides._clearAuth();\n return await executeRequest();\n // If this throws, let it propagate — do NOT clear global ServerSessionManager\n }\n // Default path (no wallet client): refresh global session\n try {\n const refreshed = await refreshAuthSessionOnce(config.appId, config.isServer);\n if (!refreshed) {\n throw new Error(\"Unable to refresh auth session\");\n }\n return await executeRequest();\n }\n catch (_refreshError) {\n // Server-side fallback: clear global session and retry once\n if (config.isServer && !hasRetriedAfterServerSessionReset) {\n hasRetriedAfterServerSessionReset = true;\n await clearServerSession();\n return await executeRequest();\n }\n throw error;\n }\n }\n if (((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) == 404) {\n return { data: null, status: 404 };\n }\n if ((_c = error.response) === null || _c === void 0 ? void 0 : _c.data) {\n const responseData = typeof error.response.data === 'object'\n ? error.response.data\n : { message: String(error.response.data) };\n const apiError = new Error(responseData.message || error.message || 'Request failed');\n Object.assign(apiError, responseData);\n apiError.statusCode = (_d = error.response) === null || _d === void 0 ? void 0 : _d.status;\n // Surface the structured error envelope { code, status, requestId } so\n // callers can branch on the stable category (e.g.\n // `if (e.code === 'invariant_violation')`) without parsing the message.\n // `code` is a stable category ('policy_denied' | 'invariant_violation');\n // `status` is the HTTP status; `requestId` correlates with the decision log.\n apiError.code = (_e = responseData.code) !== null && _e !== void 0 ? _e : apiError.code;\n apiError.status = (_g = (_f = error.response) === null || _f === void 0 ? void 0 : _f.status) !== null && _g !== void 0 ? _g : responseData.status;\n apiError.requestId = (_h = responseData.requestId) !== null && _h !== void 0 ? _h : apiError.requestId;\n throw apiError;\n }\n throw error;\n }\n}\n\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/**\n * Thrown when a user's wallet doesn't have enough SOL to cover the transaction.\n * Apps can catch this to trigger an onramp/funding flow.\n */\nclass InsufficientBalanceError extends Error {\n constructor(address, balanceLamports, estimatedCostLamports, deficitLamports, deficitSol) {\n super(`Insufficient balance: wallet ${address} needs ~${deficitSol.toFixed(6)} SOL more to complete this transaction.`);\n this.name = 'InsufficientBalanceError';\n this.address = address;\n this.balanceLamports = balanceLamports;\n this.estimatedCostLamports = estimatedCostLamports;\n this.deficitLamports = deficitLamports;\n this.deficitSol = deficitSol;\n }\n}\n// Cache for get responses\nconst getCache = {};\n// Track in-flight requests to coalesce multiple identical requests\nconst pendingRequests = {};\n// Default cache TTL (500ms = 0.5 seconds)\nconst GET_CACHE_TTL = 500; // Adjust this value as needed (in milliseconds)\n// Last time we cleaned up the cache\nlet lastCacheCleanup = Date.now();\n/**\n * Return the leaf document key (last path segment) for a document path.\n *\n * Bounded rows carry `_id` (and `pathId`) set to the FULL document path\n * (e.g. `\"rooms/r1/prompts/8rd49se3sg\"`). Apps that build a child path from a\n * row naturally want the bare doc key, not the whole path — using the full path\n * doubles it (`rooms/r1/prompts/rooms/r1/prompts/8rd.../votes/...`) → 403/404.\n * `docId` extracts that leaf key. Tolerates leading slashes and a trailing `*`.\n *\n * @example docId(\"rooms/r1/prompts/8rd49se3sg\") // \"8rd49se3sg\"\n */\nfunction docId(path) {\n if (typeof path !== 'string')\n return '';\n let p = path.startsWith('/') ? path.slice(1) : path;\n if (p.endsWith('*') && p.length > 1)\n p = p.slice(0, -1);\n if (p.endsWith('/'))\n p = p.slice(0, -1);\n const segments = p.split('/').filter(Boolean);\n return segments.length ? segments[segments.length - 1] : '';\n}\n/**\n * Additively attach a convenience bare `id` (the leaf doc key) to a returned row.\n *\n * Rows already carry `_id`/`pathId` = the full document path; this leaves those\n * untouched and adds `id` = the last path segment so `row.id` is the doc key apps\n * expect. No-ops for non-objects, arrays, and rows that already define `id`\n * (never clobber a user field named `id`). Source for the leaf is `_id` (falling\n * back to `pathId`/`relativePath`/`absolutePath`).\n */\nfunction withBareId(row) {\n var _a, _b, _c;\n if (!row || typeof row !== 'object' || Array.isArray(row))\n return row;\n const r = row;\n if ('id' in r)\n return row; // don't clobber an explicit user field\n const source = (_c = (_b = (_a = r._id) !== null && _a !== void 0 ? _a : r.pathId) !== null && _b !== void 0 ? _b : r.relativePath) !== null && _c !== void 0 ? _c : r.absolutePath;\n if (typeof source !== 'string' || source.length === 0)\n return row;\n const leaf = docId(source);\n if (!leaf)\n return row;\n return Object.assign(Object.assign({}, r), { id: leaf });\n}\n/**\n * Normalize a raw read response from the worker into the SDK's stable shape and\n * attach the bare `id` to every returned row (Bug 1 + Bug 2).\n *\n * - Single-document path: returns EXACTLY ONE shape — the resolved document, or\n * `null` if missing (Firebase/Mongo convention). Unwraps the ambiguous\n * `{ data, status }` envelope the worker sometimes emits for a single doc so a\n * single-doc `get` never sometimes-returns the doc and sometimes the envelope.\n * - Collection path: preserves the `{ data, nextCursor, ... }` envelope and maps\n * the bare `id` onto each row in `data`.\n */\nfunction normalizeReadResult(responseData, pathIsDocument) {\n if (pathIsDocument) {\n let doc = responseData;\n // Unwrap the single-doc envelope `{ data, status }` (Bug 2). A real document\n // never has the exact shape `{ data, status }` with nothing else meaningful,\n // so detect the envelope by `data` + numeric `status` AND the absence of a\n // top-level `_id` (a real stored doc always carries `_id`/`pathId` from the\n // worker; the envelope wrapper does not). This avoids unwrapping a genuine\n // document that merely happens to own `data`/`status` fields.\n if (doc && typeof doc === 'object' && !Array.isArray(doc) &&\n 'data' in doc && 'status' in doc && typeof doc.status === 'number' &&\n !('_id' in doc) && !('pathId' in doc)) {\n doc = doc.data;\n }\n if (doc === undefined || doc === null)\n return null;\n return withBareId(doc);\n }\n // Collection read. The worker body is `{ data: rows[], nextCursor?, status? }`.\n if (responseData && typeof responseData === 'object' && !Array.isArray(responseData) && Array.isArray(responseData.data)) {\n return Object.assign(Object.assign({}, responseData), { data: responseData.data.map((row) => withBareId(row)) });\n }\n // Some paths return a bare array of rows — map id onto each.\n if (Array.isArray(responseData)) {\n return responseData.map((row) => withBareId(row));\n }\n return responseData;\n}\nfunction hashForKey$1(value) {\n let h = 5381;\n for (let i = 0; i < value.length; i++) {\n h = ((h << 5) + h + value.charCodeAt(i)) & 0x7fffffff;\n }\n return h.toString(36);\n}\n/**\n * Derive a stable identity string for the JWT a request will actually present.\n * Prefers the subject-ish claims (sub / custom:walletAddress / address) so the\n * same principal across token refreshes maps to the same fingerprint; falls back\n * to a hash of the raw token if the payload can't be decoded.\n */\nfunction principalFromIdToken$1(idToken) {\n if (!idToken)\n return 'anon';\n try {\n const parts = idToken.split('.');\n if (parts.length < 2)\n return `t${hashForKey$1(idToken)}`;\n const payload = JSON.parse(decodeBase64Url(parts[1]));\n const subject = \n // Prefer the universal identity (@user.id) — it is the stable principal a\n // request presents (equals the wallet for wallet logins; the account id for\n // email/social logins, which carry no walletAddress). Keying the read cache\n // on it keeps an email user's private snapshot scoped to that user.\n payload['custom:userId'] ||\n payload['custom:walletAddress'] ||\n payload.walletAddress ||\n payload.sub ||\n payload.address;\n if (subject)\n return `s${hashForKey$1(String(subject))}`;\n return `t${hashForKey$1(idToken)}`;\n }\n catch (_a) {\n return `t${hashForKey$1(idToken)}`;\n }\n}\n/**\n * SECURITY (H1): Read caches must be keyed by the caller's principal, not just\n * by path/filter/shape. In a shared process / SSR worker / browser login-switch,\n * keying by path alone lets User B receive User A's cached private read before\n * any server read rule runs. This returns `appId:<principal>` for the identity a\n * given read will actually authenticate as:\n * - a per-request `_walletAddress` override → that override's wallet\n * - a per-request `_getAuthHeaders` override → a hash of the auth header it\n * produces (so a cross-principal cached entry is never served to it)\n * - otherwise the ambient logged-in session's idToken subject (or `anon`)\n */\nasync function getReadPrincipalKey(overrides) {\n var _a, _b;\n const config = await getConfig();\n const appId = config.appId || '';\n // Explicit per-request wallet override — key by that identity.\n if (overrides === null || overrides === void 0 ? void 0 : overrides._walletAddress) {\n return `${appId}:w${overrides._walletAddress}`;\n }\n // Per-request auth-header override (wallet client). Key by the actual header\n // it produces so an entry cached under one override is never served to another.\n if (overrides === null || overrides === void 0 ? void 0 : overrides._getAuthHeaders) {\n try {\n const headers = await overrides._getAuthHeaders();\n const authValue = (headers === null || headers === void 0 ? void 0 : headers.Authorization) ||\n (headers === null || headers === void 0 ? void 0 : headers.authorization) ||\n '';\n // Decode the bearer token's subject when present for a stable key across\n // refreshes; otherwise hash whatever header material we were given.\n const bearer = authValue.startsWith('Bearer ')\n ? authValue.slice('Bearer '.length)\n : authValue;\n const principal = bearer ? principalFromIdToken$1(bearer) : 'anon';\n return `${appId}:o${principal}`;\n }\n catch (_c) {\n // If we can't resolve the override identity, use a unique-ish key so we\n // never collide with (and serve) another principal's cached entry.\n return `${appId}:o${hashForKey$1(String(Date.now()) + Math.random())}`;\n }\n }\n // Direct per-request header override. makeApiRequest applies overrides.headers\n // AFTER its computed auth header (api.ts), so a caller-supplied Authorization\n // is the REAL request auth — key the cache by it so an entry is never served\n // to a different principal under the ambient key. (Hardening: no in-repo read\n // caller passes this today, but the cache must never trail the actual auth.)\n const directAuth = ((_a = overrides === null || overrides === void 0 ? void 0 : overrides.headers) === null || _a === void 0 ? void 0 : _a.Authorization) ||\n ((_b = overrides === null || overrides === void 0 ? void 0 : overrides.headers) === null || _b === void 0 ? void 0 : _b.authorization);\n if (directAuth) {\n const bearer = directAuth.startsWith('Bearer ')\n ? directAuth.slice('Bearer '.length)\n : directAuth;\n return `${appId}:h${bearer ? principalFromIdToken$1(bearer) : hashForKey$1(directAuth)}`;\n }\n // Ambient session principal.\n const idToken = await getIdToken(config.isServer);\n return `${appId}:${principalFromIdToken$1(idToken)}`;\n}\n/**\n * Validates that a field name is a safe identifier (alphanumeric, underscores, dots for nested paths).\n * Prevents prompt injection via crafted field names.\n */\nfunction validateFieldName(field) {\n if (!/^[a-zA-Z0-9_.]+$/.test(field)) {\n throw new Error(`Invalid field name \"${field}\". Field names must only contain letters, numbers, underscores, and dots.`);\n }\n}\n/**\n * Parses a raw aggregation result (e.g. [{ count: 42 }] or [{ _id: null, total: 100 }])\n * into a single numeric value.\n */\nfunction parseAggregateValue(result) {\n if (typeof result === 'number')\n return result;\n if (Array.isArray(result)) {\n if (result.length === 0)\n return 0;\n // Multiple elements — not a collapsed aggregate result\n if (result.length > 1) {\n throw new Error(`Unexpected aggregate result: got array with ${result.length} elements. The AI may have returned full documents instead of an aggregation.`);\n }\n const first = result[0];\n if (typeof first === 'number')\n return first;\n if (first && typeof first === 'object') {\n // $count stage returns { count: N }\n if (typeof first.count === 'number')\n return first.count;\n // $group stage returns { _id: null, result: N } — expect _id + one numeric field\n const numericEntries = Object.entries(first).filter(([key, val]) => key !== '_id' && typeof val === 'number');\n if (numericEntries.length === 1)\n return numericEntries[0][1];\n }\n // Avoid leaking document contents into error messages\n const shape = first && typeof first === 'object' ? `{${Object.keys(first).join(', ')}}` : String(first);\n throw new Error(`Unexpected aggregate result shape: ${shape}. Expected {count: N} or {_id: null, <field>: N}.`);\n }\n if (result && typeof result === 'object' && typeof result.count === 'number') {\n return result.count;\n }\n throw new Error(`Unexpected aggregate result type: ${typeof result}. Expected a number, array, or object with a count field.`);\n}\n/**\n * Count items in a collection path. Returns a numeric result.\n *\n * This uses the AI query engine with a count-specific prompt prefix,\n * so Bounded will generate a $count aggregation pipeline and return\n * just the count rather than full documents.\n *\n * IMPORTANT: This only works for collections where the read policy is \"true\".\n * If the read policy requires per-document checks, the server will return\n * an error because aggregate counts cannot be performed without pulling all\n * documents for access control evaluation.\n *\n * @param path - Collection path (e.g., \"posts\", \"users/abc/comments\")\n * @param opts - Optional filter prompt and overrides\n * @returns AggregateResult with the count value\n */\nasync function count(path, opts = {}) {\n var _a, _b;\n // On Bounded, the worker has no AI query engine — a prompt-based count returns\n // the raw documents, not an aggregation. Use the deterministic server\n // aggregation (queryAggregate) instead.\n if (isBoundedNetwork()) {\n const rows = await queryAggregate(path, { count: true }, { filter: opts.filter, _overrides: opts._overrides });\n return { value: (_b = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.count) !== null && _b !== void 0 ? _b : 0 };\n }\n const prefix = 'Return ONLY the total count of matching documents. Use the $count stage to produce a field named \"count\". Do NOT return the documents themselves.';\n const fullPrompt = opts.prompt\n ? `${prefix} Filter: ${opts.prompt}`\n : prefix;\n const result = await get(path, { prompt: fullPrompt, bypassCache: true, _overrides: opts._overrides });\n return { value: parseAggregateValue(result) };\n}\n/**\n * Bounded-native implementation of `aggregate`: map the single-scalar operation\n * onto the deterministic `queryAggregate` server aggregation and pull the value\n * out of the (single, ungrouped) result row. Empty collection → 0.\n */\nasync function boundedAggregate(path, operation, opts) {\n var _a, _b, _c;\n const qopts = { filter: opts.filter, _overrides: opts._overrides };\n if (operation === 'count') {\n const rows = await queryAggregate(path, { count: true }, qopts);\n return (_b = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.count) !== null && _b !== void 0 ? _b : 0;\n }\n if (!opts.field)\n throw new Error(`aggregate \"${operation}\" requires a field option`);\n validateFieldName(opts.field);\n if (operation === 'uniqueCount') {\n // distinct values = number of groups when grouping by the field.\n const rows = await queryAggregate(path, { groupBy: [opts.field] }, qopts);\n return rows.length;\n }\n // sum / avg / min / max → one bucket keyed by the field on the single row.\n const rows = await queryAggregate(path, { [operation]: [opts.field] }, qopts);\n const bucket = (_c = rows[0]) === null || _c === void 0 ? void 0 : _c[operation];\n const v = bucket === null || bucket === void 0 ? void 0 : bucket[opts.field];\n return typeof v === 'number' ? v : 0;\n}\n/**\n * Run an aggregate operation on a collection path. Returns a numeric result.\n *\n * Supported operations:\n * - count: Total number of documents\n * - uniqueCount: Number of distinct values for a field\n * - sum: Sum of a numeric field\n * - avg: Average of a numeric field\n * - min: Minimum value of a numeric field\n * - max: Maximum value of a numeric field\n *\n * IMPORTANT: This only works for collections where the read policy is \"true\".\n * If the read policy requires per-document checks, the server will return\n * an error because aggregate operations cannot be performed without pulling\n * all documents for access control evaluation.\n *\n * @param path - Collection path (e.g., \"posts\", \"users/abc/comments\")\n * @param operation - The aggregate operation to perform\n * @param opts - Options including optional filter prompt and field name\n * @returns AggregateResult with the computed numeric value\n */\nasync function aggregate(path, operation, opts = {}) {\n // On Bounded, route through the deterministic server aggregation — the legacy\n // AI-prompt path returns raw documents on the worker (no AI query engine).\n if (isBoundedNetwork()) {\n return { value: await boundedAggregate(path, operation, opts) };\n }\n let prefix;\n switch (operation) {\n case 'count':\n prefix = 'Return ONLY the total count of matching documents. Use the $count stage to produce a field named \"count\". Do NOT return the documents themselves.';\n break;\n case 'uniqueCount':\n if (!opts.field)\n throw new Error('aggregate \"uniqueCount\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the count of unique/distinct values of the \"${opts.field}\" field. Use $group with _id set to \"$${opts.field}\" then $count to produce a field named \"count\". Do NOT return the documents themselves.`;\n break;\n case 'sum':\n if (!opts.field)\n throw new Error('aggregate \"sum\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the sum of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $sum: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n case 'avg':\n if (!opts.field)\n throw new Error('aggregate \"avg\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the average of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $avg: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n case 'min':\n if (!opts.field)\n throw new Error('aggregate \"min\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the minimum value of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $min: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n case 'max':\n if (!opts.field)\n throw new Error('aggregate \"max\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the maximum value of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $max: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n default:\n throw new Error(`Unsupported aggregate operation: ${operation}`);\n }\n const fullPrompt = opts.prompt\n ? `${prefix} Filter: ${opts.prompt}`\n : prefix;\n const result = await get(path, { prompt: fullPrompt, bypassCache: true, _overrides: opts._overrides });\n // For uniqueCount, the AI may return $group results without the final $count\n // stage, producing [{_id: \"val1\"}, {_id: \"val2\"}, ...]. Verify elements look\n // like $group output (only _id key) before using array length as the count.\n if (operation === 'uniqueCount' && Array.isArray(result) && result.length > 1) {\n const looksLikeGroupOutput = result.every((el) => el && typeof el === 'object' && Object.keys(el).length === 1 && '_id' in el);\n if (looksLikeGroupOutput) {\n return { value: result.length };\n }\n throw new Error(`Unexpected uniqueCount result: got ${result.length} elements that don't match $group output shape.`);\n }\n return { value: parseAggregateValue(result) };\n}\n/**\n * Structured, grouped aggregation over a collection. Returns one row per group\n * (or a single row when `spec.groupBy` is omitted). Read rules are enforced — the\n * aggregation only sees documents the caller can read.\n *\n * ```ts\n * const byCat = await queryAggregate(\"spend\", { groupBy: [\"category\"], count: true, sum: [\"amount\"] });\n * // [{ group: { category: \"food\" }, count: 2, sum: { amount: 70 } }, ...]\n * ```\n */\nasync function queryAggregate(path, spec, opts = {}) {\n var _a, _b, _c, _d, _e;\n let normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (normalizedPath.endsWith(\"*\") && normalizedPath.length > 1) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n if (!normalizedPath || normalizedPath.length === 0) {\n throw new Error(\"Invalid path provided.\");\n }\n // Validate every referenced field name to prevent injection via crafted keys.\n // Each of these takes an ARRAY of field names — catch the common mistake of\n // passing an object/string (e.g. `sum: { field: \"n\" }`) with a clear error\n // instead of a cryptic \"list is not iterable\" from the for-of below.\n for (const key of ['groupBy', 'sum', 'avg', 'min', 'max']) {\n const list = spec[key];\n if (list == null)\n continue;\n if (!Array.isArray(list)) {\n throw new Error(`queryAggregate: spec.${key} must be an array of field names ` +\n `(e.g. ${key}: [\"amount\"]), got ${typeof list}`);\n }\n for (const f of list)\n validateFieldName(f);\n }\n const cleanSpec = {};\n if ((_a = spec.groupBy) === null || _a === void 0 ? void 0 : _a.length)\n cleanSpec.groupBy = spec.groupBy;\n if (spec.count)\n cleanSpec.count = true;\n if ((_b = spec.sum) === null || _b === void 0 ? void 0 : _b.length)\n cleanSpec.sum = spec.sum;\n if ((_c = spec.avg) === null || _c === void 0 ? void 0 : _c.length)\n cleanSpec.avg = spec.avg;\n if ((_d = spec.min) === null || _d === void 0 ? void 0 : _d.length)\n cleanSpec.min = spec.min;\n if ((_e = spec.max) === null || _e === void 0 ? void 0 : _e.length)\n cleanSpec.max = spec.max;\n const aggParam = `&aggregate=${encodeURIComponent(JSON.stringify(cleanSpec))}`;\n const filterParam = opts.filter ? `&filter=${encodeURIComponent(JSON.stringify(opts.filter))}` : '';\n const apiPath = `items?path=${encodeURIComponent(normalizedPath)}${aggParam}${filterParam}`;\n const response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n const body = response.data;\n // Worker returns { data: AggregateRow[], nextCursor, status } for aggregate queries.\n if (Array.isArray(body))\n return body;\n if (body && Array.isArray(body.data))\n return body.data;\n return [];\n}\n/**\n * Full-text search a collection declared with `search: { fields: [...] }`.\n *\n * The match runs over the collection's indexed fields (or the subset passed in\n * `opts.fields`) and respects each document's `read` rule — results the caller\n * cannot read are omitted. Returns the matching documents (optionally paged via\n * `opts.limit`/`opts.cursor`).\n *\n * @param path Collection path, e.g. \"orgs/o1/docs\"\n * @param query Free-text query string (non-empty)\n */\nasync function search(path, query, opts = {}) {\n let normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (normalizedPath.endsWith(\"*\") && normalizedPath.length > 1) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n if (!normalizedPath || normalizedPath.length === 0) {\n return new Error(\"Invalid path provided.\");\n }\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"search query must be a non-empty string\");\n }\n if (opts.fields) {\n for (const f of opts.fields)\n validateFieldName(f);\n }\n const spec = { query };\n if (opts.fields && opts.fields.length > 0)\n spec.fields = opts.fields;\n const searchParam = `&search=${encodeURIComponent(JSON.stringify(spec))}`;\n const limitParam = opts.limit !== undefined ? `&limit=${opts.limit}` : '';\n const cursorParam = opts.cursor ? `&cursor=${encodeURIComponent(opts.cursor)}` : '';\n const apiPath = `items?path=${encodeURIComponent(normalizedPath)}${searchParam}${limitParam}${cursorParam}`;\n const response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n return response.data;\n}\nasync function get(path, opts = {}) {\n try {\n let normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n // Remove last '*' if it exists in the path\n if (normalizedPath.endsWith(\"*\") && normalizedPath.length > 1) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n if (!normalizedPath || normalizedPath.length === 0) {\n return new Error(\"Invalid path provided.\");\n }\n // Create cache key combining path, prompt, filter, sort, includeSubPaths,\n // shape, limit, cursor — and (H1) the caller's appId + principal fingerprint,\n // so a private read cached for one user is never served to another in a\n // shared process / SSR worker / browser login-switch.\n const shapeKey = opts.shape ? JSON.stringify(opts.shape) : '';\n const includeSubPathsKey = opts.includeSubPaths ? ':subpaths' : '';\n const limitKey = opts.limit !== undefined ? `:l${opts.limit}` : '';\n const cursorKey = opts.cursor ? `:c${hashForKey$1(opts.cursor)}` : '';\n const filterKey = opts.filter ? `:f${hashForKey$1(JSON.stringify(opts.filter))}` : '';\n const sortKey = opts.sort ? `:s${hashForKey$1(JSON.stringify(opts.sort))}` : '';\n const principalKey = await getReadPrincipalKey(opts._overrides);\n const cacheKey = `${principalKey}|${normalizedPath}:${opts.prompt || ''}${filterKey}${sortKey}${includeSubPathsKey}:${shapeKey}${limitKey}${cursorKey}`;\n const now = Date.now();\n // Check for valid cache entry if not bypassing cache\n if (!opts.bypassCache && getCache[cacheKey] && now < getCache[cacheKey].expiresAt) {\n return getCache[cacheKey].data;\n }\n // If we're bypassing cache, we should still coalesce identical requests\n // but need a different key to avoid interfering with regular requests\n const requestKey = opts.bypassCache ? `bypass:${cacheKey}` : cacheKey;\n // Check if there's already an in-flight request for this key\n // Fix for TS error - use hasOwnProperty to explicitly check if key exists\n if (Object.prototype.hasOwnProperty.call(pendingRequests, requestKey)) {\n // Return the existing promise to coalesce requests\n return pendingRequests[requestKey];\n }\n // Create a new request promise and store it\n const requestPromise = (async () => {\n var _a;\n try {\n // For realtime chains, prefer WebSocket reads (lower latency, already connected)\n const config = await getConfig();\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n if (((_a = config.chain) === null || _a === void 0 ? void 0 : _a.startsWith('realtime_')) && !config.isServer && !opts.prompt && !opts.shape && !opts.cursor && !opts.includeSubPaths && !opts.filter && !opts.sort) {\n try {\n const { wsGet, wsQuery, hasActiveConnection } = await Promise.resolve().then(function () { return subscriptionV2; });\n if (hasActiveConnection()) {\n if (pathIsDocument) {\n const wsResult = await wsGet(normalizedPath);\n const responseData = normalizeReadResult(wsResult, true);\n if (!opts.bypassCache) {\n getCache[cacheKey] = { data: responseData, expiresAt: now + GET_CACHE_TTL };\n }\n return responseData;\n }\n else if (!opts.limit) {\n const wsResult = await wsQuery(normalizedPath, {\n filter: undefined,\n sort: undefined,\n includeSubPaths: opts.includeSubPaths,\n });\n const responseData = normalizeReadResult(wsResult, false);\n if (!opts.bypassCache) {\n getCache[cacheKey] = { data: responseData, expiresAt: now + GET_CACHE_TTL };\n }\n return responseData;\n }\n }\n }\n catch ( /* fall through to HTTP */_b) { /* fall through to HTTP */ }\n }\n // Cache miss or bypass - proceed with HTTP API request\n let response;\n // Build common query params\n const includeSubPathsParam = opts.includeSubPaths ? '&includeSubPaths=true' : '';\n const shapeParam = opts.shape ? `&shape=${encodeURIComponent(JSON.stringify(opts.shape))}` : '';\n const limitParam = opts.limit !== undefined ? `&limit=${opts.limit}` : '';\n const cursorParam = opts.cursor ? `&cursor=${encodeURIComponent(opts.cursor)}` : '';\n const filterParam = opts.filter ? `&filter=${encodeURIComponent(JSON.stringify(opts.filter))}` : '';\n const sortParam = opts.sort ? `&sort=${encodeURIComponent(JSON.stringify(opts.sort))}` : '';\n if (pathIsDocument) {\n const itemId = encodeURIComponent(normalizedPath);\n const queryParams = [includeSubPathsParam, shapeParam].filter(p => p).join('');\n const apiPath = queryParams ? `items/${itemId}?${queryParams.substring(1)}` : `items/${itemId}`;\n response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n }\n else {\n const path = encodeURIComponent(normalizedPath);\n const promptQueryParam = (opts === null || opts === void 0 ? void 0 : opts.prompt) ? `&prompt=${safeBtoa(opts.prompt)}` : \"\";\n const apiPath = `items?path=${path}${promptQueryParam}${filterParam}${sortParam}${includeSubPathsParam}${shapeParam}${limitParam}${cursorParam}`;\n response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n }\n // Normalize the worker's raw body into the SDK's stable shape:\n // - single-doc path → the resolved document or null (Bug 2), and\n // - collection path → `{ data, nextCursor }` preserved,\n // with the bare `id` (leaf doc key) attached to every returned row (Bug 1).\n const responseData = normalizeReadResult(response.data, pathIsDocument);\n // Cache the response (unless bypassing cache)\n if (!opts.bypassCache) {\n getCache[cacheKey] = {\n data: responseData,\n expiresAt: now + GET_CACHE_TTL\n };\n // Periodically clean up expired cache entries (every 5 seconds)\n if (now - lastCacheCleanup > 5000) {\n cleanupExpiredCache();\n lastCacheCleanup = now;\n }\n }\n // Return the data from the response\n return responseData;\n }\n finally {\n // Remove this request from pendingRequests regardless of success/failure\n delete pendingRequests[requestKey];\n }\n })();\n // Store the promise so other calls can join it\n pendingRequests[requestKey] = requestPromise;\n // Return the promise\n return requestPromise;\n }\n catch (error) {\n throw error;\n }\n}\n// Helper to clean up expired cache entries\nfunction cleanupExpiredCache() {\n const now = Date.now();\n Object.keys(getCache).forEach(key => {\n if (getCache[key] && getCache[key].expiresAt < now) {\n delete getCache[key];\n }\n });\n lastCacheCleanup = now;\n}\nasync function getMany(paths, opts = {}) {\n var _a, _b, _c, _d, _e;\n if (paths.length === 0) {\n return [];\n }\n if (paths.length > 30) {\n throw new Error('Cannot fetch more than 30 documents at once');\n }\n const normalizedPaths = [];\n for (const path of paths) {\n let normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (normalizedPath.endsWith(\"*\") && normalizedPath.length > 1) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n if (!normalizedPath || normalizedPath.length === 0) {\n throw new Error(`Invalid path provided: ${path}`);\n }\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n if (!pathIsDocument) {\n throw new Error(`Path must point to a document (even number of segments): ${path}`);\n }\n normalizedPaths.push(normalizedPath);\n }\n const now = Date.now();\n // H1: principal-scope getMany cache keys so one user's batch reads are never\n // served to another. Same `<appId:principal>|<path>:` shape used by get().\n const principalKey = await getReadPrincipalKey(opts._overrides);\n const results = new Array(paths.length);\n const uncachedIndices = [];\n const uncachedPaths = [];\n for (let i = 0; i < normalizedPaths.length; i++) {\n const normalizedPath = normalizedPaths[i];\n const cacheKey = `${principalKey}|${normalizedPath}:`;\n if (!opts.bypassCache && getCache[cacheKey] && now < getCache[cacheKey].expiresAt) {\n results[i] = { path: normalizedPath, data: getCache[cacheKey].data };\n }\n else {\n uncachedIndices.push(i);\n uncachedPaths.push(normalizedPath);\n }\n }\n if (uncachedPaths.length > 0) {\n try {\n const response = await makeApiRequest('POST', 'items/batch', { paths: uncachedPaths }, opts._overrides);\n // makeApiRequest returns `{ data: <httpBody> }`, and the worker's items/batch\n // httpBody is `{ data: { results: [...] }, status }` — so the results are\n // double-nested at response.data.data.results. (Reading response.data.results\n // here is undefined → \"serverResults is not iterable\".) Tolerate both shapes.\n const serverResults = (_e = (_c = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.results) !== null && _c !== void 0 ? _c : (_d = response.data) === null || _d === void 0 ? void 0 : _d.results) !== null && _e !== void 0 ? _e : [];\n const serverResultsMap = new Map();\n for (const result of serverResults) {\n serverResultsMap.set(result.path, result);\n }\n for (let i = 0; i < uncachedIndices.length; i++) {\n const originalIndex = uncachedIndices[i];\n const normalizedPath = uncachedPaths[i];\n const serverResult = serverResultsMap.get(normalizedPath);\n if (serverResult) {\n // getMany batches single-doc paths — attach the bare `id` (leaf doc\n // key) to each returned doc, additive (Bug 1), matching get().\n const normalizedResult = serverResult.error\n ? serverResult\n : Object.assign(Object.assign({}, serverResult), { data: withBareId(serverResult.data) });\n results[originalIndex] = normalizedResult;\n if (!normalizedResult.error && !opts.bypassCache) {\n const cacheKey = `${principalKey}|${normalizedPath}:`;\n getCache[cacheKey] = {\n data: normalizedResult.data,\n expiresAt: now + GET_CACHE_TTL\n };\n }\n }\n else {\n results[originalIndex] = {\n path: normalizedPath,\n data: null,\n error: { code: 'NOT_FOUND', message: `No result returned for path ${normalizedPath}` }\n };\n }\n }\n if (now - lastCacheCleanup > 5000) {\n cleanupExpiredCache();\n lastCacheCleanup = now;\n }\n }\n catch (error) {\n for (const originalIndex of uncachedIndices) {\n results[originalIndex] = {\n path: normalizedPaths[originalIndex],\n data: null,\n error: { code: 'NOT_FOUND', message: error instanceof Error ? error.message : 'Unknown error' }\n };\n }\n }\n }\n return results;\n}\nasync function runQuery(absolutePath, queryName, queryArgs, opts) {\n const result = await runQueryMany([{ absolutePath, queryName, queryArgs }], opts);\n return result[0];\n}\nasync function runQueryMany(many, opts) {\n try {\n let queries = [];\n for (const { absolutePath, queryName, queryArgs } of many) {\n const normalizedPath = absolutePath.startsWith(\"/\") ? absolutePath.slice(1) : absolutePath;\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n if (!pathIsDocument) {\n throw new Error(`Invalid path provided make sure it is pointing to a document: ${absolutePath}`);\n }\n queries.push({ path: normalizedPath, queryName, queryArgs });\n }\n const response = await makeApiRequest('POST', 'queries', { queries }, opts === null || opts === void 0 ? void 0 : opts._overrides);\n return response.data.queries.map((result) => result.result);\n }\n catch (error) {\n throw error;\n }\n}\n// NEW: Ad-hoc expression execution - first-class feature\nasync function runExpression(expression, queryArgs, options) {\n const results = await runExpressionMany([Object.assign({ expression, queryArgs }, options)]);\n return results[0];\n}\nasync function runExpressionMany(many) {\n try {\n let queries = [];\n let overrides = undefined;\n for (const { expression, queryArgs, returnType, _overrides } of many) {\n // Collect overrides from first query that has them (all queries share same request)\n if (_overrides && !overrides) {\n overrides = _overrides;\n }\n queries.push({ queryArgs, expression, returnType });\n }\n const response = await makeApiRequest('POST', 'queries', { queries }, overrides);\n // Map results - trace is automatically included by server for non-mainnet networks\n return response.data.queries.map((queryResult) => {\n const result = { result: queryResult.result };\n // Include trace if present (server includes it for non-mainnet networks)\n if (queryResult.trace) {\n result.trace = queryResult.trace;\n }\n return result;\n });\n }\n catch (error) {\n throw error;\n }\n}\n/**\n * Write a document at `path`. Sugar for a one-element {@link setMany}.\n *\n * **Delete:** pass `null` as the document to delete it — `set(path, null)` is\n * the delete (there is no separate `del`/`remove`). It is routed through the\n * collection's policy `delete` rule and broadcasts a delete to subscribers.\n */\nasync function set(path, document, options) {\n const result = await setMany([{ path, document }], options);\n // Clear cache entries that might be affected by this update\n clearCacheByPrefix(path);\n return result;\n}\nasync function setMany(many, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n // Returns the data that was set, or undefined if the document was already set.\n try {\n const config = await getConfig();\n const authProvider = (_b = (_a = options === null || options === void 0 ? void 0 : options._overrides) === null || _a === void 0 ? void 0 : _a.authProvider) !== null && _b !== void 0 ? _b : config.authProvider;\n if (!authProvider) {\n throw new Error('Auth provider not initialized');\n }\n let documents = [];\n const pathsToInvalidate = new Set();\n for (const { path, document: documentWithReservedFields } of many) {\n // for setting, we should remove any pieces of the document that start with '_' as they are internal and shouldn't be updated. The API would block it if it is one of the reserved ones\n let document = documentWithReservedFields;\n if (documentWithReservedFields) {\n document = Object.fromEntries(Object.entries(documentWithReservedFields).filter(([key]) => !key.startsWith('_')));\n }\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n pathsToInvalidate.add(normalizedPath);\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n let curItemId = \"\";\n if (pathIsDocument) {\n curItemId = normalizedPath.split(\"/\").pop() ? normalizedPath.split(\"/\").pop() : \"\";\n }\n else {\n curItemId = Math.random().toString(36).slice(2).substring(0, 12);\n }\n // if the path is a document, we need to append the document id to the path\n const collectionPath = pathIsDocument ? normalizedPath.split(\"/\").slice(0, -1).join(\"/\") : normalizedPath;\n pathsToInvalidate.add(collectionPath);\n let destinationPath = collectionPath;\n if (curItemId && curItemId.length > 0) {\n destinationPath = `${destinationPath}/${curItemId}`;\n }\n documents.push({ destinationPath, document });\n }\n let setResponse;\n try {\n // For realtime chains, prefer WebSocket if a connection is active (lower latency)\n const useWs = ((_c = config.chain) === null || _c === void 0 ? void 0 : _c.startsWith('realtime_')) && !config.isServer;\n if (useWs) {\n try {\n const { wsSet, hasActiveConnection } = await Promise.resolve().then(function () { return subscriptionV2; });\n if (hasActiveConnection()) {\n // Connection is active — send via WS. If this throws, the write\n // may have been applied server-side (ack lost). Do NOT fall through\n // to HTTP, as that would double-apply non-idempotent ops (Increment).\n const wsResult = await wsSet(documents);\n setResponse = { data: wsResult, status: 200 };\n }\n }\n catch (wsError) {\n // Only fall through to HTTP if the request was never sent (connection not available).\n // If the request was sent and ack was lost (timeout), the server may have\n // applied it — re-sending via HTTP risks double-write for non-idempotent ops.\n const msg = (_d = wsError === null || wsError === void 0 ? void 0 : wsError.message) !== null && _d !== void 0 ? _d : '';\n const neverSent = msg.includes('not available') || msg.includes('connection timeout');\n if (!neverSent) {\n throw wsError;\n }\n // Safe to retry via HTTP — request was never sent\n }\n }\n if (!setResponse) {\n setResponse = await makeApiRequest('PUT', `items`, { documents }, options === null || options === void 0 ? void 0 : options._overrides);\n }\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.statusCode) === 402 && (error === null || error === void 0 ? void 0 : error.error) === 'INSUFFICIENT_BALANCE') {\n const deficitLamports = Number((_e = error.deficitLamports) !== null && _e !== void 0 ? _e : 0);\n const deficitSol = Number((_f = error.deficitSol) !== null && _f !== void 0 ? _f : deficitLamports / 1000000000);\n throw new InsufficientBalanceError(String((_g = error.address) !== null && _g !== void 0 ? _g : ''), Number((_h = error.balanceLamports) !== null && _h !== void 0 ? _h : 0), Number((_j = error.estimatedCostLamports) !== null && _j !== void 0 ? _j : 0), deficitLamports, deficitSol);\n }\n throw error;\n }\n // Invalidate caches and pending requests for affected paths\n pathsToInvalidate.forEach(path => {\n clearCacheByPrefix(path);\n });\n if (setResponse.status === 202) {\n // This means that the document needs to be set on-chain (or signed for offchain),\n // the API did nothing and gave us the required info to run this transaction.\n const { transactions, offchainTransaction } = setResponse.data;\n // Handle offchain transaction flow (for 'offchain' protocol apps)\n if (offchainTransaction) {\n const transactionResult = await handleOffchainTransaction(offchainTransaction, authProvider, options);\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: transactionResult.signature, signedTransaction: transactionResult.signedTransaction });\n }\n // Handle Solana on-chain transaction flow\n let lastTxSignature = undefined;\n let signedTransaction = undefined;\n for (let i = 0; i < transactions.length; i++) {\n const curTx = transactions[i];\n let transactionResult;\n if (curTx.serializedTransaction) {\n transactionResult = await handlePreBuiltTransaction(curTx, authProvider, options);\n }\n else {\n transactionResult = await handleSolanaTransaction(curTx, authProvider, options);\n }\n lastTxSignature = transactionResult.transactionSignature;\n signedTransaction = transactionResult.signedTransaction;\n }\n // Sync items after all transactions are confirmed\n // Wait for 1.5 seconds to ensure all transactions are confirmed\n await new Promise(resolve => setTimeout(resolve, 1500));\n await syncItems(many.map(m => m.path), options);\n // TODO: Should we wait here or do the optimistic subscription updates like below?\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: lastTxSignature, signedTransaction: signedTransaction });\n }\n else if (setResponse.status === 200) {\n // This means that the document was set successfully.\n // TODO: If we're able to be smarter about it, we can return the document here, and get it back from the server\n // rather than just using what we set.\n // TODO: We can also trigger subscriptions here maybe? Can even recall all relevant subscriptions here.\n if (setResponse.data === true) {\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: null });\n }\n else if (setResponse.data &&\n typeof setResponse.data === 'object' &&\n setResponse.data.success === true) {\n const _k = setResponse.data, { success: _success } = _k, rest = __rest(_k, [\"success\"]);\n return Object.assign(Object.assign(Object.assign({}, documents.map(d => d.document)), rest), { transactionId: null });\n }\n else {\n return Object.assign(Object.assign({}, setResponse.data), { transactionId: null });\n }\n }\n else {\n throw new Error(`Failed to set document: ${setResponse}`);\n }\n }\n catch (error) {\n throw error;\n }\n async function handleSolanaTransaction(tx, authProvider, options) {\n var _a, _b, _c, _d, _e;\n // NOTE (backwards-compat revert): a program-allowlist on server-supplied\n // `preInstructions` was tried here for the audit-8 SOL-drain concern, but it\n // broke legitimate onchain DeFi flows — bounded routes Phoenix, Jupiter/swap,\n // SPL-Token and ATA-creation instructions through standard-path preInstructions\n // (see sol-helper remaining-accounts-extractor). A correct audit-8 fix must be\n // DeFi-aware (e.g. block ONLY a raw System Transfer/TransferWithSeed, never a\n // whole-program allowlist) and is tracked separately. Prior behavior restored.\n const solTransactionData = {\n remainingAccounts: tx.remainingAccounts,\n setDocumentData: tx.transactionArgs.setDocumentData,\n deletePaths: tx.transactionArgs.deletePaths,\n idl: tx.idl,\n txData: (_b = (_a = tx.txData) === null || _a === void 0 ? void 0 : _a.map((txData) => ({\n pluginFunctionKey: txData.pluginFunctionKey,\n txData: bufferExports.Buffer.from(txData.txData),\n // raIndices is Vec<u8> on-chain (serialized as Buffer/bytes). The server may send\n // it as a Buffer, a number[], a Uint8Array, or — over JSON — as Node's serialized\n // Buffer shape {type: \"Buffer\", data: number[]} (the default `JSON.stringify(buf)`\n // output). Normalise all of those to Buffer here. Each value must fit in u8 (matches\n // Solana's instruction-level account indexing); throw clearly if anything is out of range.\n raIndices: (() => {\n const raw = txData.raIndices;\n if (raw == null)\n return bufferExports.Buffer.alloc(0);\n if (bufferExports.Buffer.isBuffer(raw))\n return raw;\n if (raw instanceof Uint8Array)\n return bufferExports.Buffer.from(raw);\n // Node's JSON-serialised Buffer: {type: \"Buffer\", data: number[]}\n const arrayLike = Array.isArray(raw)\n ? raw\n : (raw && typeof raw === 'object' && Array.isArray(raw.data))\n ? raw.data\n : (() => { throw new Error(`raIndices has unexpected shape: ${typeof raw}`); })();\n const bytes = arrayLike.map((raIndex) => {\n const n = isHexString(raIndex) ? parseInt(raIndex, 16) : Number(raIndex);\n if (!Number.isInteger(n) || n < 0 || n > 255) {\n throw new Error(`raIndex ${raIndex} is not a valid u8 (must be integer in 0..255)`);\n }\n return n;\n });\n return bufferExports.Buffer.from(bytes);\n })(),\n }))) !== null && _b !== void 0 ? _b : [],\n };\n const config = await getConfig();\n const solTransaction = {\n appId: config.appId,\n txArgs: [solTransactionData],\n lutKey: (_c = tx.lutAddress) !== null && _c !== void 0 ? _c : null,\n additionalLutAddresses: tx.additionalLutAddresses,\n network: tx.network,\n preInstructions: (_e = (_d = tx.preInstructions) === null || _d === void 0 ? void 0 : _d.map((ix) => {\n var _a;\n const keys = (_a = ix.keys) === null || _a === void 0 ? void 0 : _a.map((k) => ({\n pubkey: new PublicKey(k.pubkey),\n isSigner: k.isSigner,\n isWritable: k.isWritable,\n }));\n const programId = ix.programId === SystemProgram.programId.toBase58()\n ? SystemProgram.programId // prettier to use the constant\n : new PublicKey(ix.programId);\n const data = bufferExports.Buffer.from(ix.data);\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n })) !== null && _e !== void 0 ? _e : [],\n // Server co-signed transaction (when CPI tx_data is present)\n signedTransaction: tx.signedTransaction,\n };\n const transactionResult = await authProvider.runTransaction(undefined, solTransaction, options);\n return transactionResult;\n }\n async function handlePreBuiltTransaction(tx, authProvider, options) {\n var _a, _b;\n const config = await getConfig();\n const rpcUrl = config.rpcUrl || (tx.network === 'solana_devnet'\n ? 'https://api.devnet.solana.com'\n : 'https://api.mainnet-beta.solana.com');\n const connection = new Connection(rpcUrl, 'confirmed');\n const txBytes = bufferExports.Buffer.from(tx.serializedTransaction, 'base64');\n const transaction = VersionedTransaction.deserialize(txBytes);\n // Validate the transaction before signing: ensure only allowed programs\n // and no unauthorized System program instructions (e.g., SOL transfers)\n const BOUNDED_PROGRAM = 'poof4b5pk1L9tmThvBmaABjcyjfhFGbMbQP5BXk2QZp';\n const COMPUTE_BUDGET = 'ComputeBudget111111111111111111111111111111';\n const SYSTEM_PROGRAM = '11111111111111111111111111111111';\n const ALLOWED_PROGRAMS = new Set([BOUNDED_PROGRAM, COMPUTE_BUDGET, SYSTEM_PROGRAM]);\n // System program instruction discriminators (first 4 bytes, little-endian u32)\n const SYSTEM_TRANSFER = 2; // Transfer instruction index\n const SYSTEM_TRANSFER_WITH_SEED = 11;\n const accountKeys = transaction.message.staticAccountKeys;\n for (const ix of transaction.message.compiledInstructions) {\n if (ix.programIdIndex >= accountKeys.length) {\n throw new Error('Pre-built transaction has program ID in lookup table (not allowed)');\n }\n const programId = accountKeys[ix.programIdIndex].toBase58();\n if (!ALLOWED_PROGRAMS.has(programId)) {\n throw new Error(`Pre-built transaction contains unauthorized program: ${programId}`);\n }\n // Block System program transfer instructions — a compromised DO could\n // embed a SOL drain. Only allow createAccount/allocate (needed for PDA init).\n if (programId === SYSTEM_PROGRAM && ix.data.length >= 4) {\n const ixIndex = ix.data[0] | (ix.data[1] << 8) | (ix.data[2] << 16) | (ix.data[3] << 24);\n if (ixIndex === SYSTEM_TRANSFER || ixIndex === SYSTEM_TRANSFER_WITH_SEED) {\n throw new Error('Pre-built transaction contains unauthorized System transfer instruction');\n }\n }\n }\n const signedTx = await authProvider.signTransaction(transaction);\n const rawTx = signedTx.serialize();\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n return {\n transactionSignature: '',\n signedTransaction: bufferExports.Buffer.from(rawTx).toString('base64'),\n blockNumber: 0,\n gasUsed: '0',\n };\n }\n const signature = await connection.sendRawTransaction(rawTx, {\n skipPreflight: false,\n maxRetries: 3,\n });\n const confirmation = await connection.confirmTransaction({\n signature,\n blockhash: tx.blockhash,\n lastValidBlockHeight: tx.lastValidBlockHeight,\n }, 'confirmed');\n return {\n transactionSignature: signature,\n signedTransaction: bufferExports.Buffer.from(rawTx).toString('base64'),\n blockNumber: (_b = (_a = confirmation.context) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0,\n gasUsed: '0',\n };\n }\n async function handleOffchainTransaction(tx, authProvider, options) {\n var _a, _b, _c, _d, _e, _f;\n const config = await getConfig();\n // 1. Sign the transaction message using mock signing for offchain transactions\n // Use signMessageMock if available (OffchainAuthProvider), otherwise fall back to signMessage\n const signature = authProvider.signMessageMock\n ? await authProvider.signMessageMock(tx.message)\n : await authProvider.signMessage(tx.message);\n // 2. Create signed transaction\n const signedTx = {\n transaction: tx,\n signature\n };\n // 3. If shouldSubmitTx is false, return signed but not submitted\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n return {\n signature: '',\n signedTransaction: bufferExports.Buffer.from(JSON.stringify(signedTx)).toString('base64')\n };\n }\n // 4. Submit to RPC endpoint via makeApiRequest (gets auth headers + 401 retry)\n const appId = ((_b = (_a = options === null || options === void 0 ? void 0 : options._overrides) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b['x-app-id']) || ((_d = (_c = options === null || options === void 0 ? void 0 : options._overrides) === null || _c === void 0 ? void 0 : _c.headers) === null || _d === void 0 ? void 0 : _d['X-App-Id']) || config.appId;\n const rpcResponse = await makeApiRequest('POST', `/app/${appId}/rpc`, {\n jsonrpc: '2.0',\n id: 1,\n method: 'sendTransaction',\n params: [bufferExports.Buffer.from(JSON.stringify(signedTx)).toString('base64')]\n }, options === null || options === void 0 ? void 0 : options._overrides);\n if ((_e = rpcResponse.data) === null || _e === void 0 ? void 0 : _e.error) {\n throw new Error(rpcResponse.data.error.message);\n }\n return { signature: (_f = rpcResponse.data) === null || _f === void 0 ? void 0 : _f.result };\n }\n}\n/**\n * Extract the document/collection path from a cache key. Keys are\n * `<appId:principal>|<path>:<...>` (H1 principal-scoped) — strip the principal\n * prefix (everything up to and including the first `|`, if present) before\n * splitting off the path segment.\n */\nfunction pathFromCacheKey(key) {\n const barIdx = key.indexOf('|');\n const afterPrincipal = barIdx >= 0 ? key.slice(barIdx + 1) : key;\n return afterPrincipal.split(':')[0];\n}\n// Helper to clear cache entries by prefix (across ALL principals — a write\n// invalidates every cached read of that path regardless of which user cached it)\nfunction clearCacheByPrefix(prefix) {\n // Fixed: Use prefix instead of undefined 'path' variable\n const normalizedPrefix = prefix.startsWith(\"/\") ? prefix.slice(1) : prefix;\n // Clear cache entries\n Object.keys(getCache).forEach(key => {\n const path = pathFromCacheKey(key);\n if (path === normalizedPrefix || path.startsWith(`${normalizedPrefix}/`)) {\n delete getCache[key];\n }\n });\n // Cancel pending requests for this path\n Object.keys(pendingRequests).forEach(key => {\n // Skip bypass-specific requests which have a different format\n const lookupKey = key.startsWith('bypass:') ? key.slice('bypass:'.length) : key;\n const path = pathFromCacheKey(lookupKey);\n if (path === normalizedPrefix || path.startsWith(`${normalizedPrefix}/`)) {\n // We don't actually abort the fetch (we could with AbortController),\n // but we remove it from pending so new requests won't coalesce with it\n delete pendingRequests[key];\n }\n });\n}\n/**\n * SECURITY (H1): Wipe ALL HTTP read caches + in-flight reads. Call this whenever\n * the logged-in identity changes (login / logout / switch identity) so a freshly\n * authenticated principal can never observe data cached for the previous one.\n * This is invoked from the WS auth-change path (reconnectWithNewAuthV2).\n */\nfunction clearReadCacheForAuthChange() {\n Object.keys(getCache).forEach(key => delete getCache[key]);\n Object.keys(pendingRequests).forEach(key => delete pendingRequests[key]);\n}\nasync function getFiles(path, options) {\n try {\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (!normalizedPath || normalizedPath.length === 0) {\n return new Error(\"Invalid path provided.\");\n }\n const apiPath = `storage?path=${normalizedPath}`;\n const response = await makeApiRequest('GET', apiPath, null, options === null || options === void 0 ? void 0 : options._overrides);\n return response.data;\n }\n catch (error) {\n throw error;\n }\n}\nasync function setFile(path, file, options) {\n var _a;\n // 1) Get the presigned URL from your backend\n const requestBody = {\n destinationPath: path,\n operation: file ? 'upload' : 'delete',\n };\n // Send file size so the server can enforce upload limits before issuing a presigned URL\n if (file) {\n requestBody.contentLength = file.size;\n requestBody.contentType = file.type || undefined;\n // Declared metadata fields set atomically with the create (server validates\n // them against the storage collection's `fields` and applies the CREATE rule).\n if (options === null || options === void 0 ? void 0 : options.metadata) {\n requestBody.metadata = options.metadata;\n }\n }\n const response = await makeApiRequest('POST', 'storage/url', requestBody, options === null || options === void 0 ? void 0 : options._overrides);\n if (file == null) {\n return true;\n }\n if (!((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.s3Url)) {\n throw new Error(\"No s3Url in response\");\n }\n // Client-side size guard using the limit returned by the server\n const maxFileSize = response.data.maxFileSize;\n if (maxFileSize && file.size > maxFileSize) {\n throw new Error(`File size ${(file.size / (1024 * 1024)).toFixed(2)} MB exceeds the maximum upload size of ${(maxFileSize / (1024 * 1024)).toFixed(0)} MB.`);\n }\n const presignedUrl = response.data.s3Url;\n // 2) Upload the file directly to S3 with a PUT request\n const uploadResponse = await fetch(presignedUrl, {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type,\n },\n body: file\n });\n // 3) Check if the upload was successful\n if (!uploadResponse.ok) {\n await uploadResponse.text();\n throw new Error(`Upload failed with status: ${uploadResponse.status}`);\n }\n return true;\n}\nasync function signMessage(message) {\n const config = await getConfig();\n if (!config.authProvider) {\n throw new Error('Auth provider not initialized. Please call init() first.');\n }\n return config.authProvider.signMessage(message);\n}\nasync function signTransaction(transaction) {\n const config = await getConfig();\n if (!config.authProvider) {\n throw new Error('Auth provider not initialized. Please call init() first.');\n }\n return config.authProvider.signTransaction(transaction);\n}\nasync function signAndSubmitTransaction(transaction, feePayer) {\n const config = await getConfig();\n if (!config.authProvider) {\n throw new Error('Auth provider not initialized. Please call init() first.');\n }\n return config.authProvider.signAndSubmitTransaction(transaction, feePayer);\n}\nasync function syncItems(paths, options) {\n try {\n const response = await makeApiRequest('PUT', 'items/sync', { paths }, options === null || options === void 0 ? void 0 : options._overrides);\n return response.data;\n }\n catch (error) {\n throw error;\n }\n}\n\nvar operations = /*#__PURE__*/Object.freeze({\n __proto__: null,\n InsufficientBalanceError: InsufficientBalanceError,\n aggregate: aggregate,\n clearReadCacheForAuthChange: clearReadCacheForAuthChange,\n count: count,\n docId: docId,\n get: get,\n getFiles: getFiles,\n getMany: getMany,\n queryAggregate: queryAggregate,\n runExpression: runExpression,\n runExpressionMany: runExpressionMany,\n runQuery: runQuery,\n runQueryMany: runQueryMany,\n search: search,\n set: set,\n setFile: setFile,\n setMany: setMany,\n signAndSubmitTransaction: signAndSubmitTransaction,\n signMessage: signMessage,\n signTransaction: signTransaction,\n syncItems: syncItems\n});\n\n/**\n * WebSocket v2 Subscription Manager\n *\n * This module implements multiplexed subscriptions over a single WebSocket connection.\n * It maintains the same external API as v1 but uses the new v2 protocol internally.\n */\n// ============ Global State ============\n// One connection per routing target (appId, or appId#room#<collection>/<roomId>)\nconst connections = new Map();\nconst responseCache = new Map();\nconst CACHE_TTL = 5 * 60 * 1000; // 5 minutes\nconst TOKEN_REFRESH_BUFFER = 10 * 60 * 1000; // Refresh token 10 minutes before expiry\nconst TOKEN_CHECK_INTERVAL = 5 * 60 * 1000; // Check token freshness every 5 minutes\n// ============ WebSocket Config ============\nconst BASE_MIN_RECONNECT_DELAY_MS = 1000;\nconst MIN_RECONNECT_DELAY_JITTER_MS = 1000;\nconst MAX_RECONNECT_DELAY_MS = 300000;\nconst RECONNECT_DELAY_GROW_FACTOR = 1.8;\nconst MIN_BROWSER_RECONNECT_INTERVAL_MS = 5000;\nconst MAX_AUTH_REFRESH_RETRIES = 5;\nconst WS_CONFIG = {\n // Keep retrying indefinitely so long outages recover without page refresh.\n maxRetries: Infinity,\n // Conservative starting delay with jitter spreads reconnects across clients.\n minReconnectionDelay: BASE_MIN_RECONNECT_DELAY_MS + Math.floor(Math.random() * MIN_RECONNECT_DELAY_JITTER_MS),\n // Stretch backoff to 5 minutes during prolonged outages to protect backend pools.\n maxReconnectionDelay: MAX_RECONNECT_DELAY_MS,\n // Moderate growth to avoid rapid retry bursts while still converging to max delay.\n reconnectionDelayGrowFactor: RECONNECT_DELAY_GROW_FACTOR,\n // Give handshakes more time before considering the attempt failed.\n connectionTimeout: 10000,\n};\nconst WS_V2_PATH = '/ws/v2';\nlet browserReconnectHooksAttached = false;\nlet lastBrowserTriggeredReconnectAt = 0;\nlet reconnectInProgress = null;\n// ============ Helper Functions ============\nfunction generateSubscriptionId() {\n return `sub_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n}\nfunction hashForKey(value) {\n let h = 5381;\n for (let i = 0; i < value.length; i++) {\n h = ((h << 5) + h + value.charCodeAt(i)) & 0x7fffffff;\n }\n return h.toString(36);\n}\n/**\n * SECURITY (H1): Response-cache keys must be scoped to the caller's identity, not\n * just the path/filter/shape. The `identity` prefix (`<appId>:<principal>`) keeps\n * a private subscription snapshot cached for one user from being delivered to a\n * different user who subscribes with the same options (shared process / SSR worker\n * / browser login-switch; this cache has a 5-minute TTL). When omitted (legacy\n * read-only helpers) we fall back to an `anon` scope.\n */\nfunction getCacheKey(path, prompt, shape, limit, cursor, filter, identity) {\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const shapeKey = shape && Object.keys(shape).length > 0 ? JSON.stringify(shape) : '';\n const limitKey = limit !== undefined ? `:l${limit}` : '';\n const cursorKey = cursor ? `:c${hashForKey(cursor)}` : '';\n const filterKey = filter && Object.keys(filter).length > 0 ? `:f${hashForKey(JSON.stringify(filter))}` : '';\n const identityKey = identity || 'anon';\n return `${identityKey}|${normalizedPath}:${prompt || 'default'}:${shapeKey}${limitKey}${cursorKey}${filterKey}`;\n}\n/**\n * Derive a stable identity string for the principal a subscription authenticates\n * as: `<appId>:<principalFingerprint>`. Mirrors the operations.ts logic so HTTP\n * and WS caches scope reads to the same identity.\n */\nfunction principalFromIdToken(idToken) {\n if (!idToken)\n return 'anon';\n try {\n const parts = idToken.split('.');\n if (parts.length < 2)\n return `t${hashForKey(idToken)}`;\n const payload = JSON.parse(decodeBase64Url(parts[1]));\n const subject = \n // Universal identity (@user.id) first — the stable principal a request\n // presents (the account id for email/social logins, which carry no\n // walletAddress). Keeps the H1 response-cache scoping correct for them.\n payload['custom:userId'] ||\n payload['custom:walletAddress'] ||\n payload.walletAddress ||\n payload.sub ||\n payload.address;\n if (subject)\n return `s${hashForKey(String(subject))}`;\n return `t${hashForKey(idToken)}`;\n }\n catch (_a) {\n return `t${hashForKey(idToken)}`;\n }\n}\nasync function getSubscriptionIdentity(effectiveAppId, isServer, overrides) {\n // Per-subscription wallet override (server WalletClient.subscribe): key by the\n // wallet's own token, mirroring getReadPrincipalKey, so a wallet client never\n // consults — and never crashes on — the absent ambient env keypair, and its\n // cached snapshots are never crossed with another principal's.\n if (overrides === null || overrides === void 0 ? void 0 : overrides._walletAddress) {\n return `${effectiveAppId}:w${overrides._walletAddress}`;\n }\n if (overrides === null || overrides === void 0 ? void 0 : overrides._getAuthHeaders) {\n try {\n const bearer = bearerFromAuthHeaders(await overrides._getAuthHeaders());\n return `${effectiveAppId}:o${bearer ? principalFromIdToken(bearer) : 'anon'}`;\n }\n catch (_a) {\n // Couldn't resolve the override identity — use a unique key so we never\n // collide with another principal's cached entry.\n return `${effectiveAppId}:o${principalFromIdToken(null)}-${safeBtoa(String(connectionEpoch++))}`;\n }\n }\n const idToken = await getIdToken(isServer);\n return `${effectiveAppId}:${principalFromIdToken(idToken)}`;\n}\n/** Extract the bare bearer token from a `{ Authorization: 'Bearer <jwt>' }` map. */\nfunction bearerFromAuthHeaders(headers) {\n const auth = (headers === null || headers === void 0 ? void 0 : headers.Authorization) || (headers === null || headers === void 0 ? void 0 : headers.authorization) || '';\n return auth.startsWith('Bearer ') ? auth.slice('Bearer '.length) : auth;\n}\n// Monotonic counter for unique-ish fallback identity keys (no Date.now in some envs).\nlet connectionEpoch = 0;\nfunction isTokenExpired(token) {\n try {\n const payload = JSON.parse(decodeBase64Url(token.split('.')[1]));\n const expirationTime = payload.exp * 1000;\n const currentTime = Date.now();\n return currentTime > (expirationTime - 60000); // 60 second buffer\n }\n catch (error) {\n console.error('[WS v2] Error checking token expiration:', error);\n return true;\n }\n}\nfunction getTokenExpirationTime(token) {\n try {\n const payload = JSON.parse(decodeBase64Url(token.split('.')[1]));\n return payload.exp ? payload.exp * 1000 : null;\n }\n catch (_a) {\n return null;\n }\n}\nfunction scheduleTokenRefresh(connection, isServer) {\n // Clear any existing timer\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n // Periodic check: every TOKEN_CHECK_INTERVAL, check if the token needs refreshing.\n // This replaces the old single setTimeout approach which was unreliable for long\n // delays (browsers throttle/suspend timers in background tabs).\n connection.tokenRefreshTimer = setInterval(async () => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n try {\n const currentToken = await getIdToken(isServer);\n if (!currentToken)\n return; // Unauthenticated, nothing to refresh\n const expirationTime = getTokenExpirationTime(currentToken);\n if (!expirationTime)\n return;\n const timeUntilExpiry = expirationTime - Date.now();\n if (timeUntilExpiry <= TOKEN_REFRESH_BUFFER) {\n console.info('[WS v2] Token expiring soon, proactively refreshing');\n // Refresh the token and store it. Do NOT reconnect — the server only\n // verifies JWT at $connect time, so the existing connection continues\n // working. The fresh token is picked up by urlProvider the next time\n // a reconnect naturally happens (network drop, keepalive timeout, etc.).\n try {\n const currentRefreshToken = await getRefreshToken(isServer);\n if (!currentRefreshToken) {\n console.warn('[WS v2] No refresh token available for proactive refresh');\n return;\n }\n const refreshData = await refreshSession(currentRefreshToken, getSessionIssuer(isServer));\n if (refreshData && refreshData.idToken && refreshData.accessToken) {\n await updateIdTokenAndAccessToken(refreshData.idToken, refreshData.accessToken, isServer, refreshData.refreshToken);\n console.info('[WS v2] Token refreshed successfully, stored for next connection');\n }\n else {\n console.warn('[WS v2] Proactive token refresh returned incomplete data');\n }\n }\n catch (refreshError) {\n // If the refresh token itself is invalid (401/403), stop retrying —\n // the token won't magically become valid next interval, and continuing\n // to hammer /session/refresh causes 429 rate-limit storms.\n if (((_a = refreshError === null || refreshError === void 0 ? void 0 : refreshError.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = refreshError === null || refreshError === void 0 ? void 0 : refreshError.response) === null || _b === void 0 ? void 0 : _b.status) === 403) {\n console.warn('[WS v2] Refresh token rejected (401/403), stopping periodic refresh');\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n return;\n }\n // Log only the status — the raw axios error carries config.data\n // (the refresh token) and must never hit the console / log sinks.\n console.warn('[WS v2] Proactive token refresh failed, will retry next interval. status:', (_e = (_d = (_c = refreshError === null || refreshError === void 0 ? void 0 : refreshError.response) === null || _c === void 0 ? void 0 : _c.status) !== null && _d !== void 0 ? _d : refreshError === null || refreshError === void 0 ? void 0 : refreshError.code) !== null && _e !== void 0 ? _e : 'unknown');\n }\n }\n }\n catch (error) {\n console.error('[WS v2] Error in periodic token check. status:', (_h = (_g = (_f = error === null || error === void 0 ? void 0 : error.response) === null || _f === void 0 ? void 0 : _f.status) !== null && _g !== void 0 ? _g : error === null || error === void 0 ? void 0 : error.code) !== null && _h !== void 0 ? _h : 'unknown');\n }\n }, TOKEN_CHECK_INTERVAL);\n}\nasync function getFreshAuthToken(isServer) {\n var _a, _b, _c, _d, _e;\n const currentToken = await getIdToken(isServer);\n if (!currentToken) {\n return null;\n }\n if (!isTokenExpired(currentToken)) {\n return currentToken;\n }\n // Token is expired — attempt refresh\n try {\n const refreshToken = await getRefreshToken(isServer);\n if (!refreshToken) {\n console.warn('[WS v2] Token expired but no refresh token available');\n return null;\n }\n const refreshData = await refreshSession(refreshToken, getSessionIssuer(isServer));\n if (refreshData && refreshData.idToken && refreshData.accessToken) {\n await updateIdTokenAndAccessToken(refreshData.idToken, refreshData.accessToken, isServer, refreshData.refreshToken);\n return refreshData.idToken;\n }\n }\n catch (error) {\n // Log only the status — the raw axios error carries config.data (the refresh\n // token) and must never reach the console / log sinks.\n console.error('[WS v2] Error refreshing token. status:', (_c = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) !== null && _b !== void 0 ? _b : error === null || error === void 0 ? void 0 : error.code) !== null && _c !== void 0 ? _c : 'unknown');\n // If the refresh token is permanently invalid (401/403), clear the stale\n // session from storage so future attempts don't keep retrying with it.\n if (!isServer && (((_d = error === null || error === void 0 ? void 0 : error.response) === null || _d === void 0 ? void 0 : _d.status) === 401 || ((_e = error === null || error === void 0 ? void 0 : error.response) === null || _e === void 0 ? void 0 : _e.status) === 403)) {\n try {\n const { getActiveSessionManager } = await Promise.resolve().then(function () { return sessionManager; });\n getActiveSessionManager().clearSession();\n }\n catch (clearError) {\n console.warn('[WS v2] Failed to clear stale session:', clearError);\n }\n }\n }\n // Return null instead of the expired token to prevent infinite 401 reconnect storms.\n // The server accepts unauthenticated connections; auth-required subscriptions will\n // receive per-subscription errors via onError callbacks.\n console.warn('[WS v2] Token refresh failed, connecting without auth to prevent reconnect storm');\n return null;\n}\nfunction hasDisconnectedActiveConnections() {\n for (const connection of connections.values()) {\n if (!connection.ws) {\n continue;\n }\n // Only nudge reconnection when socket is fully closed.\n // If ReconnectingWebSocket is already in CONNECTING/backoff state, don't interfere.\n if (connection.ws.readyState === WS_READY_STATE_CLOSED) {\n return true;\n }\n }\n return false;\n}\nfunction maybeReconnectFromBrowserSignal() {\n const now = Date.now();\n if (now - lastBrowserTriggeredReconnectAt < MIN_BROWSER_RECONNECT_INTERVAL_MS) {\n return;\n }\n if (!hasDisconnectedActiveConnections()) {\n return;\n }\n lastBrowserTriggeredReconnectAt = now;\n reconnectWithNewAuthV2().catch((error) => {\n console.error('[WS v2] Browser-triggered reconnect failed:', error);\n });\n}\nfunction attachBrowserReconnectHooksOnce() {\n if (browserReconnectHooksAttached) {\n return;\n }\n if (typeof window === 'undefined') {\n return;\n }\n browserReconnectHooksAttached = true;\n window.addEventListener('online', () => {\n maybeReconnectFromBrowserSignal();\n });\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n maybeReconnectFromBrowserSignal();\n }\n });\n }\n}\n// ============ Connection Management ============\n/**\n * Derive the stable `<collection>/<roomId>` room key from a routePath hint.\n * Returns null when the hint isn't a room path (fewer than 2 segments).\n */\nfunction roomKeyFromRoutePath(routePath) {\n if (!routePath)\n return null;\n const segs = routePath.replace(/^\\/+/, '').split('/').filter(Boolean);\n if (segs.length < 2)\n return null;\n return `${segs[0]}/${segs[1]}`;\n}\nasync function getOrCreateConnection(appId, isServer, routePath, authTokenProvider, principalKey) {\n attachBrowserReconnectHooksOnce();\n // A per-room subscription gets its OWN connection routed to the room DO; all\n // other subscriptions share the app-level connection (project DO). The worker\n // derives the room from the `?path=` we attach below and is the final routing\n // authority — `routePath` is only a hint.\n const roomKey = roomKeyFromRoutePath(routePath);\n // A wallet-scoped subscription (server WalletClient) gets its OWN connection\n // keyed by the wallet identity, so its WS authenticates as that wallet and\n // never shares a connection (or token) with the ambient env identity.\n const base = roomKey ? `${appId}#room#${roomKey}` : appId;\n const connKey = principalKey ? `${base}#id#${principalKey}` : base;\n let connection = connections.get(connKey);\n if (connection && connection.ws) {\n return connection;\n }\n // Create new connection\n connection = {\n ws: null,\n subscriptions: new Map(),\n pendingSubscriptions: new Map(),\n pendingUnsubscriptions: new Map(),\n pendingRequests: new Map(),\n isConnecting: false,\n isConnected: false,\n appId,\n key: connKey,\n routePath: roomKey ? routePath : undefined,\n authTokenProvider,\n tokenRefreshTimer: null,\n consecutiveAuthFailures: 0,\n };\n connections.set(connKey, connection);\n // URL provider for reconnection with fresh tokens\n const urlProvider = async () => {\n const config = await getConfig();\n const wsUrl = new URL(config.wsApiUrl);\n // Always use v2 path\n wsUrl.pathname = WS_V2_PATH;\n // Set appId — prefer the explicit appId passed to getOrCreateConnection,\n // fall back to window global for legacy callers, then config default\n if (appId && appId !== config.appId) {\n wsUrl.searchParams.append('appId', appId);\n }\n else if (typeof window !== 'undefined' && window.CUSTOM_BOUNDED_APP_ID_HEADER) {\n wsUrl.searchParams.append('appId', window.CUSTOM_BOUNDED_APP_ID_HEADER);\n }\n else {\n wsUrl.searchParams.append('appId', config.appId);\n }\n // Per-room connection: carry the room path so the worker routes this WS\n // to the room DO (appId#room#roomId) where the live view fan-out lives.\n if (connection.routePath) {\n wsUrl.searchParams.append('path', connection.routePath);\n }\n // Add auth token if available. A wallet-scoped connection resolves its\n // token from the wallet's own session (self-refreshing); all others use\n // the ambient env/web session.\n const authToken = connection.authTokenProvider\n ? await connection.authTokenProvider().catch(() => null)\n : await getFreshAuthToken(isServer);\n if (authToken) {\n wsUrl.searchParams.append('authorization', authToken);\n // Successful token acquisition — reset failure counter\n connection.consecutiveAuthFailures = 0;\n }\n else {\n // Check if user WAS authenticated (had a token that expired).\n // If so, retry with exponential backoff before falling back to unauthenticated.\n const expiredToken = await getIdToken(isServer);\n if (expiredToken && isTokenExpired(expiredToken)) {\n connection.consecutiveAuthFailures++;\n if (connection.consecutiveAuthFailures <= MAX_AUTH_REFRESH_RETRIES) {\n console.warn(`[WS v2] Auth refresh failed (attempt ${connection.consecutiveAuthFailures}/${MAX_AUTH_REFRESH_RETRIES}), retrying with backoff`);\n throw new Error('Auth token refresh failed, retrying with backoff');\n }\n console.warn('[WS v2] Auth refresh retries exhausted, falling back to unauthenticated connection');\n }\n // No token at all (never authenticated) or retries exhausted — connect without auth\n }\n return wsUrl.toString();\n };\n // Create WebSocket connection\n connection.isConnecting = true;\n const ws = new ReconnectingWebSocket(urlProvider, [], Object.assign(Object.assign({}, WS_CONFIG), { debug: false }));\n connection.ws = ws;\n // Handle connection open\n ws.addEventListener('open', () => {\n connection.isConnecting = false;\n connection.isConnected = true;\n // NOTE: Do NOT reset consecutiveAuthFailures here. It is reset when a\n // fresh auth token is actually obtained (in urlProvider, line ~389) or on\n // an explicit auth change (reconnectWithNewAuthV2, line ~854). Resetting\n // on every 'open' event created an infinite loop: auth fails 5x → connect\n // without auth → open resets counter → disconnect → auth fails 5x again →\n // repeat forever, hammering /session/refresh and causing 429s.\n //\n // An elevated counter is safe for anonymous/guest sessions: when there's no\n // token at all (getIdToken returns null), the counter is never checked —\n // urlProvider skips straight to unauthenticated connection.\n // Schedule periodic token freshness checks\n scheduleTokenRefresh(connection, isServer);\n // Re-subscribe to all existing subscriptions after reconnect\n for (const sub of connection.subscriptions.values()) {\n sub.lastData = undefined;\n sendSubscribe(connection, sub);\n }\n });\n // Handle incoming messages\n ws.addEventListener('message', (event) => {\n try {\n const message = JSON.parse(event.data);\n handleServerMessage(connection, message);\n }\n catch (error) {\n console.error('[WS v2] Error parsing message:', error);\n }\n });\n // Handle errors\n ws.addEventListener('error', (event) => {\n console.error('[WS v2] WebSocket error:', event);\n for (const [, pending] of connection.pendingSubscriptions) {\n pending.reject(new Error('WebSocket error'));\n }\n connection.pendingSubscriptions.clear();\n });\n // Handle close\n ws.addEventListener('close', () => {\n connection.isConnected = false;\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n // Reject all pending WS CRUD requests on disconnect (fail fast)\n for (const [id, pending] of connection.pendingRequests) {\n clearTimeout(pending.timer);\n pending.reject(new Error('WebSocket disconnected'));\n }\n connection.pendingRequests.clear();\n });\n return connection;\n}\nfunction handleServerMessage(connection, message) {\n var _a, _b;\n switch (message.type) {\n case 'subscribed': {\n const subscription = connection.subscriptions.get(message.subscriptionId);\n if (subscription) {\n // A data update can race ahead of subscribed during reconnect.\n // If we already received data for this subscription, treat subscribed\n // as an ack only and avoid regressing to an older snapshot.\n if (subscription.lastData === undefined) {\n const cacheKey = getCacheKey(subscription.path, subscription.prompt, subscription.shape, subscription.limit, subscription.cursor, subscription.filter, subscription.identity);\n responseCache.set(cacheKey, { data: message.data, timestamp: Date.now() });\n subscription.lastData = message.data;\n notifyCallbacks(subscription, message.data);\n }\n }\n // Resolve pending subscription promise\n const pending = connection.pendingSubscriptions.get(message.subscriptionId);\n if (pending) {\n pending.resolve();\n connection.pendingSubscriptions.delete(message.subscriptionId);\n }\n break;\n }\n case 'unsubscribed': {\n // Resolve pending unsubscription promise\n const pending = connection.pendingUnsubscriptions.get(message.subscriptionId);\n if (pending) {\n pending.resolve();\n connection.pendingUnsubscriptions.delete(message.subscriptionId);\n }\n break;\n }\n case 'data': {\n const subscription = connection.subscriptions.get(message.subscriptionId);\n if (subscription) {\n // Update cache\n const cacheKey = getCacheKey(subscription.path, subscription.prompt, subscription.shape, subscription.limit, subscription.cursor, subscription.filter, subscription.identity);\n responseCache.set(cacheKey, { data: message.data, timestamp: Date.now() });\n // Store last data\n subscription.lastData = message.data;\n // Notify callbacks\n notifyCallbacks(subscription, message.data);\n }\n break;\n }\n case 'response': {\n const pendingReq = connection.pendingRequests.get(message.requestId);\n if (pendingReq) {\n connection.pendingRequests.delete(message.requestId);\n clearTimeout(pendingReq.timer);\n if (message.status >= 400) {\n pendingReq.reject(new Error(`Request failed with status ${message.status}`));\n }\n else {\n pendingReq.resolve(message.data);\n }\n }\n break;\n }\n case 'setResponse': {\n const pendingSet = connection.pendingRequests.get(message.requestId);\n if (pendingSet) {\n connection.pendingRequests.delete(message.requestId);\n clearTimeout(pendingSet.timer);\n if (message.statusCode >= 400) {\n pendingSet.reject(new Error(((_a = message.body) === null || _a === void 0 ? void 0 : _a.message) || `Set failed with status ${message.statusCode}`));\n }\n else {\n pendingSet.resolve(message.body);\n }\n }\n break;\n }\n case 'error': {\n console.error('[WS v2] Server error:', message.code, message.message);\n // Build an Error that ALSO carries the stable `code` as a structured\n // field (not just string-interpolated into the message) so callers can\n // branch on it — e.g. `catch (e) { if (e.code === 'invariant_violation') }`\n // — symmetric with the HTTP path in utils/api.ts. requestId (CRUD) /\n // subscriptionId are attached for correlation with the decision log.\n const buildWsError = () => {\n const err = new Error(`${message.code}: ${message.message}`);\n err.code = message.code;\n if (message.requestId)\n err.requestId = message.requestId;\n if (message.subscriptionId)\n err.subscriptionId = message.subscriptionId;\n return err;\n };\n // Handle CRUD request errors (requestId present)\n if (message.requestId) {\n const pendingReq = connection.pendingRequests.get(message.requestId);\n if (pendingReq) {\n connection.pendingRequests.delete(message.requestId);\n clearTimeout(pendingReq.timer);\n pendingReq.reject(buildWsError());\n }\n }\n if (message.subscriptionId) {\n // Reject pending subscription if this is a subscription error\n const pending = connection.pendingSubscriptions.get(message.subscriptionId);\n if (pending) {\n pending.reject(buildWsError());\n connection.pendingSubscriptions.delete(message.subscriptionId);\n }\n // Notify error callbacks for this subscription\n const subscription = connection.subscriptions.get(message.subscriptionId);\n if (subscription) {\n for (const callback of subscription.callbacks) {\n (_b = callback.onError) === null || _b === void 0 ? void 0 : _b.call(callback, buildWsError());\n }\n }\n }\n break;\n }\n }\n}\n/**\n * Additively attach the bare `id` (leaf doc key) to a subscription row (Bug 1).\n * Rows carry `_id`/`pathId` = the full document path; this leaves those as-is and\n * adds `id` = the last path segment so `row.id` is the doc key apps expect. No-ops\n * for non-objects and rows that already define `id`.\n */\nfunction withSubscriptionId(row) {\n var _a, _b, _c;\n if (!row || typeof row !== 'object' || Array.isArray(row))\n return row;\n if ('id' in row)\n return row;\n const source = (_c = (_b = (_a = row._id) !== null && _a !== void 0 ? _a : row.pathId) !== null && _b !== void 0 ? _b : row.relativePath) !== null && _c !== void 0 ? _c : row.absolutePath;\n if (typeof source !== 'string' || source.length === 0)\n return row;\n const leaf = docId(source);\n if (!leaf)\n return row;\n return Object.assign(Object.assign({}, row), { id: leaf });\n}\n/**\n * The `onData` payload follows the path: a collection delivers a bare array of\n * rows, a single-doc path delivers the document (or null). Attach the bare `id`\n * to each returned row in either case, additive (Bug 1).\n */\nfunction addIdsToSubscriptionData(data) {\n if (Array.isArray(data))\n return data.map(withSubscriptionId);\n return withSubscriptionId(data);\n}\nfunction notifyCallbacks(subscription, data) {\n var _a;\n // Attach the bare `id` (leaf doc key) to every delivered row (Bug 1).\n const decorated = addIdsToSubscriptionData(data);\n // Snapshot the callbacks array so that unsubscriptions during\n // notification don't cause callbacks to be skipped.\n const callbacks = subscription.callbacks.slice();\n for (const callback of callbacks) {\n try {\n (_a = callback.onData) === null || _a === void 0 ? void 0 : _a.call(callback, decorated);\n }\n catch (error) {\n console.error('[WS v2] Error in subscription callback:', error);\n }\n }\n}\n// WebSocket readyState constants\nconst WS_READY_STATE_OPEN = 1;\nconst WS_READY_STATE_CLOSED = 3;\nfunction sendSubscribe(connection, subscription) {\n if (!connection.ws || connection.ws.readyState !== WS_READY_STATE_OPEN) {\n return;\n }\n const message = {\n type: 'subscribe',\n subscriptionId: subscription.subscriptionId,\n path: subscription.path,\n filter: subscription.filter,\n sort: subscription.sort,\n prompt: subscription.prompt ? safeBtoa(subscription.prompt) : undefined,\n includeSubPaths: subscription.includeSubPaths,\n shape: subscription.shape && Object.keys(subscription.shape).length > 0\n ? subscription.shape\n : undefined,\n limit: subscription.limit,\n cursor: subscription.cursor,\n };\n try {\n connection.ws.send(JSON.stringify(message));\n }\n catch (error) {\n console.error('[WS v2] Error sending subscribe message:', error);\n }\n}\nfunction sendUnsubscribe(connection, subscriptionId) {\n if (!connection.ws || connection.ws.readyState !== WS_READY_STATE_OPEN) {\n return;\n }\n const message = {\n type: 'unsubscribe',\n subscriptionId,\n };\n try {\n connection.ws.send(JSON.stringify(message));\n }\n catch (error) {\n console.error('[WS v2] Error sending unsubscribe message:', error);\n }\n}\n// ============ Public API ============\n/**\n * Subscribe to data at a path using WebSocket v2.\n * Returns an unsubscribe function.\n */\n/**\n * @param roomRoutePath INTERNAL ONLY. A `<sessionCollection>/<roomId>` room path\n * used by `live.subscribeView` to route this subscription's connection to the\n * per-room DO (where live view fan-out lives). It is NOT part of the public\n * subscribe API — app code never passes routing; the worker remains the\n * authority on the destination DO (it derives the room from the `?path=` we\n * attach). This argument only tells the client which connection to multiplex\n * the subscription onto, since a WS connection routes to a single DO.\n */\nasync function subscribeV2(path, subscriptionOptions, roomRoutePath) {\n var _a, _b;\n const config = await getConfig();\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n // Use explicit appId override if provided, otherwise fall back to config\n const effectiveAppId = subscriptionOptions.appId || config.appId;\n // H1: scope the response cache to the caller's identity so a private snapshot\n // cached for one principal is never delivered to a different principal who\n // subscribes with identical options (shared process / SSR / login-switch).\n // Per-subscription wallet override (server WalletClient.subscribe). When set,\n // the connection authenticates + caches under the wallet's identity instead of\n // the ambient env keypair — so a `createWalletClient` caller can subscribe\n // without setting BOUNDED_PRIVATE_KEY (and never crashes resolving it).\n const overrides = subscriptionOptions._overrides;\n const authTokenProvider = (overrides === null || overrides === void 0 ? void 0 : overrides._getAuthHeaders)\n ? async () => bearerFromAuthHeaders(await overrides._getAuthHeaders()) || null\n : undefined;\n const principalKey = (overrides === null || overrides === void 0 ? void 0 : overrides._walletAddress)\n ? `w${overrides._walletAddress}`\n : (authTokenProvider ? `o${principalFromIdToken(await authTokenProvider())}` : undefined);\n const identity = await getSubscriptionIdentity(effectiveAppId, config.isServer, overrides);\n const cacheKey = getCacheKey(normalizedPath, subscriptionOptions.prompt, subscriptionOptions.shape, subscriptionOptions.limit, subscriptionOptions.cursor, subscriptionOptions.filter, identity);\n // Deliver cached data immediately if available\n const cachedEntry = responseCache.get(cacheKey);\n if (cachedEntry && Date.now() - cachedEntry.timestamp < CACHE_TTL && subscriptionOptions.onData) {\n setTimeout(() => {\n var _a;\n (_a = subscriptionOptions.onData) === null || _a === void 0 ? void 0 : _a.call(subscriptionOptions, addIdsToSubscriptionData(cachedEntry.data));\n }, 0);\n }\n // Get or create connection for this routing target (room-scoped when a\n // room route is supplied by the live helper, else the app-level connection).\n const connection = await getOrCreateConnection(effectiveAppId, config.isServer, roomRoutePath, authTokenProvider, principalKey);\n // Check if we already have a subscription for this path+prompt+shape+limit+cursor+filter+sort\n const shapeKey = subscriptionOptions.shape ? JSON.stringify(subscriptionOptions.shape) : '';\n const filterKey = subscriptionOptions.filter ? JSON.stringify(subscriptionOptions.filter) : '';\n const sortKey = subscriptionOptions.sort ? JSON.stringify(subscriptionOptions.sort) : '';\n let existingSubscription;\n for (const sub of connection.subscriptions.values()) {\n const subShapeKey = sub.shape ? JSON.stringify(sub.shape) : '';\n const subFilterKey = sub.filter ? JSON.stringify(sub.filter) : '';\n const subSortKey = sub.sort ? JSON.stringify(sub.sort) : '';\n // H1: also require the same principal identity — a different logged-in\n // user must not piggy-back on (and inherit lastData from) another user's\n // existing subscription, even with identical path/prompt/shape/filter/sort.\n if (sub.identity === identity && sub.path === normalizedPath && sub.prompt === subscriptionOptions.prompt && subShapeKey === shapeKey && subFilterKey === filterKey && subSortKey === sortKey && sub.includeSubPaths === ((_a = subscriptionOptions.includeSubPaths) !== null && _a !== void 0 ? _a : false) && sub.limit === subscriptionOptions.limit && sub.cursor === subscriptionOptions.cursor) {\n existingSubscription = sub;\n break;\n }\n }\n if (existingSubscription) {\n // Add callback to existing subscription\n existingSubscription.callbacks.push(subscriptionOptions);\n // Deliver last known data immediately\n if (existingSubscription.lastData !== undefined && subscriptionOptions.onData) {\n setTimeout(() => {\n var _a;\n (_a = subscriptionOptions.onData) === null || _a === void 0 ? void 0 : _a.call(subscriptionOptions, addIdsToSubscriptionData(existingSubscription.lastData));\n }, 0);\n }\n return async () => {\n await removeCallbackFromSubscription(connection, existingSubscription.subscriptionId, subscriptionOptions);\n };\n }\n // Create new subscription\n const subscriptionId = generateSubscriptionId();\n const subscription = {\n subscriptionId,\n path: normalizedPath,\n filter: subscriptionOptions.filter,\n sort: subscriptionOptions.sort,\n prompt: subscriptionOptions.prompt,\n shape: subscriptionOptions.shape,\n limit: subscriptionOptions.limit,\n cursor: subscriptionOptions.cursor,\n includeSubPaths: (_b = subscriptionOptions.includeSubPaths) !== null && _b !== void 0 ? _b : false,\n callbacks: [subscriptionOptions],\n lastData: undefined,\n identity,\n };\n connection.subscriptions.set(subscriptionId, subscription);\n // Send subscribe message if connected\n if (connection.isConnected) {\n // Create a promise to wait for subscription confirmation\n const subscriptionPromise = new Promise((resolve, reject) => {\n connection.pendingSubscriptions.set(subscriptionId, { resolve, reject });\n // Timeout after 10 seconds\n setTimeout(() => {\n if (connection.pendingSubscriptions.has(subscriptionId)) {\n connection.pendingSubscriptions.delete(subscriptionId);\n reject(new Error('Subscription timeout'));\n }\n }, 10000);\n });\n sendSubscribe(connection, subscription);\n try {\n await subscriptionPromise;\n }\n catch (error) {\n console.warn('[WS v2] Subscription confirmation failed, keeping for reconnect recovery:', error);\n }\n }\n // Return unsubscribe function\n return async () => {\n await removeCallbackFromSubscription(connection, subscriptionId, subscriptionOptions);\n };\n}\nasync function removeCallbackFromSubscription(connection, subscriptionId, callback) {\n const subscription = connection.subscriptions.get(subscriptionId);\n if (!subscription) {\n return;\n }\n // Remove this callback\n subscription.callbacks = subscription.callbacks.filter(cb => cb !== callback);\n // If there are still callbacks, don't unsubscribe\n if (subscription.callbacks.length > 0) {\n return;\n }\n // No more callbacks, unsubscribe from server\n connection.subscriptions.delete(subscriptionId);\n if (connection.isConnected) {\n // Create a promise to wait for unsubscription confirmation\n const unsubscribePromise = new Promise((resolve, reject) => {\n connection.pendingUnsubscriptions.set(subscriptionId, { resolve, reject });\n // Timeout after 5 seconds\n setTimeout(() => {\n if (connection.pendingUnsubscriptions.has(subscriptionId)) {\n connection.pendingUnsubscriptions.delete(subscriptionId);\n resolve(); // Don't throw on unsubscribe timeout\n }\n }, 5000);\n });\n sendUnsubscribe(connection, subscriptionId);\n await unsubscribePromise;\n }\n // If no more subscriptions, close connection\n if (connection.subscriptions.size === 0 && connection.ws) {\n // Clear token refresh timer\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n connection.ws.close();\n connection.ws = null;\n connections.delete(connection.key);\n }\n}\n/**\n * Close all v2 subscriptions.\n */\nasync function closeAllSubscriptionsV2() {\n const closePromises = [];\n for (const [appId, connection] of connections) {\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n if (connection.ws) {\n const ws = connection.ws;\n connection.ws = null;\n connection.isConnected = false;\n closePromises.push(new Promise((resolve) => {\n ws.addEventListener('close', () => {\n resolve();\n });\n ws.close();\n }));\n }\n connections.delete(appId);\n }\n await Promise.all(closePromises);\n}\n/**\n * Clear the v2 cache.\n */\nfunction clearCacheV2(path) {\n if (path) {\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n // Clear all cache entries for this path across ALL identities. Keys are\n // now `<identity>|<path>:...` (H1 principal-scoping), so match the path\n // portion AFTER the identity prefix — otherwise this is a silent no-op.\n for (const key of responseCache.keys()) {\n const sep = key.indexOf('|');\n const pathPart = sep >= 0 ? key.slice(sep + 1) : key;\n if (pathPart.startsWith(normalizedPath)) {\n responseCache.delete(key);\n }\n }\n }\n else {\n responseCache.clear();\n }\n}\n/**\n * Get cached data for a path (v2).\n */\nfunction getCachedDataV2(path, prompt) {\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n // H1: response caches are identity-scoped (`<identity>|<path>:...`). Resolve\n // the caller's identity from an active subscription for this path (sync) so\n // an authenticated user gets THEIR cached snapshot rather than the 'anon'\n // bucket (which would wrongly return null). No matching sub → null (safe).\n let identity;\n outer: for (const connection of connections.values()) {\n for (const sub of connection.subscriptions.values()) {\n if (sub.path === normalizedPath && sub.prompt === prompt) {\n identity = sub.identity;\n break outer;\n }\n }\n }\n const cacheKey = getCacheKey(path, prompt, undefined, undefined, undefined, undefined, identity);\n const cachedEntry = responseCache.get(cacheKey);\n if (cachedEntry && Date.now() - cachedEntry.timestamp < CACHE_TTL) {\n return cachedEntry.data;\n }\n return null;\n}\n/**\n * Reconnect all v2 WebSocket connections with fresh authentication.\n * Call this when the user's auth state changes (login/logout).\n *\n * This will:\n * 1. Close existing connections\n * 2. Re-establish with new auth token\n * 3. Re-subscribe to all active paths\n *\n * Note: Existing subscriptions will receive new initial data after reconnection.\n */\nasync function reconnectWithNewAuthV2() {\n if (reconnectInProgress) {\n return reconnectInProgress;\n }\n reconnectInProgress = doReconnectWithNewAuth();\n try {\n await reconnectInProgress;\n }\n finally {\n reconnectInProgress = null;\n }\n}\nasync function doReconnectWithNewAuth() {\n // SECURITY (H1): the logged-in identity is changing (login / logout / switch).\n // Wipe ALL principal-scoped read caches so the new identity can never observe\n // data cached for the previous one. Clear both the WS response cache and the\n // HTTP get() cache (the latter lives in operations.ts — imported dynamically\n // to avoid a static import cycle).\n responseCache.clear();\n // Drop in-memory per-subscription snapshots so they are not redelivered as the\n // previous identity's data after the socket reconnects under new auth.\n for (const connection of connections.values()) {\n for (const sub of connection.subscriptions.values()) {\n sub.lastData = undefined;\n }\n }\n try {\n const { clearReadCacheForAuthChange } = await Promise.resolve().then(function () { return operations; });\n clearReadCacheForAuthChange();\n }\n catch (error) {\n console.warn('[WS v2] Failed to clear HTTP read cache on auth change:', error);\n }\n for (const [appId, connection] of connections) {\n if (!connection.ws) {\n continue;\n }\n for (const [, pending] of connection.pendingSubscriptions) {\n pending.reject(new Error('Connection reconnecting due to auth change'));\n }\n connection.pendingSubscriptions.clear();\n for (const [, pending] of connection.pendingUnsubscriptions) {\n pending.resolve();\n }\n connection.pendingUnsubscriptions.clear();\n // Reset auth failure counter — this is a proactive reconnect (login, token refresh)\n connection.consecutiveAuthFailures = 0;\n // Close the WebSocket (this triggers reconnection in ReconnectingWebSocket)\n // We use reconnect() which will close and re-open with fresh URL (including new token)\n try {\n connection.ws.reconnect();\n }\n catch (error) {\n console.error('[WS v2] Error reconnecting:', error);\n }\n }\n}\n// ============ CRUD over WebSocket ============\nconst WS_REQUEST_TIMEOUT_MS = 30000;\nfunction generateRequestId() {\n return `req_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n}\n/**\n * Returns true if there is an active v2 WebSocket connection open.\n */\nfunction hasActiveConnection() {\n for (const connection of connections.values()) {\n if (connection.ws && connection.isConnected) {\n return true;\n }\n }\n return false;\n}\nasync function sendRequest(msgBuilder) {\n const config = await getConfig();\n const appId = config.appId;\n const connection = await getOrCreateConnection(appId, config.isServer);\n // Wait for the connection to be open (getOrCreateConnection may return\n // while still connecting).\n if (!connection.isConnected && connection.ws) {\n await new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n var _a;\n (_a = connection.ws) === null || _a === void 0 ? void 0 : _a.removeEventListener('open', onOpen);\n reject(new Error('WebSocket connection timeout'));\n }, 10000);\n const onOpen = () => { clearTimeout(timeout); resolve(); };\n if (connection.isConnected) {\n clearTimeout(timeout);\n resolve();\n return;\n }\n connection.ws.addEventListener('open', onOpen);\n });\n }\n if (!connection.ws || !connection.isConnected) {\n throw new Error('WebSocket connection not available');\n }\n const requestId = generateRequestId();\n const message = msgBuilder(requestId);\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n connection.pendingRequests.delete(requestId);\n reject(new Error(`WebSocket request timed out after ${WS_REQUEST_TIMEOUT_MS}ms`));\n }, WS_REQUEST_TIMEOUT_MS);\n connection.pendingRequests.set(requestId, { resolve, reject, timer });\n try {\n connection.ws.send(JSON.stringify(message));\n }\n catch (error) {\n connection.pendingRequests.delete(requestId);\n clearTimeout(timer);\n reject(error);\n }\n });\n}\nasync function wsGet(path) {\n return sendRequest((requestId) => ({\n type: 'get',\n requestId,\n path,\n }));\n}\n/**\n * Send a live-room intent over the EXISTING per-room socket (fire-and-forget).\n * Returns true if it was sent over an open connection, false if there is no\n * live socket for this room yet (caller falls back to HTTP). The worker is the\n * room authority — the connection is already routed to the room DO, so the\n * client never names a destination.\n */\nfunction wsIntent(appId, roomRoutePath, intent) {\n const roomKey = roomKeyFromRoutePath(roomRoutePath);\n const connKey = roomKey ? `${appId}#room#${roomKey}` : appId;\n const connection = connections.get(connKey);\n if (!connection || !connection.ws || connection.ws.readyState !== WS_READY_STATE_OPEN) {\n return false;\n }\n try {\n connection.ws.send(JSON.stringify({ type: 'intent', intent }));\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n/**\n * Send a live-room intent over the EXISTING per-room socket and AWAIT the server\n * ack — so a policy/auth denial (401/403/404/503) REJECTS instead of being\n * silently dropped (the fire-and-forget `wsIntent` discards request-less error\n * frames). Use for semantically important intents (join/ready/leave). Returns a\n * Promise that resolves on ack / rejects on error, or `undefined` if no live\n * socket exists yet (caller falls back to HTTP, which also surfaces errors).\n */\nfunction wsIntentReliable(appId, roomRoutePath, intent) {\n const roomKey = roomKeyFromRoutePath(roomRoutePath);\n const connKey = roomKey ? `${appId}#room#${roomKey}` : appId;\n const connection = connections.get(connKey);\n if (!connection || !connection.ws || connection.ws.readyState !== WS_READY_STATE_OPEN) {\n return undefined;\n }\n const requestId = generateRequestId();\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n connection.pendingRequests.delete(requestId);\n reject(new Error(`Live intent ack timed out after ${WS_REQUEST_TIMEOUT_MS}ms`));\n }, WS_REQUEST_TIMEOUT_MS);\n connection.pendingRequests.set(requestId, {\n resolve: (data) => resolve((data !== null && data !== void 0 ? data : { ok: true })),\n reject,\n timer,\n });\n try {\n connection.ws.send(JSON.stringify({ type: 'intent', requestId, intent }));\n }\n catch (e) {\n connection.pendingRequests.delete(requestId);\n clearTimeout(timer);\n reject(e);\n }\n });\n}\nasync function wsSet(documents) {\n return sendRequest((requestId) => ({\n type: 'set',\n requestId,\n documents,\n }));\n}\nasync function wsQuery(path, opts) {\n return sendRequest((requestId) => (Object.assign(Object.assign(Object.assign(Object.assign({ type: 'query', requestId,\n path }, ((opts === null || opts === void 0 ? void 0 : opts.filter) ? { filter: opts.filter } : {})), ((opts === null || opts === void 0 ? void 0 : opts.sort) ? { sort: opts.sort } : {})), ((opts === null || opts === void 0 ? void 0 : opts.limit) !== undefined ? { limit: opts.limit } : {})), ((opts === null || opts === void 0 ? void 0 : opts.includeSubPaths) ? { includeSubPaths: opts.includeSubPaths } : {}))));\n}\nasync function wsDelete(path) {\n return sendRequest((requestId) => ({\n type: 'delete',\n requestId,\n path,\n }));\n}\nasync function wsGetMany(paths) {\n return sendRequest((requestId) => ({\n type: 'getMany',\n requestId,\n paths,\n }));\n}\n\nvar subscriptionV2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n clearCacheV2: clearCacheV2,\n closeAllSubscriptionsV2: closeAllSubscriptionsV2,\n getCachedDataV2: getCachedDataV2,\n hasActiveConnection: hasActiveConnection,\n reconnectWithNewAuthV2: reconnectWithNewAuthV2,\n subscribeV2: subscribeV2,\n wsDelete: wsDelete,\n wsGet: wsGet,\n wsGetMany: wsGetMany,\n wsIntent: wsIntent,\n wsIntentReliable: wsIntentReliable,\n wsQuery: wsQuery,\n wsSet: wsSet\n});\n\n/**\n * WebSocket Subscription Module\n *\n * This module provides real-time data subscriptions using WebSocket v2 protocol\n * with multiplexed connections (one connection per client, multiple subscriptions).\n *\n * The external API remains unchanged - just use subscribe(path, options) as before.\n */\n/**\n * Subscribe to real-time updates for a path.\n *\n * @param path - The path to subscribe to (e.g., 'users/123' or 'posts')\n * @param subscriptionOptions - Options including onData and onError callbacks\n * @returns A function to unsubscribe\n *\n * @example\n * ```typescript\n * const unsubscribe = await subscribe('users/123', {\n * onData: (data) => console.log('User updated:', data),\n * onError: (error) => console.error('Subscription error:', error),\n * });\n *\n * // Later, to unsubscribe:\n * await unsubscribe();\n * ```\n */\nasync function subscribe(path, subscriptionOptions) {\n // Forgive the most natural mistake: `subscribe(path, (data) => ...)`. Without\n // this, a bare callback is taken as the options object, `.onData` is undefined,\n // and the subscription silently never fires (no error) — it just looks broken.\n // Coerce a function into `{ onData }` so the natural form works.\n const opts = typeof subscriptionOptions === 'function'\n ? { onData: subscriptionOptions }\n : subscriptionOptions;\n return subscribeV2(path, opts);\n}\n/**\n * Close all active subscriptions.\n * Call this when cleaning up (e.g., on logout or component unmount).\n */\nasync function closeAllSubscriptions() {\n return closeAllSubscriptionsV2();\n}\n/**\n * Clear the subscription cache.\n *\n * @param path - Optional path to clear. If not provided, clears all cached data.\n */\nfunction clearCache(path) {\n clearCacheV2(path);\n}\n/**\n * Get cached data for a path without making a network request.\n *\n * @param path - The path to get cached data for\n * @param prompt - Optional prompt that was used for the subscription\n * @returns The cached data, or null if not cached or expired\n */\nfunction getCachedData(path, prompt) {\n return getCachedDataV2(path, prompt);\n}\n/**\n * Reconnect all WebSocket connections with fresh authentication.\n * Call this when the user's auth state changes (login/logout).\n *\n * This will:\n * 1. Close existing connections\n * 2. Re-establish with new auth token\n * 3. Re-subscribe to all active paths\n *\n * Existing subscriptions will receive new initial data after reconnection.\n */\nasync function reconnectWithNewAuth() {\n return reconnectWithNewAuthV2();\n}\n\n// ---------------------------------------------------------------------------\n// field-values.ts -- Server-resolved field-value operations for set()/setMany().\n//\n// A field in a write payload may be a plain value OR an \"operation object\" that\n// the server resolves atomically when the write commits:\n//\n// set(\"counters/likes\", { n: increment(1) }) // atomic server-side +1\n// set(\"posts/p1\", { createdAt: serverTimestamp() }) // server unix-seconds clock\n//\n// The Durable Object serializes writes per room, so concurrent increments never\n// lose updates (verified: 20 concurrent +1 -> exactly 20). These helpers just\n// construct the operation objects the worker's resolveOperationFields understands\n// (and which the optimistic store mirrors locally), so prefer them over writing\n// `{ operation: \"increment\", value: 1 }` by hand.\n// ---------------------------------------------------------------------------\n/**\n * Atomically add `value` to a numeric field when the write commits, server-side.\n * Use a negative `value` to decrement. The field starts from 0 if the document\n * (or field) does not exist yet. Concurrent increments are race-free.\n *\n * await set(\"counters/likes\", { n: increment(1) });\n * await set(\"scores/p1\", { points: increment(-5) });\n */\nfunction increment(value) {\n return { operation: 'increment', value };\n}\n/**\n * Stamp a field with the server's clock (Unix seconds) when the write commits —\n * the trustworthy \"when did this happen\" you can't get from a client clock.\n *\n * await set(\"posts/p1\", { createdAt: serverTimestamp() });\n */\nfunction serverTimestamp() {\n return { operation: 'time', value: 'now' };\n}\n\n/**\n * Time units in Bounded — read this once and never get a 1000× timestamp bug.\n *\n * **Bounded's policy/proof layer is Unix SECONDS.** `@time.now` in a rule,\n * `rollingSum` `windowSeconds`, `scheduledAt`, and any timestamp *field your\n * policy compares against `@time.now`* are all **seconds**. (This is also what\n * the chain uses — Solana's on-chain clock is `unix_timestamp` in seconds — so a\n * single seconds unit works for both onchain and offchain rules.)\n *\n * **JavaScript is MILLISECONDS.** `Date.now()`, `new Date().getTime()`, and the\n * auto-stamped system fields `_createdAt` / `_updatedAt` are all **ms**.\n *\n * Comparing across the two (e.g. `@time.now - myField` where `myField` was set\n * from `Date.now()`) is 1000× off, so a freshness / TTL check silently treats\n * every row as ancient (or far-future) and drops it — which reads as \"realtime\n * isn't delivering\" when the data is actually fine.\n *\n * **The rules:**\n * - To **write** a timestamp a policy will read, prefer **`serverTimestamp()`**\n * (from this package) — the *server* stamps it in seconds, so it matches\n * `@time.now` AND can't be forged by the client (use it for TTLs, rate windows,\n * anti-cheat). Use `now()` only when you need the value in client code before\n * the write.\n * - To **compare** timestamps in client/render code, use `now()` (seconds), not\n * `Date.now()` (ms), and `toSeconds()` to convert the ms system fields\n * (`_createdAt`/`_updatedAt`) or any `Date.now()` value first.\n */\n/**\n * Current time as a **Unix timestamp in seconds** — the unit Bounded policy rules\n * use (`@time.now`). Use this (not `Date.now()`) when you need a timestamp in\n * client code (e.g. a freshness check). For a value you *store* and a policy\n * reads, prefer the server-authoritative {@link serverTimestamp} instead.\n *\n * ```ts\n * // stale if >15s old — seconds vs seconds ✓\n * if (now() - doc.lastSeenSeconds > 15) renderStale();\n * ```\n */\nfunction now() {\n return Math.floor(Date.now() / 1000);\n}\n/**\n * Convert a JavaScript millisecond timestamp to Bounded's **seconds**. Accepts a\n * `Date`, or an ms number such as `Date.now()` or a doc's `_createdAt` /\n * `_updatedAt` system field.\n *\n * ```ts\n * // doc is >15s old (compare the ms system field in seconds):\n * if (now() - toSeconds(doc._updatedAt) > 15) renderStale();\n * ```\n */\nfunction toSeconds(msOrDate) {\n const ms = msOrDate instanceof Date ? msOrDate.getTime() : msOrDate;\n return Math.floor(ms / 1000);\n}\n/**\n * Convert a Bounded **seconds** timestamp back to JavaScript **milliseconds** —\n * e.g. to build a `Date` or do client-side date math/formatting.\n *\n * ```ts\n * new Date(toMillis(doc.createdAtSeconds)).toLocaleString();\n * ```\n */\nfunction toMillis(seconds) {\n return seconds * 1000;\n}\n\n// ---------------------------------------------------------------------------\n// realtime-store.ts — Client-side state manager for realtime apps.\n//\n// Manages: WS connection, in-memory state, IDB persistence, optimistic\n// writes, delta accumulation, loading states, ephemeral/durable tiers.\n// ---------------------------------------------------------------------------\n// ---------------------------------------------------------------------------\n// IDB helpers (lazy-loaded, non-blocking)\n// ---------------------------------------------------------------------------\nconst IDB_NAME = 'bounded-realtime';\nconst IDB_STORE = 'subscriptions';\nconst IDB_VERSION = 1;\nlet idbPromise = null;\nfunction getIDB() {\n if (idbPromise)\n return idbPromise;\n if (typeof indexedDB === 'undefined') {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n idbPromise = new Promise((resolve, reject) => {\n const req = indexedDB.open(IDB_NAME, IDB_VERSION);\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(IDB_STORE)) {\n db.createObjectStore(IDB_STORE);\n }\n };\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n return idbPromise;\n}\nasync function idbGet(key) {\n try {\n const db = await getIDB();\n return new Promise((resolve) => {\n const tx = db.transaction(IDB_STORE, 'readonly');\n const store = tx.objectStore(IDB_STORE);\n const req = store.get(key);\n req.onsuccess = () => { var _a; return resolve((_a = req.result) !== null && _a !== void 0 ? _a : null); };\n req.onerror = () => resolve(null);\n });\n }\n catch (_a) {\n return null;\n }\n}\nasync function idbSet(key, value) {\n try {\n const db = await getIDB();\n return new Promise((resolve) => {\n const tx = db.transaction(IDB_STORE, 'readwrite');\n const store = tx.objectStore(IDB_STORE);\n store.put(value, key);\n tx.oncomplete = () => resolve();\n tx.onerror = () => resolve();\n });\n }\n catch (_a) {\n // Best-effort persistence\n }\n}\n// ---------------------------------------------------------------------------\n// RealtimeStore\n// ---------------------------------------------------------------------------\nlet nextRequestId = 1;\nclass RealtimeStore {\n constructor() {\n this.ws = null;\n this.wsUrl = '';\n this.appId = '';\n this.subscriptions = new Map();\n this.pendingRequests = new Map();\n this.connectPromise = null;\n this.reconnectTimer = null;\n this.reconnectDelay = 1000;\n this.maxReconnectDelay = 30000;\n this.idbFlushTimer = null;\n this.idbDirtyKeys = new Set();\n this.closed = false;\n this.authToken = null;\n this.isServer = false;\n this.tokenRefreshTimer = null;\n // -----------------------------------------------------------------------\n // WebSocket connection\n // -----------------------------------------------------------------------\n this.initPromise = null;\n }\n // -----------------------------------------------------------------------\n // Initialization\n // -----------------------------------------------------------------------\n async init() {\n const config = await getConfig();\n this.appId = config.appId;\n this.wsUrl = config.wsApiUrl;\n this.isServer = config.isServer;\n await this.refreshToken();\n this.startTokenRefresh();\n }\n async refreshToken() {\n try {\n const { getIdToken } = await Promise.resolve().then(function () { return utils; });\n const token = await getIdToken(this.isServer);\n if (token)\n this.authToken = token;\n }\n catch ( /* no auth available */_a) { /* no auth available */ }\n }\n startTokenRefresh() {\n if (this.tokenRefreshTimer)\n return;\n this.tokenRefreshTimer = setInterval(async () => {\n var _a;\n const prevToken = this.authToken;\n await this.refreshToken();\n if (this.authToken && this.authToken !== prevToken && ((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN) {\n // Token changed — reconnect with fresh token\n this.ws.close(1000, 'Token refreshed');\n }\n }, 5 * 60 * 1000); // Check every 5 minutes\n }\n async ensureConnected() {\n var _a;\n if (!this.appId) {\n if (!this.initPromise)\n this.initPromise = this.init();\n await this.initPromise;\n }\n if (((_a = this.ws) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN)\n return;\n if (this.connectPromise)\n return this.connectPromise;\n this.connectPromise = this.connect();\n return this.connectPromise;\n }\n connect() {\n return new Promise((resolve, reject) => {\n if (this.closed) {\n reject(new Error('Store closed'));\n return;\n }\n const params = new URLSearchParams();\n params.set('apiKey', this.appId);\n if (this.authToken)\n params.set('authorization', this.authToken);\n // Note: token in URL is required until DO server supports subprotocol auth.\n // WSS encrypts the full URL including query params on the wire.\n const url = `${this.wsUrl}?${params.toString()}`;\n const ws = new WebSocket(url);\n this.ws = ws;\n const onOpen = () => {\n ws.removeEventListener('error', onError);\n this.reconnectDelay = 1000;\n this.connectPromise = null;\n this.resubscribeAll();\n resolve();\n };\n const onError = (e) => {\n ws.removeEventListener('open', onOpen);\n this.connectPromise = null;\n reject(new Error('WebSocket connection failed'));\n };\n ws.addEventListener('open', onOpen, { once: true });\n ws.addEventListener('error', onError, { once: true });\n ws.addEventListener('message', (event) => {\n this.handleMessage(event.data);\n });\n ws.addEventListener('close', () => {\n this.ws = null;\n this.connectPromise = null;\n this.rejectAllPending('WebSocket closed');\n this.setAllSubscriptionStatus('reconnecting');\n this.scheduleReconnect();\n });\n });\n }\n scheduleReconnect() {\n if (this.closed)\n return;\n if (this.reconnectTimer)\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = setTimeout(() => {\n this.ensureConnected().catch(() => {\n this.reconnectDelay = Math.min(this.reconnectDelay * 2, this.maxReconnectDelay);\n this.scheduleReconnect();\n });\n }, this.reconnectDelay);\n }\n resubscribeAll() {\n for (const sub of this.subscriptions.values()) {\n this.sendSubscribe(sub);\n }\n }\n // -----------------------------------------------------------------------\n // Message handling\n // -----------------------------------------------------------------------\n handleMessage(raw) {\n const text = typeof raw === 'string' ? raw : new TextDecoder().decode(raw);\n let msg;\n try {\n msg = JSON.parse(text);\n }\n catch (_a) {\n return;\n }\n switch (msg.type) {\n case 'snapshot':\n this.handleSnapshot(msg);\n break;\n case 'delta':\n this.handleDelta(msg);\n break;\n case 'result':\n this.handleResult(msg);\n break;\n case 'error':\n this.handleError(msg);\n break;\n case 'pong':\n break;\n // v1 compat: handle legacy message types during transition\n case 'subscribed':\n this.handleSnapshot(Object.assign(Object.assign({}, msg), { type: 'snapshot', docs: msg.data }));\n break;\n case 'data':\n // Legacy full-snapshot delta — treat as snapshot replacement\n this.handleLegacyData(msg);\n break;\n case 'response':\n this.handleResult(Object.assign(Object.assign({}, msg), { type: 'result', ok: msg.status === 200, doc: msg.data }));\n break;\n }\n }\n handleSnapshot(msg) {\n var _a, _b, _c;\n const subId = (_a = msg.id) !== null && _a !== void 0 ? _a : msg.subscriptionId;\n if (!subId)\n return;\n const sub = this.findSubscriptionById(subId);\n if (!sub)\n return;\n const docs = (_c = (_b = msg.docs) !== null && _b !== void 0 ? _b : msg.data) !== null && _c !== void 0 ? _c : [];\n const docsArray = Array.isArray(docs) ? docs : [docs];\n sub.docs.clear();\n for (const doc of docsArray) {\n if (doc && doc._id) {\n sub.docs.set(doc._id, doc);\n }\n }\n sub.ref.current = sub.docs;\n sub.status = 'live';\n sub.isStale = false;\n sub.error = null;\n this.notifySubscription(sub);\n this.markIdbDirty(sub.path);\n }\n handleDelta(msg) {\n var _a, _b;\n const subId = (_a = msg.id) !== null && _a !== void 0 ? _a : msg.subscriptionId;\n if (!subId)\n return;\n const sub = this.findSubscriptionById(subId);\n if (!sub)\n return;\n if (sub.tier === 'ephemeral') {\n // Ephemeral: just overwrite, no accumulation logic\n if (msg.change === 'removed' && msg.docId) {\n sub.docs.delete(msg.docId);\n }\n else if (msg.doc && msg.doc._id) {\n sub.docs.set(msg.doc._id, msg.doc);\n }\n sub.ref.current = sub.docs;\n if (sub.options.mode !== 'ref') {\n this.notifySubscription(sub);\n }\n return;\n }\n // Durable/checkpointed: full delta handling\n switch (msg.change) {\n case 'added':\n case 'modified':\n if (msg.doc && msg.doc._id) {\n sub.docs.set(msg.doc._id, msg.doc);\n }\n break;\n case 'removed':\n if (msg.docId) {\n sub.docs.delete(msg.docId);\n }\n else if ((_b = msg.doc) === null || _b === void 0 ? void 0 : _b._id) {\n sub.docs.delete(msg.doc._id);\n }\n break;\n }\n sub.ref.current = sub.docs;\n this.notifySubscription(sub);\n this.markIdbDirty(sub.path);\n }\n handleLegacyData(msg) {\n // Legacy v1 format: 'data' message with full snapshot or single doc\n const subId = msg.subscriptionId;\n if (!subId)\n return;\n const sub = this.findSubscriptionById(subId);\n if (!sub)\n return;\n if (Array.isArray(msg.data)) {\n // Full snapshot replacement\n sub.docs.clear();\n for (const doc of msg.data) {\n if (doc && doc._id)\n sub.docs.set(doc._id, doc);\n }\n }\n else if (msg.data && msg.data._id) {\n // Single doc update\n sub.docs.set(msg.data._id, msg.data);\n }\n else if (msg.data === null) ;\n sub.ref.current = sub.docs;\n sub.status = 'live';\n sub.isStale = false;\n this.notifySubscription(sub);\n this.markIdbDirty(sub.path);\n }\n handleResult(msg) {\n var _a, _b, _c, _d;\n const requestId = msg.requestId;\n if (!requestId)\n return;\n const pending = this.pendingRequests.get(requestId);\n if (!pending)\n return;\n this.pendingRequests.delete(requestId);\n clearTimeout(pending.timeout);\n const ok = (_a = msg.ok) !== null && _a !== void 0 ? _a : (msg.status === 200);\n if (ok) {\n pending.resolve((_c = (_b = msg.doc) !== null && _b !== void 0 ? _b : msg.data) !== null && _c !== void 0 ? _c : true);\n }\n else {\n pending.reject(new Error((_d = msg.error) !== null && _d !== void 0 ? _d : 'Operation failed'));\n }\n }\n handleError(msg) {\n var _a;\n const requestId = msg.requestId;\n if (requestId) {\n const pending = this.pendingRequests.get(requestId);\n if (pending) {\n this.pendingRequests.delete(requestId);\n clearTimeout(pending.timeout);\n pending.reject(new Error((_a = msg.message) !== null && _a !== void 0 ? _a : 'Server error'));\n }\n }\n }\n // -----------------------------------------------------------------------\n // Subscribe\n // -----------------------------------------------------------------------\n async subscribe(path, opts = {}) {\n var _a;\n const tier = (_a = opts.tier) !== null && _a !== void 0 ? _a : 'durable';\n const subKey = this.getSubKey(path, opts);\n let sub = this.subscriptions.get(subKey);\n if (sub) {\n // Existing subscription — add callback\n if (opts.onData)\n sub.callbacks.add(opts.onData);\n if (opts.onState)\n sub.stateCallbacks.add(opts.onState);\n // Immediately deliver current state\n if (opts.onData && sub.docs.size > 0) {\n opts.onData(this.docsToArray(sub));\n }\n if (opts.onState) {\n opts.onState(this.getState(sub));\n }\n return this.createUnsubscribe(subKey, opts.onData, opts.onState);\n }\n // New subscription\n const subId = `sub_${nextRequestId++}`;\n sub = {\n id: subId,\n path,\n tier,\n options: opts,\n docs: new Map(),\n status: 'idle',\n isStale: false,\n error: null,\n callbacks: new Set(opts.onData ? [opts.onData] : []),\n stateCallbacks: new Set(opts.onState ? [opts.onState] : []),\n ref: { current: new Map() },\n };\n this.subscriptions.set(subKey, sub);\n // Step 1: Load from IDB (durable/checkpointed only)\n if (tier !== 'ephemeral') {\n const cached = await idbGet(this.idbKey(path));\n if (cached && Array.isArray(cached)) {\n for (const doc of cached) {\n if (doc && doc._id)\n sub.docs.set(doc._id, doc);\n }\n sub.ref.current = sub.docs;\n sub.status = 'cached';\n sub.isStale = true;\n this.notifySubscription(sub);\n }\n }\n // Step 2: Connect and subscribe via WS\n sub.status = sub.docs.size > 0 ? 'cached' : 'loading';\n this.notifyState(sub);\n try {\n await this.ensureConnected();\n this.sendSubscribe(sub);\n }\n catch (_b) {\n sub.status = 'error';\n sub.error = new Error('Connection failed');\n this.notifyState(sub);\n }\n return this.createUnsubscribe(subKey, opts.onData, opts.onState);\n }\n getRef(path, opts = {}) {\n var _a;\n const subKey = this.getSubKey(path, opts);\n const sub = this.subscriptions.get(subKey);\n if (sub)\n return sub.ref;\n // Auto-subscribe in ref mode\n const ref = { current: new Map() };\n this.subscribe(path, Object.assign(Object.assign({}, opts), { mode: 'ref', tier: 'ephemeral' })).catch(() => { });\n const newSub = this.subscriptions.get(this.getSubKey(path, Object.assign(Object.assign({}, opts), { tier: 'ephemeral' })));\n return (_a = newSub === null || newSub === void 0 ? void 0 : newSub.ref) !== null && _a !== void 0 ? _a : ref;\n }\n // -----------------------------------------------------------------------\n // CRUD operations\n // -----------------------------------------------------------------------\n async set(path, doc) {\n var _a;\n await this.ensureConnected();\n // Resolve operations (Increment, Time.Now) client-side for optimistic update\n const resolvedDoc = this.resolveOperations(doc, path);\n // Optimistic update: apply to local state immediately\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const collectionPath = this.getCollectionPath(normalizedPath);\n const optimisticDoc = Object.assign(Object.assign({ _id: normalizedPath, pathId: normalizedPath }, resolvedDoc), { \n // System timestamp field name: the Bounded worker stamps the neutral\n // `_updatedAt`; the underscore-prefixed `_updated_at` metadata mirror.\n // Match it so the optimistic doc lines up with the server's confirmation.\n [isBoundedNetwork() ? '_updatedAt' : '_updated_at']: Date.now() });\n const sub = this.findSubscriptionByPath(collectionPath);\n let prevDoc = null;\n if (sub) {\n prevDoc = (_a = sub.docs.get(normalizedPath)) !== null && _a !== void 0 ? _a : null;\n sub.docs.set(normalizedPath, optimisticDoc);\n sub.ref.current = sub.docs;\n this.notifySubscription(sub);\n }\n // Send to server\n const requestId = `r_${nextRequestId++}`;\n try {\n const result = await this.sendRequest(requestId, {\n type: 'set',\n requestId,\n documents: [{ destinationPath: normalizedPath, document: doc }],\n });\n // Replace optimistic doc with server-confirmed version\n if (sub && result && typeof result === 'object') {\n const serverDoc = Array.isArray(result) ? result[0] : result;\n if (serverDoc && serverDoc._id) {\n sub.docs.set(serverDoc._id, serverDoc);\n sub.ref.current = sub.docs;\n this.notifySubscription(sub);\n this.markIdbDirty(collectionPath);\n }\n }\n return Array.isArray(result) ? result[0] : result;\n }\n catch (err) {\n // Revert optimistic update\n if (sub) {\n if (prevDoc) {\n sub.docs.set(normalizedPath, prevDoc);\n }\n else {\n sub.docs.delete(normalizedPath);\n }\n sub.ref.current = sub.docs;\n this.notifySubscription(sub);\n }\n throw err;\n }\n }\n async get(path) {\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n // Check local subscriptions first\n const collectionPath = this.getCollectionPath(normalizedPath);\n const sub = this.findSubscriptionByPath(collectionPath);\n if (sub && sub.status === 'live') {\n const doc = sub.docs.get(normalizedPath);\n return doc !== null && doc !== void 0 ? doc : null;\n }\n // One-shot WS fetch\n await this.ensureConnected();\n const requestId = `r_${nextRequestId++}`;\n return this.sendRequest(requestId, {\n type: 'get',\n requestId,\n path: normalizedPath,\n });\n }\n async getMany(paths) {\n await this.ensureConnected();\n const normalizedPaths = paths.map(p => p.startsWith('/') ? p.slice(1) : p);\n const requestId = `r_${nextRequestId++}`;\n return this.sendRequest(requestId, {\n type: 'getMany',\n requestId,\n paths: normalizedPaths,\n });\n }\n async delete(path) {\n var _a;\n await this.ensureConnected();\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n // Optimistic: remove from local state\n const collectionPath = this.getCollectionPath(normalizedPath);\n const sub = this.findSubscriptionByPath(collectionPath);\n let prevDoc = null;\n if (sub) {\n prevDoc = (_a = sub.docs.get(normalizedPath)) !== null && _a !== void 0 ? _a : null;\n sub.docs.delete(normalizedPath);\n sub.ref.current = sub.docs;\n this.notifySubscription(sub);\n }\n const requestId = `r_${nextRequestId++}`;\n try {\n await this.sendRequest(requestId, {\n type: 'delete',\n requestId,\n path: normalizedPath,\n });\n if (sub)\n this.markIdbDirty(collectionPath);\n }\n catch (err) {\n // Revert\n if (sub && prevDoc) {\n sub.docs.set(normalizedPath, prevDoc);\n sub.ref.current = sub.docs;\n this.notifySubscription(sub);\n }\n throw err;\n }\n }\n async query(path, opts) {\n await this.ensureConnected();\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const requestId = `r_${nextRequestId++}`;\n return this.sendRequest(requestId, Object.assign(Object.assign(Object.assign(Object.assign({ type: 'query', requestId, path: normalizedPath }, ((opts === null || opts === void 0 ? void 0 : opts.filter) ? { filter: opts.filter } : {})), ((opts === null || opts === void 0 ? void 0 : opts.sort) ? { sort: opts.sort } : {})), ((opts === null || opts === void 0 ? void 0 : opts.limit) !== undefined ? { limit: opts.limit } : {})), ((opts === null || opts === void 0 ? void 0 : opts.includeSubPaths) ? { includeSubPaths: true } : {})));\n }\n async count(path) {\n var _a;\n await this.ensureConnected();\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const requestId = `r_${nextRequestId++}`;\n const result = await this.sendRequest(requestId, {\n type: 'count',\n requestId,\n path: normalizedPath,\n });\n return typeof result === 'number' ? result : ((_a = result === null || result === void 0 ? void 0 : result.value) !== null && _a !== void 0 ? _a : 0);\n }\n async aggregate(path, operation, opts) {\n await this.ensureConnected();\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const requestId = `r_${nextRequestId++}`;\n return this.sendRequest(requestId, Object.assign({ type: 'aggregate', requestId, path: normalizedPath, operation }, ((opts === null || opts === void 0 ? void 0 : opts.field) ? { field: opts.field } : {})));\n }\n // -----------------------------------------------------------------------\n // Helpers\n // -----------------------------------------------------------------------\n sendSubscribe(sub) {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN)\n return;\n const msg = {\n type: 'subscribe',\n subscriptionId: sub.id,\n path: sub.path,\n };\n if (sub.options.filter)\n msg.filter = sub.options.filter;\n if (sub.options.includeSubPaths)\n msg.includeSubPaths = true;\n if (sub.options.limit)\n msg.limit = sub.options.limit;\n if (sub.options.prompt)\n msg.prompt = sub.options.prompt;\n this.ws.send(JSON.stringify(msg));\n }\n sendRequest(requestId, msg) {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n this.pendingRequests.delete(requestId);\n reject(new Error('Request timed out'));\n }, 30000);\n this.pendingRequests.set(requestId, { resolve, reject, timeout });\n if (this.ws && this.ws.readyState === WebSocket.OPEN) {\n this.ws.send(JSON.stringify(msg));\n }\n else {\n this.pendingRequests.delete(requestId);\n clearTimeout(timeout);\n reject(new Error('WebSocket not connected'));\n }\n });\n }\n notifySubscription(sub) {\n const data = this.docsToArray(sub);\n const callbacks = Array.from(sub.callbacks);\n for (const cb of callbacks) {\n try {\n cb(data);\n }\n catch ( /* swallow callback errors */_a) { /* swallow callback errors */ }\n }\n this.notifyState(sub);\n }\n notifyState(sub) {\n const state = this.getState(sub);\n const callbacks = Array.from(sub.stateCallbacks);\n for (const cb of callbacks) {\n try {\n cb(state);\n }\n catch ( /* swallow */_a) { /* swallow */ }\n }\n }\n getState(sub) {\n return {\n data: this.docsToArray(sub),\n status: sub.status,\n isStale: sub.isStale,\n error: sub.error,\n };\n }\n docsToArray(sub) {\n return Array.from(sub.docs.values());\n }\n findSubscriptionById(id) {\n for (const sub of this.subscriptions.values()) {\n if (sub.id === id)\n return sub;\n }\n return undefined;\n }\n findSubscriptionByPath(collectionPath) {\n for (const sub of this.subscriptions.values()) {\n const subPath = sub.path.startsWith('/') ? sub.path.slice(1) : sub.path;\n if (subPath === collectionPath)\n return sub;\n if (collectionPath.startsWith(subPath + '/'))\n return sub;\n }\n return undefined;\n }\n getCollectionPath(docPath) {\n const segments = docPath.split('/');\n if (segments.length % 2 === 0) {\n return segments.slice(0, -1).join('/');\n }\n return docPath;\n }\n getSubKey(path, opts) {\n const parts = [path];\n if (opts.filter)\n parts.push(JSON.stringify(opts.filter));\n if (opts.prompt)\n parts.push(opts.prompt);\n if (opts.tier)\n parts.push(opts.tier);\n return parts.join('::');\n }\n idbKey(path) {\n return `${this.appId}:${path}`;\n }\n markIdbDirty(path) {\n const sub = this.findSubscriptionByPath(path);\n if (sub && sub.tier === 'ephemeral')\n return;\n this.idbDirtyKeys.add(path);\n if (!this.idbFlushTimer) {\n this.idbFlushTimer = setTimeout(() => {\n this.flushIdb();\n this.idbFlushTimer = null;\n }, 500);\n }\n }\n async flushIdb() {\n const keys = Array.from(this.idbDirtyKeys);\n this.idbDirtyKeys.clear();\n for (const path of keys) {\n const sub = this.findSubscriptionByPath(path);\n if (sub && sub.tier !== 'ephemeral') {\n const docs = this.docsToArray(sub);\n await idbSet(this.idbKey(path), docs);\n }\n }\n }\n createUnsubscribe(subKey, onData, onState) {\n return async () => {\n const sub = this.subscriptions.get(subKey);\n if (!sub)\n return;\n if (onData)\n sub.callbacks.delete(onData);\n if (onState)\n sub.stateCallbacks.delete(onState);\n // If no more callbacks, unsubscribe entirely\n if (sub.callbacks.size === 0 && sub.stateCallbacks.size === 0) {\n this.subscriptions.delete(subKey);\n if (this.ws && this.ws.readyState === WebSocket.OPEN) {\n this.ws.send(JSON.stringify({\n type: 'unsubscribe',\n subscriptionId: sub.id,\n }));\n }\n }\n };\n }\n resolveOperations(doc, path) {\n var _a;\n if (!doc || typeof doc !== 'object')\n return doc;\n const resolved = {};\n for (const [key, value] of Object.entries(doc)) {\n if (value && typeof value === 'object' && !Array.isArray(value) && value.operation) {\n const op = value;\n if (op.operation === 'time' && op.value === 'now') {\n resolved[key] = Math.floor(Date.now() / 1000);\n }\n else if (op.operation === 'increment') {\n // For optimistic: get current value and add\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const collectionPath = this.getCollectionPath(normalizedPath);\n const sub = this.findSubscriptionByPath(collectionPath);\n const existing = sub === null || sub === void 0 ? void 0 : sub.docs.get(normalizedPath);\n const current = (_a = existing === null || existing === void 0 ? void 0 : existing[key]) !== null && _a !== void 0 ? _a : 0;\n resolved[key] = (typeof current === 'number' ? current : 0) + op.value;\n }\n else {\n resolved[key] = value;\n }\n }\n else {\n resolved[key] = value;\n }\n }\n return resolved;\n }\n rejectAllPending(reason) {\n for (const [requestId, pending] of this.pendingRequests) {\n clearTimeout(pending.timeout);\n pending.reject(new Error(reason));\n }\n this.pendingRequests.clear();\n }\n setAllSubscriptionStatus(status) {\n for (const sub of this.subscriptions.values()) {\n sub.status = status;\n this.notifyState(sub);\n }\n }\n // -----------------------------------------------------------------------\n // Lifecycle\n // -----------------------------------------------------------------------\n close() {\n this.closed = true;\n if (this.reconnectTimer)\n clearTimeout(this.reconnectTimer);\n if (this.idbFlushTimer)\n clearTimeout(this.idbFlushTimer);\n if (this.tokenRefreshTimer)\n clearInterval(this.tokenRefreshTimer);\n this.flushIdb();\n if (this.ws) {\n this.ws.close(1000, 'Store closed');\n this.ws = null;\n }\n this.rejectAllPending('Store closed');\n this.subscriptions.clear();\n }\n}\n// ---------------------------------------------------------------------------\n// Singleton instance\n// ---------------------------------------------------------------------------\nlet storeInstance = null;\nfunction getRealtimeStore() {\n if (!storeInstance) {\n storeInstance = new RealtimeStore();\n }\n return storeInstance;\n}\nfunction resetRealtimeStore() {\n if (storeInstance) {\n storeInstance.close();\n storeInstance = null;\n }\n}\n\n// ---------------------------------------------------------------------------\n// functions.ts -- Bounded Functions client (the imperative escape hatch).\n//\n// `bounded.functions.invoke(name, args, opts?)` POSTs to the dispatcher's\n// /invoke endpoint, attaching the caller's session token AUTOMATICALLY (the\n// exact same token the SDK uses for data reads/writes). Works client + server.\n// The dispatcher verifies the token, evaluates the function's `auth` policy\n// rule, and dispatches to the function — returning its JSON, or throwing on\n// 403 / error.\n// ---------------------------------------------------------------------------\n/** Prod functions dispatcher; overridable via init({ functionsUrl }) or network preset. */\nconst DEFAULT_FUNCTIONS_URL = 'https://functions.bounded.sh';\nclass FunctionInvokeError extends Error {\n constructor(message, statusCode, details) {\n super(message);\n this.statusCode = statusCode;\n this.details = details;\n this.name = 'FunctionInvokeError';\n }\n}\n/**\n * Invoke a deployed Bounded Function by name. Returns the function's JSON.\n *\n * const res = await bounded.functions.invoke('syncStripe', { customerId });\n *\n * Throws FunctionInvokeError on 401 (not logged in / bad token), 403 (the\n * function's auth policy rule denied this caller), 404 (unknown function),\n * 503 (Workers for Platforms not configured), or any non-2xx / transport error.\n */\nasync function invoke(name, args = {}, opts = {}) {\n var _a, _b, _c, _d, _e, _f;\n if (!name || typeof name !== 'string') {\n throw new FunctionInvokeError('A function name is required');\n }\n const config = await getConfig();\n const base = (config.functionsUrl || DEFAULT_FUNCTIONS_URL).replace(/\\/$/, '');\n // Attach the caller's session token automatically (same token as data calls).\n // A wallet-scoped call (server WalletClient.invoke) resolves the token from the\n // wallet's own session; all others use the ambient env/web session.\n const authHeader = ((_a = opts._overrides) === null || _a === void 0 ? void 0 : _a._getAuthHeaders)\n ? await opts._overrides._getAuthHeaders()\n : await createAuthHeader(config.isServer);\n const headers = Object.assign(Object.assign({ 'Content-Type': 'application/json', 'X-App-Id': config.appId, 'X-Public-App-Id': config.appId }, (authHeader !== null && authHeader !== void 0 ? authHeader : {})), ((_b = opts.headers) !== null && _b !== void 0 ? _b : {}));\n const controller = new AbortController();\n const timeoutMs = (_c = opts.timeoutMs) !== null && _c !== void 0 ? _c : 60000;\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n let res;\n try {\n res = await fetch(`${base}/invoke`, {\n method: 'POST',\n headers,\n body: JSON.stringify({ appId: config.appId, functionName: name, args }),\n signal: controller.signal,\n });\n }\n catch (err) {\n clearTimeout(timer);\n if ((err === null || err === void 0 ? void 0 : err.name) === 'AbortError') {\n throw new FunctionInvokeError(`Function \"${name}\" invocation timed out after ${timeoutMs}ms`);\n }\n throw new FunctionInvokeError(`Failed to reach the functions dispatcher: ${(_d = err === null || err === void 0 ? void 0 : err.message) !== null && _d !== void 0 ? _d : String(err)}`);\n }\n clearTimeout(timer);\n let body = null;\n const text = await res.text();\n if (text) {\n try {\n body = JSON.parse(text);\n }\n catch (_g) {\n body = { raw: text };\n }\n }\n if (!res.ok) {\n const message = (_f = (_e = body === null || body === void 0 ? void 0 : body.error) !== null && _e !== void 0 ? _e : body === null || body === void 0 ? void 0 : body.message) !== null && _f !== void 0 ? _f : `Function \"${name}\" failed with HTTP ${res.status}`;\n throw new FunctionInvokeError(message, res.status, body);\n }\n // The dispatcher returns the function's JSON directly.\n return body;\n}\n/** The `bounded.functions` namespace surface. */\nconst functions = { invoke };\n\n// ---------------------------------------------------------------------------\n// live.ts -- Bounded Live client (drive a server-authoritative room).\n//\n// A Bounded \"live\" room is a native module (init/tick/views) loaded into an\n// isolated Durable Object facet inside the per-room DO. The worker runs tick\n// ~30Hz server-authoritatively and fans per-player views out on an ephemeral\n// collection. This file is the consumer surface around that runtime:\n//\n// bounded.live.intent(roomPath, intent) -> POST {realtime}/live/intent\n// bounded.live.status(roomPath) -> GET {realtime}/live/status\n//\n// It mirrors `functions.invoke` exactly: it attaches the caller's session token\n// AUTOMATICALLY (the same token the SDK uses for data reads/writes), and throws\n// a typed error on any non-2xx / transport / timeout.\n//\n// The runtime serves any server-authoritative realtime room (Figma clones,\n// editors, dashboards, multiplayer games, ...). Games remain a valid use case;\n// the primitive itself is just \"live\".\n//\n// Addressing: clients address rooms BY PATH (the `path` field in the body). The\n// worker derives the roomId from `body.path` and sets X-Room-Id internally;\n// clients NEVER set X-Room-Id. The caller's address is taken server-side from\n// the Authorization header (auth.userId/userAddress) — it is NOT sent in the\n// body.\n//\n// Subscribing to your view: a per-player view doc lives at\n// `<roomPath>/view/<myUserId>` (the policy declares\n// `rooms/$roomId/view/$userId` ephemeral with `read: $userId == @user.id`).\n// Wallet-address keyed view paths remain supported through opts.address for\n// older policies, but new live rooms should key views by @user.id.\n// ---------------------------------------------------------------------------\nclass LiveIntentError extends Error {\n constructor(message, statusCode, details) {\n super(message);\n this.statusCode = statusCode;\n this.details = details;\n this.name = 'LiveIntentError';\n }\n}\n/**\n * Derive the realtime worker's HTTP base from the configured WS API URL.\n * The realtime worker serves both WS and HTTP on the same host, so we reuse\n * `config.wsApiUrl` (wss:// -> https://, ws:// -> http://). The data API\n * (`config.apiUrl`) is a DIFFERENT host and must NOT be used for /live/*.\n */\nfunction realtimeHttpBase(wsApiUrl) {\n const url = new URL(wsApiUrl);\n if (url.protocol === 'wss:')\n url.protocol = 'https:';\n else if (url.protocol === 'ws:')\n url.protocol = 'http:';\n // Strip trailing slash from the resulting origin+path.\n return url.toString().replace(/\\/$/, '');\n}\n/**\n * Send a player intent to a running live room. Returns `{ ok: true }`.\n *\n * await bounded.live.intent('rooms/abc', { type: 'move', dir: 'up' });\n *\n * `roomPath` is the document path of the room (e.g. `rooms/abc`). The worker\n * derives the room from this path and reads `intent` as the opaque per-tick\n * input. The caller's address is taken from the attached session token.\n *\n * Throws LiveIntentError on 401 (not logged in / bad token), 404 (room has no\n * live module), 503 (live runtime/module unavailable), or any non-2xx /\n * transport error / timeout.\n */\nasync function intent(roomPath, intent, opts = {}) {\n var _a, _b, _c, _d, _e;\n if (!roomPath || typeof roomPath !== 'string') {\n throw new LiveIntentError('A room path is required');\n }\n const config = await getConfig();\n // Ride the already-open per-room socket instead of a fresh HTTP POST per\n // intent. That is what makes high-frequency input (~20-30Hz) cheap — one\n // persistent connection, no per-intent TCP/TLS or connection-pool contention\n // (which was head-of-line-blocking the view stream). The worker is the room\n // authority (the connection is routed to the room DO), so we pass no\n // destination.\n //\n // - fireAndForget: send and return immediately (lowest latency for inputs).\n // - default: send WITH a requestId and AWAIT the ack, so a policy/auth deny\n // (401/403/404/503) REJECTS — important intents (join/ready) must not\n // silently \"succeed\".\n //\n // Either way we fall back to HTTP below only when no live socket exists yet\n // (e.g. the first join before subscribeView's WS connects) — HTTP also throws\n // on a non-2xx, so errors are surfaced there too.\n const normalizedRoomPath = roomPath.replace(/\\/$/, '');\n if (opts.fireAndForget) {\n if (wsIntent(config.appId, normalizedRoomPath, intent))\n return { ok: true };\n }\n else {\n const ack = wsIntentReliable(config.appId, normalizedRoomPath, intent);\n if (ack)\n return await ack;\n }\n const base = realtimeHttpBase(config.wsApiUrl);\n // Attach the caller's session token automatically (same token as data calls).\n const authHeader = await createAuthHeader(config.isServer);\n const headers = Object.assign(Object.assign({ 'Content-Type': 'application/json', 'X-App-Id': config.appId, 'X-Public-App-Id': config.appId }, (authHeader !== null && authHeader !== void 0 ? authHeader : {})), ((_a = opts.headers) !== null && _a !== void 0 ? _a : {}));\n const controller = new AbortController();\n const timeoutMs = (_b = opts.timeoutMs) !== null && _b !== void 0 ? _b : 60000;\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n let res;\n try {\n res = await fetch(`${base}/live/intent`, {\n method: 'POST',\n headers,\n body: JSON.stringify({ path: normalizedRoomPath, intent }),\n signal: controller.signal,\n });\n }\n catch (err) {\n clearTimeout(timer);\n if ((err === null || err === void 0 ? void 0 : err.name) === 'AbortError') {\n throw new LiveIntentError(`Live intent to \"${roomPath}\" timed out after ${timeoutMs}ms`);\n }\n throw new LiveIntentError(`Failed to reach the realtime worker: ${(_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : String(err)}`);\n }\n clearTimeout(timer);\n let body = null;\n const text = await res.text();\n if (text) {\n try {\n body = JSON.parse(text);\n }\n catch (_f) {\n body = { raw: text };\n }\n }\n if (!res.ok) {\n const message = (_e = (_d = body === null || body === void 0 ? void 0 : body.error) !== null && _d !== void 0 ? _d : body === null || body === void 0 ? void 0 : body.message) !== null && _e !== void 0 ? _e : `Live intent failed with HTTP ${res.status}`;\n throw new LiveIntentError(message, res.status, body);\n }\n return (body !== null && body !== void 0 ? body : { ok: true });\n}\n/**\n * Fetch the runtime status for a live room.\n *\n * const s = await bounded.live.status('rooms/abc');\n * console.log(s.running, s.stopReason, s.generation, s.etag);\n *\n * This is diagnostic/ops surface. It reports whether the room facet exists,\n * whether it is currently ticking, why it last stopped, which module etag is\n * loaded, and the current generation used after terminal restarts.\n */\nasync function status(roomPath, opts = {}) {\n var _a, _b, _c, _d, _e;\n if (!roomPath || typeof roomPath !== 'string') {\n throw new LiveIntentError('A room path is required');\n }\n const normalizedRoomPath = roomPath.replace(/\\/$/, '');\n const config = await getConfig();\n const base = realtimeHttpBase(config.wsApiUrl);\n const headers = Object.assign({ 'X-App-Id': config.appId, 'X-Public-App-Id': config.appId }, ((_a = opts.headers) !== null && _a !== void 0 ? _a : {}));\n const controller = new AbortController();\n const timeoutMs = (_b = opts.timeoutMs) !== null && _b !== void 0 ? _b : 15000;\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n let res;\n try {\n res = await fetch(`${base}/live/status?path=${encodeURIComponent(normalizedRoomPath)}`, {\n method: 'GET',\n headers,\n signal: controller.signal,\n });\n }\n catch (err) {\n clearTimeout(timer);\n if ((err === null || err === void 0 ? void 0 : err.name) === 'AbortError') {\n throw new LiveIntentError(`Live status for \"${normalizedRoomPath}\" timed out after ${timeoutMs}ms`);\n }\n throw new LiveIntentError(`Failed to reach the realtime worker: ${(_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : String(err)}`);\n }\n clearTimeout(timer);\n let body = null;\n const text = await res.text();\n if (text) {\n try {\n body = JSON.parse(text);\n }\n catch (_f) {\n body = { raw: text };\n }\n }\n if (!res.ok) {\n const message = (_e = (_d = body === null || body === void 0 ? void 0 : body.error) !== null && _d !== void 0 ? _d : body === null || body === void 0 ? void 0 : body.message) !== null && _e !== void 0 ? _e : `Live status failed with HTTP ${res.status}`;\n throw new LiveIntentError(message, res.status, body);\n }\n return body;\n}\n/**\n * Subscribe to YOUR per-player view of a room. Thin sugar over:\n *\n * subscribe('<roomPath>/view/<myUserId>', { onData, onError })\n *\n * The view id defaults to the logged-in user's @user.id (from the session token\n * claims); pass `opts.userId` to override. `opts.address` is kept as a legacy\n * alias for older wallet-address keyed policies. Returns the unsubscribe\n * function (a Promise<() => Promise<void>>, same as `subscribe`).\n *\n * Note: this is a browser-first helper (the WS subscription manager is\n * browser-oriented). Server consumers should use `live.intent`.\n */\nasync function subscribeView(roomPath, opts) {\n var _a, _b, _c;\n if (!roomPath || typeof roomPath !== 'string') {\n throw new LiveIntentError('A room path is required');\n }\n if (!opts || typeof opts.onData !== 'function') {\n throw new LiveIntentError('subscribeView requires an onData callback');\n }\n let viewUserId = (_a = opts.userId) !== null && _a !== void 0 ? _a : opts.address;\n if (!viewUserId) {\n const config = await getConfig();\n const info = await getUserInfo(config.isServer);\n // getUserInfo returns the RAW idToken payload. The universal live view key\n // is @user.id (`custom:userId`); wallet-address keyed views are still\n // resolved as a compatibility fallback for older policies.\n viewUserId = (_c = (_b = info === null || info === void 0 ? void 0 : info['custom:userId']) !== null && _b !== void 0 ? _b : info === null || info === void 0 ? void 0 : info['custom:walletAddress']) !== null && _c !== void 0 ? _c : info === null || info === void 0 ? void 0 : info.address;\n }\n if (!viewUserId || typeof viewUserId !== 'string') {\n throw new LiveIntentError('Could not resolve a player view id for subscribeView; pass opts.userId or log in first');\n }\n const normalizedRoomPath = roomPath.replace(/\\/$/, '');\n const viewPath = `${normalizedRoomPath}/view/${viewUserId}`;\n // This is a LIVE/room subscription by construction (the caller hands us the\n // room path), so we route its connection to the per-room DO where the live\n // view fan-out runs. App code passes NO routing — the room path is the helper's\n // own argument, and the worker stays the authority on the destination DO (it\n // derives the room from the `?path=` the connection carries). Without this the\n // subscription lands on the app-level project DO and never sees the room's\n // ephemeral view writes.\n return subscribeV2(viewPath, { onData: opts.onData, onError: opts.onError }, normalizedRoomPath);\n}\n/** The `bounded.live` namespace surface. */\nconst live = { intent, status, subscribeView };\n\n// ---------------------------------------------------------------------------\n// live-effects.ts -- AUTHOR-facing types + helpers for writing a Bounded live\n// module that emits EFFECTS (call an LLM for an AI NPC, run a function, settle a\n// transaction, write authoritative data) from its otherwise-pure tick.\n//\n// The tick stays a PURE, synchronous reducer: it cannot call out. Instead it\n// EMITS effects as data alongside the next state; the platform runs them off the\n// deterministic loop and re-injects each result as a recorded `@effect` intent on\n// a later tick — so replay stays bit-identical (it reads the recorded result and\n// never re-executes/re-charges). See BOUNDED-LIVE-EFFECTS-SPEC.md §3/§9.\n//\n// SOURCE OF TRUTH for these contracts is the runtime core\n// (realtime-worker/src/effects-core.ts). This module mirrors the AUTHOR-facing\n// subset for the SDK (the two are kept structurally identical by the shared spec).\n// ---------------------------------------------------------------------------\n/** Reserved intent address an effect result arrives on. */\nconst EFFECT_INTENT_ADDRESS = \"@effect\";\n// ---------------------------------------------------------------------------\n// Ergonomic helpers\n// ---------------------------------------------------------------------------\n/**\n * Build the `{ state, effects }` tick return. Always include this (even with an\n * empty list) when you intend the wrapper, so the runtime never has to guess\n * whether your state object happens to look like the wrapper.\n *\n * return withEffects(next, [{ kind: \"ai\", id: `npc:${id}:${next.turn}`, model, input }]);\n */\nfunction withEffects(state, effects = []) {\n return { state, effects };\n}\n/**\n * Narrow an incoming intent to an effect result inside your tick:\n *\n * for (const i of intents) {\n * if (i.address === EFFECT_INTENT_ADDRESS && isEffectResult(i.intent)) {\n * applyResult(state, i.intent); // i.intent.effectId / .ok / .result / .error\n * } else { applyPlayerIntent(state, i); }\n * }\n */\nfunction isEffectResult(intent) {\n return (!!intent &&\n typeof intent === \"object\" &&\n intent.__effect === true &&\n typeof intent.effectId === \"string\" &&\n typeof intent.ok === \"boolean\");\n}\n/** Identity helper purely for type inference when authoring a module. */\nfunction defineLiveModule(mod) {\n return mod;\n}\n\nexport { EFFECT_INTENT_ADDRESS, FunctionInvokeError, InsufficientBalanceError, LiveIntentError, ReactNativeSessionManager, RealtimeStore, ServerSessionManager, WebSessionManager, aggregate, buildSetDocumentsTransaction, clearCache, closeAllSubscriptions, convertRemainingAccounts, count, createSessionWithSignature, defineLiveModule, deriveUserIdentityFromIdToken, docId, functions, genAuthNonce, genSolanaMessage, get, getActiveSessionManager, getCachedData, getConfig, getFiles, getIdToken, getMany, getRealtimeStore, getWebhookKeysUrl, hasActiveConnection, increment, init, invoke as invokeFunction, isEffectResult, live, intent as liveIntent, status as liveStatus, now, queryAggregate, reconnectWithNewAuth, refreshSession, resetRealtimeStore, revokeSession, runExpression, runExpressionMany, runQuery, runQueryMany, search, serverTimestamp, set, setFile, setMany, signAndSubmitTransaction, signMessage, signSessionCreateMessage, signTransaction, subscribe, subscribeView as subscribeLiveView, toMillis, toSeconds, withEffects, wsDelete, wsGet, wsGetMany, wsQuery, wsSet };\n//# sourceMappingURL=index.mjs.map\n","/**\n * Platform abstraction layer for React Native compatibility.\n *\n * This module provides interfaces and default (web) implementations for\n * browser-specific APIs that are unavailable in React Native:\n * - Storage (localStorage / sessionStorage)\n * - TextEncoder\n * - Base-64 (btoa / atob)\n * - SubtleCrypto (crypto.subtle.digest)\n * - DOM helpers (document.*, requestAnimationFrame)\n * - Location (window.location.origin)\n * - UserAgent (navigator.userAgent)\n *\n * React Native consumers call `setPlatform(adapter)` once at startup to\n * supply their own implementations (e.g. AsyncStorage-backed storage,\n * expo-crypto, react-native-get-random-values, etc.).\n *\n * Web consumers don't need to do anything — the defaults use the browser APIs.\n */\n/** In-memory fallback when neither browser storage nor a custom adapter exist. */\nclass MemoryStorage {\n constructor() {\n this.store = new Map();\n }\n getItem(key) { var _a; return (_a = this.store.get(key)) !== null && _a !== void 0 ? _a : null; }\n setItem(key, value) { this.store.set(key, value); }\n removeItem(key) { this.store.delete(key); }\n}\n// ---------------------------------------------------------------------------\n// Default web implementation\n// ---------------------------------------------------------------------------\nfunction createWebPlatform() {\n const hasWindow = typeof window !== 'undefined';\n const hasDoc = typeof document !== 'undefined';\n return {\n storage: hasWindow && typeof localStorage !== 'undefined'\n ? localStorage\n : new MemoryStorage(),\n sessionStorage: hasWindow && typeof sessionStorage !== 'undefined'\n ? sessionStorage\n : new MemoryStorage(),\n textEncode(input) {\n return new TextEncoder().encode(input);\n },\n atob(input) {\n if (hasWindow)\n return window.atob(input);\n // Node / SSR fallback\n return Buffer.from(input, 'base64').toString('binary');\n },\n btoa(input) {\n if (hasWindow)\n return window.btoa(input);\n return Buffer.from(input, 'binary').toString('base64');\n },\n async sha256(data) {\n if (typeof crypto !== 'undefined' && crypto.subtle) {\n return crypto.subtle.digest('SHA-256', data);\n }\n // Node / SSR fallback\n const { createHash } = await import('crypto');\n const hash = createHash('sha256').update(data).digest();\n return hash.buffer.slice(hash.byteOffset, hash.byteOffset + hash.byteLength);\n },\n getUserAgent() {\n if (hasWindow && typeof navigator !== 'undefined')\n return navigator.userAgent;\n return '';\n },\n getLocationOrigin() {\n if (hasWindow && window.location)\n return window.location.origin;\n return undefined;\n },\n hasDOM: hasDoc,\n };\n}\n// ---------------------------------------------------------------------------\n// Singleton & public API\n// ---------------------------------------------------------------------------\nlet _platform = createWebPlatform();\nlet _platformConfigured = false;\n/**\n * Override the platform adapter (call once at app startup in React Native).\n *\n * Must be called **before** `init()`. Can only be called once — subsequent\n * calls throw to prevent accidental mid-session storage swaps.\n *\n * ```ts\n * import { setPlatform } from '@bounded-sh/web';\n * import AsyncStorage from '@react-native-async-storage/async-storage';\n *\n * // Create a synchronous wrapper around AsyncStorage for the adapter\n * // (see docs for a full example).\n * setPlatform({ storage: myStorage, ... });\n * ```\n */\nexport function setPlatform(adapter) {\n if (_platformConfigured) {\n throw new Error('setPlatform() has already been called. It can only be invoked once at startup.');\n }\n _platformConfigured = true;\n _platform = Object.assign(Object.assign({}, _platform), adapter);\n}\n/** Get the current platform adapter. */\nexport function getPlatform() {\n return _platform;\n}\n// ---------------------------------------------------------------------------\n// Mobile / Android detection helpers\n// ---------------------------------------------------------------------------\n/**\n * Detect mobile device even when Chrome \"Request Desktop Site\" is active.\n *\n * Desktop mode on Android strips \"Android\" and \"Mobile\" from the UA, leaving\n * something like \"Linux x86_64 …\". The fallback detects this by looking for\n * touch capability + small viewport + a UA that doesn't belong to a known\n * desktop OS (ChromeOS, Windows, macOS).\n */\nexport function detectMobile() {\n const ua = _platform.getUserAgent();\n if (/Android|iPhone|iPad|iPod/i.test(ua))\n return true;\n if (typeof navigator !== 'undefined' && typeof window !== 'undefined') {\n const hasTouch = navigator.maxTouchPoints > 0;\n // Macs don't have touch screens, so \"Macintosh\" + touch = iOS desktop mode\n // (also catches iPadOS 13+ which always reports as Macintosh)\n if (/Macintosh/i.test(ua) && hasTouch)\n return true;\n // Android desktop mode: Linux UA + touch + small viewport, excluding\n // known desktop OSes (ChromeOS, Windows, macOS)\n const isSmallViewport = window.innerWidth <= 1024;\n const isDesktopOS = /CrOS|Windows|Macintosh/i.test(ua);\n if (hasTouch && isSmallViewport && !isDesktopOS)\n return true;\n }\n return false;\n}\n/**\n * Detect Android, including desktop-mode Chrome and Seeker/Saga in-app browsers.\n */\nexport function detectAndroid() {\n const ua = _platform.getUserAgent();\n if (/Android/i.test(ua))\n return true;\n if (/SolanaWallet|SeedVault/i.test(ua))\n return true;\n // Desktop-mode fallback: detected as mobile + Linux UA + not another OS\n if (detectMobile() && /Linux/i.test(ua) && !/CrOS|Macintosh|iPhone|iPad/i.test(ua))\n return true;\n return false;\n}\n/**\n * Reset the platform to web defaults and clear the configured flag.\n * **For testing only** — not exported from the public API.\n * @internal\n */\nexport function _resetPlatformForTesting() {\n _platform = createWebPlatform();\n _platformConfigured = false;\n}\n","import { getPlatform } from '../../platform';\n// Default test wallet address (Solana devnet address)\nexport const DEFAULT_TEST_ADDRESS = 'HKbZbRR7jWWR5VRN8KFjvTCHEzJQgameYxKQxh2gPoof';\n// Session storage key to track if user explicitly called login()\nconst EXPLICIT_LOGIN_KEY = 'mock-auth-explicit-login';\n/**\n * MockAuthProvider bypasses real wallet authentication for testing purposes.\n * Uses session storage to simulate logged-in user, with fallback to default test address.\n *\n * This is enabled by passing mockAuth: true to init()\n */\nexport class MockAuthProvider {\n /**\n * Mock login - reads user from session storage or uses default test address\n */\n async login() {\n let address = getPlatform().sessionStorage.getItem('test-user-address');\n if (!address) {\n address = DEFAULT_TEST_ADDRESS;\n // Store default address in session storage so it gets used in API calls\n getPlatform().sessionStorage.setItem('test-user-address', DEFAULT_TEST_ADDRESS);\n console.log('[MockAuth] Using default test address:', address);\n }\n // Mark that user explicitly called login() - allows restoreSession on refresh\n getPlatform().sessionStorage.setItem(EXPLICIT_LOGIN_KEY, 'true');\n console.log('[MockAuth] Mock login successful:', address);\n return {\n address,\n provider: this\n };\n }\n /**\n * Mock transaction - returns fake signature without actual blockchain interaction\n * The real transaction will be handled by the backend using test headers\n */\n async runTransaction(evmTransactionData, solTransactionData, options) {\n const address = getPlatform().sessionStorage.getItem('test-user-address') || DEFAULT_TEST_ADDRESS;\n // Generate a fake transaction signature\n const fakeSignature = `mock_tx_${Math.random().toString(36).substring(2, 15)}`;\n console.log('[MockAuth] Mock transaction executed:', {\n address,\n signature: fakeSignature,\n evmTx: evmTransactionData,\n solTx: solTransactionData\n });\n return {\n transactionSignature: fakeSignature,\n signedTransaction: fakeSignature,\n blockNumber: 0,\n gasUsed: '0'\n };\n }\n /**\n * Mock message signing\n */\n async signMessage(message) {\n const address = getPlatform().sessionStorage.getItem('test-user-address') || DEFAULT_TEST_ADDRESS;\n // Generate a fake signature\n const fakeSignature = `mock_sig_${Math.random().toString(36).substring(2, 15)}`;\n console.log('[MockAuth] Mock message signed:', {\n address,\n message,\n signature: fakeSignature\n });\n return fakeSignature;\n }\n async signMessageMock(message) {\n const address = getPlatform().sessionStorage.getItem('test-user-address') || DEFAULT_TEST_ADDRESS;\n // Generate a fake signature\n const fakeSignature = `mock_sig_${Math.random().toString(36).substring(2, 15)}`;\n console.log('[MockAuth] Mock message signed:', {\n address,\n message,\n signature: fakeSignature\n });\n return fakeSignature;\n }\n /**\n * Mock transaction signing - returns the transaction as-is (no actual signing)\n */\n async signTransaction(transaction) {\n console.log('[MockAuth] Mock transaction signing (no-op)');\n return transaction;\n }\n /**\n * Sign and submit transaction - not supported in mock environment.\n * See the real providers (PhantomWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n throw new Error('signAndSubmitTransaction is not supported in the mock environment');\n }\n /**\n * Restore session - only restores if user previously called login() explicitly.\n * This prevents auto-login on first page load, but allows session persistence after login.\n */\n async restoreSession() {\n const explicitlyLoggedIn = getPlatform().sessionStorage.getItem(EXPLICIT_LOGIN_KEY);\n if (!explicitlyLoggedIn) {\n console.log('[MockAuth] No explicit login found. Call login() to authenticate.');\n return null;\n }\n const address = getPlatform().sessionStorage.getItem('test-user-address');\n if (!address) {\n console.log('[MockAuth] No previous session found');\n return null;\n }\n console.log('[MockAuth] Session restored:', address);\n return {\n address,\n provider: this\n };\n }\n /**\n * Mock logout - clears test user from session storage\n */\n async logout() {\n getPlatform().sessionStorage.removeItem('test-user-address');\n getPlatform().sessionStorage.removeItem('test-user-id');\n getPlatform().sessionStorage.removeItem(EXPLICIT_LOGIN_KEY);\n console.log('[MockAuth] Mock logout successful');\n }\n /**\n * Get native wallet methods (not needed for mock auth)\n */\n async getNativeMethods() {\n return {\n // Return empty object - no native methods needed for mock auth\n };\n }\n}\n","import { getPlatform } from \"../../platform\";\n/**\n * OffchainAuthProvider wraps a real auth provider (e.g., Phantom) for the poofnet environment.\n *\n * For signMessageMock, this shows a custom confirmation modal and generates a mock signature.\n * This is used for offchain transaction signing. For real wallet signing, use signMessage\n * which delegates to the wrapped provider.\n */\nexport class OffchainAuthProvider {\n constructor(wrappedProvider, config = {}) {\n this.modalContainer = null;\n this.wrappedProvider = wrappedProvider;\n this.config = config;\n }\n // ============ Delegated Methods ============\n async login() {\n const user = await this.wrappedProvider.login();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n async logout() {\n await this.wrappedProvider.logout();\n }\n async restoreSession() {\n const user = await this.wrappedProvider.restoreSession();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n async runTransaction(evmTransactionData, solTransactionData, options) {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n async signTransaction(tx) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n async getNativeMethods() {\n return this.wrappedProvider.getNativeMethods();\n }\n // ============ signMessage delegates to wrapped provider ============\n async signMessage(message) {\n // Delegate to wrapped provider for real wallet signing\n return this.wrappedProvider.signMessage(message);\n }\n // ============ Mock signMessage with Custom Modal for Offchain Transactions ============\n async signMessageMock(message) {\n var _a, _b, _c, _d, _e, _f;\n // Callback: signing started\n (_b = (_a = this.config).onSigningStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n try {\n // On RN (no DOM), auto-confirm — there's no modal to show.\n // On web, show the confirmation modal.\n if (getPlatform().hasDOM) {\n const confirmed = await this.showTransactionModal(message);\n if (!confirmed) {\n throw new Error(\"Transaction rejected by user\");\n }\n }\n // Generate mock signature (hash of message)\n const signature = await this.generateMockSignature(message);\n // Callback: signing complete\n (_d = (_c = this.config).onSigningComplete) === null || _d === void 0 ? void 0 : _d.call(_c, signature);\n return signature;\n }\n catch (error) {\n // Callback: signing error\n (_f = (_e = this.config).onSigningError) === null || _f === void 0 ? void 0 : _f.call(_e, error);\n throw error;\n }\n }\n // ============ Modal Implementation ============\n async showUnsupportedTransactionModal() {\n return new Promise((resolve) => {\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-unsupported-modal\";\n this.modalContainer.innerHTML = this.getUnsupportedModalHTML();\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle cancel button\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve();\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve();\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n getUnsupportedModalHTML() {\n return `\n <div class=\"poofnet-modal-overlay\">\n <div class=\"poofnet-modal-content\">\n <button id=\"poofnet-close-btn\" class=\"poofnet-close-btn\" aria-label=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1L13 13M1 13L13 1\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </button>\n <div class=\"poofnet-modal-header\">\n <div class=\"poofnet-modal-icon\">⚠️</div>\n <h2 class=\"poofnet-modal-title\">Transaction Not Supported</h2>\n <p class=\"poofnet-modal-subtitle\">Poofnet Simulated Blockchain</p>\n </div>\n\n <div class=\"poofnet-modal-body\">\n <div class=\"poofnet-info-box\" style=\"background: #fef3c7;\">\n <span class=\"poofnet-info-icon\">ℹ️</span>\n <span class=\"poofnet-info-text\" style=\"color: #92400e;\">\n Poofnet is a simulated blockchain and does not support real Solana transactions.\n Deploy your project to mainnet to test real transactions.\n </span>\n </div>\n </div>\n\n <div class=\"poofnet-modal-footer\">\n <button id=\"poofnet-cancel-btn\" class=\"poofnet-btn poofnet-btn-cancel\" style=\"flex: 1;\">Close</button>\n </div>\n </div>\n </div>\n `;\n }\n async showTransactionModal(message) {\n return new Promise((resolve) => {\n // Parse the transaction message for display\n let parsed = {};\n try {\n parsed = JSON.parse(message);\n }\n catch (_a) {\n // If not JSON, just show raw message\n }\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-tx-modal\";\n this.modalContainer.innerHTML = this.getModalHTML(parsed, message);\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert to disable focus traps from other modals\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle confirm\n const confirmBtn = this.modalContainer.querySelector(\"#poofnet-confirm-btn\");\n confirmBtn === null || confirmBtn === void 0 ? void 0 : confirmBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(true);\n });\n // Handle cancel\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve(false);\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve(false);\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n closeModal() {\n if (this.modalContainer) {\n // Remove inert attribute from all elements\n document.body.querySelectorAll(\"[inert]\").forEach((el) => {\n el.removeAttribute(\"inert\");\n });\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n const content = this.modalContainer.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"0\";\n if (content) {\n content.style.opacity = \"0\";\n content.style.transform = \"translateY(20px)\";\n }\n setTimeout(() => {\n var _a;\n (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.remove();\n this.modalContainer = null;\n }, 200);\n }\n }\n /**\n * Escape a value for safe interpolation into an HTML string.\n *\n * Transaction messages are attacker-influenceable (they originate from\n * server responses / app-supplied data), so every value derived from them\n * MUST be escaped before being placed into innerHTML. Without this, a field\n * key/value, path segment, document id, or raw message containing markup\n * such as `<img src=x onerror=...>` would execute in the dApp origin and\n * could exfiltrate the stored session (idToken/refreshToken).\n */\n escapeHtml(value) {\n const str = value === null || value === undefined ? \"\" : String(value);\n return str\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n }\n formatPath(path) {\n const parts = path.split(\"/\").filter(Boolean);\n if (parts.length >= 2) {\n return {\n collection: parts[0],\n documentId: parts[parts.length - 1],\n };\n }\n return { collection: parts[0] || path, documentId: null };\n }\n formatFieldValue(value) {\n if (value === null || value === undefined)\n return \"null\";\n if (typeof value === \"string\") {\n return value.length > 30\n ? `\"${value.slice(0, 30)}...\"`\n : `\"${value}\"`;\n }\n if (typeof value === \"number\" || typeof value === \"boolean\")\n return String(value);\n if (Array.isArray(value))\n return `[${value.length} items]`;\n if (typeof value === \"object\")\n return `{${Object.keys(value).length} fields}`;\n return String(value);\n }\n getActionDescription(type, collection, isNew) {\n if (type === \"delete\")\n return `Delete from ${collection}`;\n return isNew ? `Create in ${collection}` : `Update ${collection}`;\n }\n getModalHTML(parsed, rawMessage) {\n const instructions = parsed.instructions || [];\n // Group instructions by type for summary\n const sets = instructions.filter((i) => i.type === \"set\");\n const deletes = instructions.filter((i) => i.type === \"delete\");\n const instructionsList = instructions\n .map((inst) => {\n const { collection, documentId } = this.formatPath(inst.path);\n const isDelete = inst.type === \"delete\";\n const icon = isDelete ? \"🗑️\" : \"✏️\";\n const actionClass = isDelete\n ? \"poofnet-action-delete\"\n : \"poofnet-action-set\";\n // Format data fields for display\n let fieldsHtml = \"\";\n if (inst.data && !isDelete) {\n const fields = Object.entries(inst.data)\n .filter(([key]) => !key.startsWith(\"_\")) // Hide internal fields\n .slice(0, 4);\n if (fields.length > 0) {\n fieldsHtml = `\n <div class=\"poofnet-fields\">\n ${fields\n .map(([key, value]) => `\n <div class=\"poofnet-field\">\n <span class=\"poofnet-field-key\">${this.escapeHtml(key)}:</span>\n <span class=\"poofnet-field-value\">${this.escapeHtml(this.formatFieldValue(value))}</span>\n </div>\n `)\n .join(\"\")}\n ${Object.keys(inst.data).filter((k) => !k.startsWith(\"_\"))\n .length > 4\n ? `<div class=\"poofnet-field-more\">+${Object.keys(inst.data).filter((k) => !k.startsWith(\"_\")).length - 4} more fields</div>`\n : \"\"}\n </div>\n `;\n }\n }\n return `\n <div class=\"poofnet-instruction ${actionClass}\">\n <div class=\"poofnet-instruction-header\">\n <span class=\"poofnet-instruction-icon\">${icon}</span>\n <span class=\"poofnet-instruction-action\">${isDelete ? \"Delete\" : \"Save\"}</span>\n <span class=\"poofnet-instruction-collection\">${this.escapeHtml(collection)}</span>\n </div>\n ${documentId\n ? `<div class=\"poofnet-instruction-id\">ID: ${this.escapeHtml(documentId)}</div>`\n : \"\"}\n ${fieldsHtml}\n </div>\n `;\n })\n .join(\"\");\n // Create summary text\n let summaryText = \"\";\n if (sets.length > 0 && deletes.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}, ${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n else if (sets.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}`;\n }\n else if (deletes.length > 0) {\n summaryText = `${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n return `\n <div class=\"poofnet-modal-overlay\">\n <div class=\"poofnet-modal-content\">\n <button id=\"poofnet-close-btn\" class=\"poofnet-close-btn\" aria-label=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1L13 13M1 13L13 1\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </button>\n <div class=\"poofnet-modal-header\">\n <div class=\"poofnet-modal-icon\">🔐</div>\n <h2 class=\"poofnet-modal-title\">Confirm Transaction</h2>\n <p class=\"poofnet-modal-subtitle\">Poofnet Simulated Blockchain</p>\n </div>\n\n <div class=\"poofnet-modal-body\">\n ${instructions.length > 0\n ? `\n ${summaryText\n ? `<div class=\"poofnet-summary\">${summaryText}</div>`\n : \"\"}\n <div class=\"poofnet-instructions-list\">\n ${instructionsList}\n </div>\n `\n : `\n <div class=\"poofnet-section\">\n <h3 class=\"poofnet-section-title\">Message</h3>\n <pre class=\"poofnet-raw-message\">${this.escapeHtml(rawMessage.slice(0, 200))}${rawMessage.length > 200 ? \"...\" : \"\"}</pre>\n </div>\n `}\n\n <div class=\"poofnet-info-box\">\n <span class=\"poofnet-info-icon\">ℹ️</span>\n <span class=\"poofnet-info-text\">This is a simulated transaction. No real fees will be charged.</span>\n </div>\n </div>\n\n <div class=\"poofnet-modal-footer\">\n <button id=\"poofnet-cancel-btn\" class=\"poofnet-btn poofnet-btn-cancel\">Cancel</button>\n <button id=\"poofnet-confirm-btn\" class=\"poofnet-btn poofnet-btn-confirm\">Confirm</button>\n </div>\n </div>\n </div>\n `;\n }\n getModalStyles() {\n return `\n /* Ensure inert elements remain visible while being non-interactive */\n [inert] {\n visibility: visible !important;\n opacity: 1 !important;\n display: unset !important;\n }\n\n .poofnet-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 999999;\n opacity: 0;\n transition: opacity 0.2s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .poofnet-modal-content {\n background: white;\n border-radius: 16px;\n width: 90%;\n max-width: 420px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n opacity: 0;\n transform: translateY(20px);\n transition: all 0.2s ease;\n max-height: 90vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n }\n\n .poofnet-close-btn {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 28px;\n height: 28px;\n border: none;\n background: #f3f4f6;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.15s ease;\n z-index: 1;\n }\n\n .poofnet-close-btn:hover {\n background: #e5e7eb;\n color: #374151;\n }\n\n .poofnet-modal-header {\n padding: 24px 24px 16px;\n text-align: center;\n border-bottom: 1px solid #f0f0f0;\n flex-shrink: 0;\n }\n\n .poofnet-modal-icon {\n font-size: 40px;\n margin-bottom: 8px;\n }\n\n .poofnet-modal-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1a1a1a;\n }\n\n .poofnet-modal-subtitle {\n margin: 4px 0 0;\n font-size: 13px;\n color: #8b5cf6;\n font-weight: 500;\n }\n\n .poofnet-modal-body {\n padding: 16px 20px;\n overflow-y: auto;\n flex: 1;\n }\n\n .poofnet-summary {\n font-size: 13px;\n color: #6b7280;\n margin-bottom: 12px;\n text-align: center;\n }\n\n .poofnet-section {\n margin-bottom: 16px;\n }\n\n .poofnet-section-title {\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 8px;\n }\n\n .poofnet-instructions-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .poofnet-instruction {\n background: #f9fafb;\n border-radius: 10px;\n padding: 12px;\n border-left: 3px solid #8b5cf6;\n }\n\n .poofnet-instruction.poofnet-action-delete {\n border-left-color: #ef4444;\n }\n\n .poofnet-instruction-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .poofnet-instruction-icon {\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .poofnet-instruction-action {\n font-size: 13px;\n font-weight: 600;\n color: #8b5cf6;\n }\n\n .poofnet-action-delete .poofnet-instruction-action {\n color: #ef4444;\n }\n\n .poofnet-instruction-collection {\n font-size: 13px;\n font-weight: 500;\n color: #374151;\n }\n\n .poofnet-instruction-id {\n font-size: 11px;\n color: #9ca3af;\n font-family: monospace;\n margin-bottom: 8px;\n word-break: break-all;\n }\n\n .poofnet-fields {\n background: white;\n border-radius: 6px;\n padding: 8px 10px;\n margin-top: 8px;\n }\n\n .poofnet-field {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n border-bottom: 1px solid #f3f4f6;\n }\n\n .poofnet-field:last-child {\n border-bottom: none;\n }\n\n .poofnet-field-key {\n color: #6b7280;\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .poofnet-field-value {\n color: #374151;\n word-break: break-all;\n }\n\n .poofnet-field-more {\n font-size: 11px;\n color: #9ca3af;\n padding-top: 4px;\n font-style: italic;\n }\n\n .poofnet-raw-message {\n background: #f9fafb;\n border-radius: 8px;\n padding: 12px;\n font-size: 11px;\n font-family: monospace;\n color: #4b5563;\n white-space: pre-wrap;\n word-break: break-all;\n margin: 0;\n max-height: 120px;\n overflow-y: auto;\n }\n\n .poofnet-info-box {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #faf5ff;\n border-radius: 8px;\n padding: 10px 12px;\n margin-top: 12px;\n }\n\n .poofnet-info-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .poofnet-info-text {\n font-size: 11px;\n color: #7c3aed;\n line-height: 1.4;\n }\n\n .poofnet-modal-footer {\n padding: 16px 20px 20px;\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n border-top: 1px solid #f0f0f0;\n }\n\n .poofnet-btn {\n flex: 1;\n padding: 12px 16px;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n border: none;\n }\n\n .poofnet-btn-cancel {\n background: #f3f4f6;\n color: #4b5563;\n }\n\n .poofnet-btn-cancel:hover {\n background: #e5e7eb;\n }\n\n .poofnet-btn-confirm {\n background: #8b5cf6;\n color: white;\n }\n\n .poofnet-btn-confirm:hover {\n background: #7c3aed;\n }\n `;\n }\n async generateMockSignature(message) {\n // Generate a deterministic signature using SHA-256 hash of message\n // This can be verified on the backend by hashing the same message\n const platform = getPlatform();\n const data = platform.textEncode(message);\n const hashBuffer = await platform.sha256(data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const base64 = platform.btoa(String.fromCharCode(...hashArray));\n return base64;\n }\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Find code of next character\n var charCode = source.charCodeAt(psz)\n // Base map can not be indexed using char code\n if (charCode > 255) { return }\n // Decode character\n var carry = BASE_MAP[charCode]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","import basex from 'base-x';\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport default basex(ALPHABET);\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","// guest-keystore.ts — durable per-device keypair for anonymous (\"guest\") auth.\n//\n// A guest is an ed25519 keypair generated on the device. Its public key is the\n// Bounded account address; it signs the auth challenge exactly like a wallet.\n//\n// Two backends, chosen automatically:\n// 1. WebCrypto Ed25519 + IndexedDB (browsers that support it) — the key is\n// NON-EXTRACTABLE: an XSS can ask it to *sign* but can never read the\n// private bytes. This is the secure default.\n// 2. tweetnacl keypair in platform storage (React Native / older browsers) —\n// the secret is stored as bytes. Simpler, but exfiltratable by XSS, so\n// treat it as a low-stakes guest identity and tell users to upgrade\n// (link an email) before they care about not losing it.\n//\n// Either way the public output is identical: a base58 address + a base64\n// detached signature, which is the format the session endpoint already accepts.\nimport bs58 from 'bs58';\nimport { Keypair } from '@solana/web3.js';\nimport nacl from 'tweetnacl';\nimport { getPlatform } from '../../platform';\nconst FALLBACK_STORE_KEY = 'bounded_guest_key_v1';\nconst IDB_NAME = 'bounded-guest';\nconst IDB_STORE = 'keys';\nconst IDB_KEY = 'ed25519';\nfunction toBase64(bytes) {\n let bin = '';\n for (let i = 0; i < bytes.length; i++)\n bin += String.fromCharCode(bytes[i]);\n // btoa exists in browsers + RN (Hermes) ; Buffer is the Node/SSR fallback.\n return typeof btoa !== 'undefined' ? btoa(bin) : Buffer.from(bytes).toString('base64');\n}\n// ----- WebCrypto (non-extractable) backend -----------------------------------\nfunction subtle() {\n const c = globalThis === null || globalThis === void 0 ? void 0 : globalThis.crypto;\n return c && c.subtle ? c.subtle : null;\n}\nfunction idb() {\n return new Promise((resolve, reject) => {\n const req = globalThis.indexedDB.open(IDB_NAME, 1);\n req.onupgradeneeded = () => req.result.createObjectStore(IDB_STORE);\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n}\nfunction idbGet(db, key) {\n return new Promise((resolve, reject) => {\n const r = db.transaction(IDB_STORE, 'readonly').objectStore(IDB_STORE).get(key);\n r.onsuccess = () => resolve(r.result);\n r.onerror = () => reject(r.error);\n });\n}\nfunction idbPut(db, key, val) {\n return new Promise((resolve, reject) => {\n const r = db.transaction(IDB_STORE, 'readwrite').objectStore(IDB_STORE).put(val, key);\n r.onsuccess = () => resolve();\n r.onerror = () => reject(r.error);\n });\n}\nasync function tryWebCrypto() {\n const s = subtle();\n if (!s || typeof globalThis.indexedDB === 'undefined')\n return null;\n try {\n const db = await idb();\n let pair = (await idbGet(db, IDB_KEY));\n if (!pair) {\n // Probe Ed25519 support by generating (throws on unsupported engines).\n pair = (await s.generateKey({ name: 'Ed25519' }, /* extractable */ false, [\n 'sign',\n 'verify',\n ]));\n await idbPut(db, IDB_KEY, pair); // CryptoKey is structured-cloneable; bytes never exposed\n }\n const raw = new Uint8Array(await s.exportKey('raw', pair.publicKey)); // public is exportable\n const address = bs58.encode(raw);\n return {\n address,\n nonExtractable: true,\n async sign(message) {\n const data = new TextEncoder().encode(message);\n const sig = new Uint8Array(await s.sign({ name: 'Ed25519' }, pair.privateKey, data));\n return toBase64(sig);\n },\n };\n }\n catch (_a) {\n return null; // engine lacks Ed25519 / IndexedDB blocked → fall back\n }\n}\n// ----- tweetnacl (stored-secret) fallback ------------------------------------\nfunction fallbackKey() {\n const store = getPlatform().storage;\n let secret;\n const saved = store.getItem(FALLBACK_STORE_KEY);\n if (saved) {\n secret = bs58.decode(saved);\n }\n else {\n const kp = Keypair.generate();\n secret = kp.secretKey; // 64 bytes\n store.setItem(FALLBACK_STORE_KEY, bs58.encode(secret));\n }\n const kp = Keypair.fromSecretKey(secret);\n const address = kp.publicKey.toBase58();\n return {\n address,\n nonExtractable: false,\n async sign(message) {\n const data = new TextEncoder().encode(message);\n const sig = nacl.sign.detached(data, secret);\n return toBase64(sig);\n },\n };\n}\nlet cached = null;\n/** Get (or create) this device's durable guest key. */\nexport async function getGuestKey() {\n var _a;\n if (cached)\n return cached;\n cached = (_a = (await tryWebCrypto())) !== null && _a !== void 0 ? _a : fallbackKey();\n return cached;\n}\n/** Forget the guest key on this device (a fresh signInAnonymously mints a new one). */\nexport async function clearGuestKey() {\n cached = null;\n try {\n getPlatform().storage.removeItem(FALLBACK_STORE_KEY);\n }\n catch (_a) { }\n try {\n if (typeof globalThis.indexedDB !== 'undefined') {\n const db = await idb();\n await new Promise((res) => {\n const r = db.transaction(IDB_STORE, 'readwrite').objectStore(IDB_STORE).delete(IDB_KEY);\n r.onsuccess = () => res();\n r.onerror = () => res();\n });\n }\n }\n catch (_b) { }\n}\n","import { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getGuestKey, clearGuestKey } from './guest-keystore';\nconst GUEST_TX_UNSUPPORTED = 'Guest (anonymous) auth is offchain-only — it cannot sign or submit Solana transactions. ' +\n 'Use a wallet provider for onchain actions.';\nexport class GuestAuthProvider {\n async login() {\n setAuthLoading(true);\n try {\n const key = await getGuestKey();\n // Reuse a still-valid session for this exact guest.\n const existing = await SessionManager().getSession();\n if (existing && existing.address === key.address) {\n const user = { address: key.address, isAnonymous: true, provider: this };\n setCurrentUser(user);\n return user;\n }\n // Mint a fresh session: nonce -> canonical message -> local signature.\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(key.address, nonce);\n const signature = await key.sign(message); // base64 detached ed25519\n const result = await createSessionWithSignature(key.address, message, signature);\n await SessionManager().storeSession(key.address, result.accessToken, result.idToken, result.refreshToken);\n const user = { address: key.address, isAnonymous: true, provider: this };\n setCurrentUser(user);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (!session)\n return null;\n const user = { address: session.address, isAnonymous: true, provider: this };\n setCurrentUser(user);\n return user;\n }\n async logout() {\n // Clears the SESSION but keeps the device key, so logging back in returns the\n // SAME guest identity (and its data). Use forgetGuest() to wipe the key too.\n SessionManager().clearSession();\n setCurrentUser(null);\n }\n /** Wipe the device key — the next login() is a brand-new guest identity. */\n async forgetGuest() {\n SessionManager().clearSession();\n await clearGuestKey();\n setCurrentUser(null);\n }\n async signMessage(message) {\n const key = await getGuestKey();\n return key.sign(message);\n }\n // --- offchain guest: no Solana transaction surface -------------------------\n async runTransaction(_evm, _sol, _options) {\n throw new Error(GUEST_TX_UNSUPPORTED);\n }\n async signTransaction(_t) {\n throw new Error(GUEST_TX_UNSUPPORTED);\n }\n async signAndSubmitTransaction() {\n throw new Error(GUEST_TX_UNSUPPORTED);\n }\n async getNativeMethods() {\n return {};\n }\n}\n","import { getConfig, getActiveSessionManager, revokeSession } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform } from '../../platform';\n// Web uses localStorage (WebSessionManager); React Native uses the configured\n// ReactNativeSessionManager. getActiveSessionManager() picks the right one by\n// whether the RN manager was configured (NOT `typeof window`, which is truthy on\n// RN too and would wrongly route to localStorage). Same selector the core\n// request path uses, so headless email OTP persists + authenticates on BOTH.\nconst sessionManager = getActiveSessionManager;\nconst NO_WALLET = 'Email login is offchain — it has no Solana wallet and cannot sign/submit ' +\n 'transactions. Use a wallet provider for onchain actions, or link a wallet later.';\n// ---------------------------------------------------------------------------\n// token / session helpers\n// ---------------------------------------------------------------------------\nfunction decodeJwt(token) {\n try {\n let b64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n // getPlatform().atob is RN-safe (global atob is undefined on Hermes/JSC).\n return JSON.parse(getPlatform().atob(b64));\n }\n catch (_a) {\n return {};\n }\n}\nfunction userFromIdToken(idToken, fallbackEmail) {\n const c = decodeJwt(idToken);\n const id = c['custom:userId'] || c.sub || c['custom:walletAddress'] || '';\n const email = (c.email || fallbackEmail || null);\n // Email logins have no wallet — address is null (the User type allows it).\n return { id, address: (c['custom:walletAddress'] || null), email, provider: emailProviderSingleton };\n}\nasync function humanAuthBase() {\n const cfg = await getConfig();\n const base = cfg.humanAuthApiUrl || 'https://auth.bounded.sh';\n return base.replace(/\\/$/, '');\n}\nasync function post(path, body) {\n const base = await humanAuthBase();\n let res;\n try {\n // Credential-free + no custom header: /email and /verify are open-CORS\n // (ACAO:*) public OTP routes, so this works inline from ANY app origin (no\n // popup, no redirect). The OTP is the body secret; the token returns in the\n // body. Adding credentials or a custom header would break the open-CORS\n // preflight — keep this a simple JSON POST.\n res = await fetch(base + path, {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: JSON.stringify(body),\n });\n }\n catch (err) {\n throw new Error(`Bounded auth request to ${path} failed: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);\n }\n let data = null;\n try {\n data = await res.json();\n }\n catch ( /* non-JSON */_a) { /* non-JSON */ }\n if (!res.ok) {\n const msg = (data && (data.error || data.message)) || `HTTP ${res.status}`;\n throw new Error(String(msg));\n }\n return data || {};\n}\n// ---------------------------------------------------------------------------\n// headless primitives (used by the modal AND exported for custom UIs)\n// ---------------------------------------------------------------------------\n/** Send a login code to `email`. Step 1 of the inline email-OTP flow. */\nexport async function sendEmailOtp(email) {\n const cfg = await getConfig();\n const e = (email || '').trim().toLowerCase();\n if (!e)\n throw new Error('email is required');\n const data = await post('/email', { email: e, appId: cfg.appId });\n return { ok: true, expiresInSeconds: data === null || data === void 0 ? void 0 : data.expiresInSeconds };\n}\n/**\n * Verify the code for `email` and establish the session. Step 2 of the flow.\n * Stores the Bounded id token (the realtime bearer) and sets the current user.\n */\nexport async function verifyEmailOtp(email, otp) {\n setAuthLoading(true);\n try {\n const cfg = await getConfig();\n const e = (email || '').trim().toLowerCase();\n const code = (otp || '').trim();\n if (!e || !code)\n throw new Error('email and code are required');\n const data = await post('/verify', { email: e, appId: cfg.appId, otp: code });\n const idToken = data === null || data === void 0 ? void 0 : data.idToken;\n if (!idToken)\n throw new Error('No token returned from verification.');\n const user = userFromIdToken(idToken, e);\n // Store the idToken as BOTH id + access (it is the JWT the realtime worker\n // verifies and carries `exp`, so the session-manager expiry check works).\n // address is \"\" for email (no wallet); the realtime bearer is the idToken.\n // Persist the rotating refresh token + the issuer base (humanAuthApiUrl) so the\n // session manager can silently renew via {issuer}/session/refresh — sessions now\n // live as long as the 30d refresh token instead of dying at the access TTL.\n const refreshToken = typeof (data === null || data === void 0 ? void 0 : data.refreshToken) === 'string' ? data.refreshToken : '';\n const issuer = (cfg.humanAuthApiUrl || '').replace(/\\/$/, '');\n await sessionManager().storeSession(String(user.address || ''), idToken, idToken, refreshToken, issuer);\n setCurrentUser(user);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n}\n/**\n * UPGRADE an anonymous (guest) session by LINKING an email credential — Firebase\n * `linkWithCredential` parity. The guest's `guestToken` is sent to the auth issuer\n * which, IF the email is brand-new, makes the new account ADOPT the guest's id so\n * `@user.id` is preserved and the guest's data carries over. If the email already\n * exists, the user just signs into it (stays separate; `linked:false`). On success\n * the upgraded session replaces the guest session and the user is no longer\n * anonymous. `guestToken` is captured by the caller BEFORE switching auth methods.\n */\nexport async function linkEmailWithGuest(email, otp, guestToken) {\n var _a;\n setAuthLoading(true);\n try {\n const cfg = await getConfig();\n const e = (email || '').trim().toLowerCase();\n const code = (otp || '').trim();\n if (!e || !code)\n throw new Error('email and code are required');\n if (!guestToken)\n throw new Error('an active anonymous session is required to link an email');\n // Capture the OLD guest session's refresh token + issuer BEFORE it's overwritten,\n // so we can revoke the guest refresh family after the upgrade. Otherwise a stolen\n // guest refresh token would keep minting access to the now-upgraded identity.\n const oldRefreshToken = sessionManager().getRefreshToken();\n const oldIssuer = (_a = sessionManager().getIssuer()) !== null && _a !== void 0 ? _a : undefined;\n const data = await post('/link/email', { email: e, appId: cfg.appId, otp: code, guestToken });\n const idToken = data === null || data === void 0 ? void 0 : data.idToken;\n if (!idToken)\n throw new Error('No token returned from link.');\n const user = userFromIdToken(idToken, e);\n // Persist the REAL rotating refresh token + human issuer so the upgraded session\n // silently renews (was previously stored as '' -> upgraded users couldn't refresh).\n const refreshToken = typeof (data === null || data === void 0 ? void 0 : data.refreshToken) === 'string' ? data.refreshToken : '';\n const issuer = (cfg.humanAuthApiUrl || '').replace(/\\/$/, '');\n await sessionManager().storeSession(String(user.address || ''), idToken, idToken, refreshToken, issuer);\n setCurrentUser(user);\n // Best-effort revoke of the old guest refresh family (upgrade is already committed;\n // a revoke failure must not break the new session).\n if (oldRefreshToken && oldRefreshToken !== refreshToken) {\n try {\n await revokeSession(oldRefreshToken, oldIssuer);\n }\n catch ( /* best-effort */_b) { /* best-effort */ }\n }\n return { user, linked: !!(data === null || data === void 0 ? void 0 : data.linked), isNewAccount: !!(data === null || data === void 0 ? void 0 : data.isNewAccount) };\n }\n finally {\n setAuthLoading(false);\n }\n}\n// ---------------------------------------------------------------------------\n// provider\n// ---------------------------------------------------------------------------\nexport class EmailAuthProvider {\n async login() {\n if (!getPlatform().hasDOM) {\n throw new Error('Email login on this platform (e.g. React Native) is headless: call ' +\n \"sendEmailOtp(email) then verifyEmailOtp(email, code) and render your own \" +\n 'email + code inputs. The built-in modal is web-only.');\n }\n return openEmailModal();\n }\n async restoreSession() {\n const sm = sessionManager();\n const session = await sm.getSession();\n if (!session)\n return null;\n const idToken = sm.getIdToken();\n if (!idToken)\n return null;\n const user = userFromIdToken(idToken);\n setCurrentUser(user);\n return user;\n }\n async logout() {\n sessionManager().clearSession();\n setCurrentUser(null);\n }\n async signMessage(_message) { throw new Error(NO_WALLET); }\n async runTransaction(_evm, _sol, _options) { throw new Error(NO_WALLET); }\n async signTransaction(_t) { throw new Error(NO_WALLET); }\n async signAndSubmitTransaction() { throw new Error(NO_WALLET); }\n async getNativeMethods() { return {}; }\n}\nconst emailProviderSingleton = new EmailAuthProvider();\nexport { emailProviderSingleton };\n// ---------------------------------------------------------------------------\n// inline modal (web only) — mobile-first, no popup, no redirect\n// ---------------------------------------------------------------------------\nfunction openEmailModal() {\n return new Promise((resolve) => {\n var _a;\n const root = document.createElement('div');\n root.id = 'bounded-auth-modal';\n root.innerHTML = MODAL_HTML;\n const style = document.createElement('style');\n style.textContent = MODAL_CSS;\n root.appendChild(style);\n document.body.appendChild(root);\n const $ = (id) => root.querySelector('#' + id);\n const emailStep = $('ba-email-step');\n const otpStep = $('ba-otp-step');\n const emailInput = $('ba-email');\n const otpInput = $('ba-otp');\n const sentTo = $('ba-sent-to');\n const msg = $('ba-msg');\n const emailBtn = $('ba-email-btn');\n const otpBtn = $('ba-otp-btn');\n let email = '';\n let done = false;\n const setMsg = (t, err = false) => { msg.textContent = t; msg.className = 'ba-msg' + (err ? ' err' : ''); };\n const close = (user) => {\n var _a;\n if (done)\n return;\n done = true;\n document.removeEventListener('keydown', onEsc);\n (_a = root.querySelector('.ba-overlay')) === null || _a === void 0 ? void 0 : _a.classList.add('out');\n setTimeout(() => root.remove(), 160);\n resolve(user);\n };\n const onEsc = (e) => { if (e.key === 'Escape')\n close(null); };\n document.addEventListener('keydown', onEsc);\n (_a = root.querySelector('.ba-overlay')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', (e) => {\n if (e.target.classList.contains('ba-overlay'))\n close(null);\n });\n $('ba-close').addEventListener('click', () => close(null));\n requestAnimationFrame(() => emailInput.focus());\n emailBtn.addEventListener('click', async () => {\n email = emailInput.value.trim();\n if (!/^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$/.test(email)) {\n setMsg('Enter a valid email.', true);\n return;\n }\n emailBtn.disabled = true;\n setMsg('Sending code…');\n try {\n await sendEmailOtp(email);\n sentTo.textContent = email;\n emailStep.classList.add('hidden');\n otpStep.classList.remove('hidden');\n setMsg('');\n otpInput.focus();\n }\n catch (err) {\n setMsg((err === null || err === void 0 ? void 0 : err.message) || 'Could not send the code.', true);\n }\n finally {\n emailBtn.disabled = false;\n }\n });\n emailInput.addEventListener('keydown', (e) => { if (e.key === 'Enter')\n emailBtn.click(); });\n otpBtn.addEventListener('click', async () => {\n const code = otpInput.value.trim();\n if (!/^\\d{4,8}$/.test(code)) {\n setMsg('Enter the code from your email.', true);\n return;\n }\n otpBtn.disabled = true;\n setMsg('Verifying…');\n try {\n const user = await verifyEmailOtp(email, code);\n close(user);\n }\n catch (err) {\n setMsg((err === null || err === void 0 ? void 0 : err.message) || 'That code did not work.', true);\n otpBtn.disabled = false;\n }\n });\n otpInput.addEventListener('keydown', (e) => { if (e.key === 'Enter')\n otpBtn.click(); });\n $('ba-back').addEventListener('click', () => {\n otpStep.classList.add('hidden');\n emailStep.classList.remove('hidden');\n setMsg('');\n emailInput.focus();\n });\n });\n}\nconst MODAL_HTML = `\n<div class=\"ba-overlay\">\n <div class=\"ba-card\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Sign in\">\n <button id=\"ba-close\" class=\"ba-x\" aria-label=\"Close\">×</button>\n <div class=\"ba-brand\"><span class=\"ba-dot\"></span> Sign in</div>\n <div id=\"ba-email-step\">\n <label class=\"ba-label\" for=\"ba-email\">Email</label>\n <input id=\"ba-email\" class=\"ba-input\" type=\"email\" inputmode=\"email\" autocomplete=\"email\" placeholder=\"you@example.com\" />\n <button id=\"ba-email-btn\" class=\"ba-btn\">Continue</button>\n </div>\n <div id=\"ba-otp-step\" class=\"hidden\">\n <label class=\"ba-label\" for=\"ba-otp\">Enter the code sent to <span id=\"ba-sent-to\" class=\"ba-em\"></span></label>\n <input id=\"ba-otp\" class=\"ba-input ba-code\" inputmode=\"numeric\" autocomplete=\"one-time-code\" maxlength=\"8\" placeholder=\"······\" />\n <button id=\"ba-otp-btn\" class=\"ba-btn\">Verify & continue</button>\n <button id=\"ba-back\" class=\"ba-link\">Use a different email</button>\n </div>\n <div id=\"ba-msg\" class=\"ba-msg\"></div>\n <div class=\"ba-foot\">Secured by Bounded</div>\n </div>\n</div>`;\nconst MODAL_CSS = `\n#bounded-auth-modal .ba-overlay{position:fixed;inset:0;background:rgba(8,10,18,.62);backdrop-filter:blur(4px);\n display:flex;align-items:center;justify-content:center;z-index:2147483000;opacity:1;transition:opacity .16s ease;\n font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;padding:16px;}\n#bounded-auth-modal .ba-overlay.out{opacity:0;}\n#bounded-auth-modal .ba-card{width:100%;max-width:380px;background:#0f1117;color:#f4f5f7;border:1px solid #232838;\n border-radius:18px;padding:24px 22px 18px;box-shadow:0 24px 70px rgba(0,0,0,.5);position:relative;\n animation:ba-in .18s ease;}\n@keyframes ba-in{from{transform:translateY(10px);opacity:.6}to{transform:translateY(0);opacity:1}}\n#bounded-auth-modal .ba-x{position:absolute;top:12px;right:12px;width:30px;height:30px;border:none;background:#1a1e2b;\n color:#9aa3b2;border-radius:9px;font-size:20px;line-height:1;cursor:pointer;}\n#bounded-auth-modal .ba-x:hover{background:#222838;color:#fff;}\n#bounded-auth-modal .ba-brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin:0 0 18px;}\n#bounded-auth-modal .ba-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#22d3ee);}\n#bounded-auth-modal .ba-label{display:block;font-size:13px;color:#aab2c0;margin:0 0 8px;}\n#bounded-auth-modal .ba-em{color:#fff;font-weight:600;}\n#bounded-auth-modal .ba-input{width:100%;box-sizing:border-box;background:#171b26;border:1px solid #2a3040;color:#fff;\n border-radius:11px;padding:13px 14px;font-size:16px;outline:none;transition:border-color .12s;}\n#bounded-auth-modal .ba-input:focus{border-color:#7c5cff;}\n#bounded-auth-modal .ba-code{letter-spacing:8px;text-align:center;font-size:22px;font-variant-numeric:tabular-nums;}\n#bounded-auth-modal .ba-btn{width:100%;margin-top:12px;background:linear-gradient(135deg,#7c5cff,#5b8cff);color:#fff;\n border:none;border-radius:11px;padding:13px;font-size:15px;font-weight:600;cursor:pointer;transition:filter .12s;}\n#bounded-auth-modal .ba-btn:hover{filter:brightness(1.08);}\n#bounded-auth-modal .ba-btn:disabled{opacity:.6;cursor:default;}\n#bounded-auth-modal .ba-link{width:100%;margin-top:10px;background:none;border:none;color:#8aa0c6;font-size:13px;cursor:pointer;}\n#bounded-auth-modal .ba-link:hover{color:#bcd0f0;}\n#bounded-auth-modal .ba-msg{min-height:18px;margin-top:10px;font-size:13px;color:#8aa0c6;text-align:center;}\n#bounded-auth-modal .ba-msg.err{color:#ff8a8a;}\n#bounded-auth-modal .ba-foot{margin-top:14px;text-align:center;font-size:11px;color:#5a6273;}\n#bounded-auth-modal .hidden{display:none;}\n@media (max-width:480px){#bounded-auth-modal .ba-card{max-width:none;border-radius:16px;}}`;\n","import { getConfig, getActiveSessionManager } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading, setAuthProviderInstance } from '../global';\nimport { getPlatform } from '../platform';\nconst PKCE_STORE_KEY = 'bounded.oidc.pkce';\n// Active session store (Web on web, RN on React Native) — selected by config,\n// not by `typeof window` (truthy on RN). OIDC redirect/popup is web-only, but the\n// session it mints is read back through this same selector everywhere.\nconst sessionManager = getActiveSessionManager;\nfunction hasDOM() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction decodeJwt(token) {\n try {\n let b64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return JSON.parse(getPlatform().atob(b64));\n }\n catch (_a) {\n return {};\n }\n}\n// A minimal AuthProvider so getSession()/logout() work for OIDC sessions, mirroring email.\nconst oidcProviderSingleton = {\n async login() {\n const idToken = sessionManager().getIdToken();\n return idToken ? userFromIdToken(idToken) : null;\n },\n async getUser() {\n const idToken = sessionManager().getIdToken();\n return idToken ? userFromIdToken(idToken) : null;\n },\n async logout() { sessionManager().clearSession(); },\n};\nfunction userFromIdToken(idToken) {\n const c = decodeJwt(idToken);\n const id = c['custom:userId'] || c.sub || c['custom:walletAddress'] || '';\n return {\n id, address: (c['custom:walletAddress'] || null),\n email: (c.email || null), provider: oidcProviderSingleton,\n };\n}\nasync function issuerBase() {\n const cfg = await getConfig();\n return (cfg.humanAuthApiUrl || 'https://auth.bounded.sh').replace(/\\/$/, '');\n}\nfunction b64url(buf) {\n let s = '';\n const bytes = new Uint8Array(buf);\n for (let i = 0; i < bytes.length; i++)\n s += String.fromCharCode(bytes[i]);\n return btoa(s).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\nasync function makePkce() {\n const rnd = new Uint8Array(32);\n crypto.getRandomValues(rnd);\n const verifier = b64url(rnd.buffer);\n const digest = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier));\n return { verifier, challenge: b64url(digest) };\n}\nfunction randomState() {\n const rnd = new Uint8Array(16);\n crypto.getRandomValues(rnd);\n return b64url(rnd.buffer);\n}\nasync function buildAuthorizeUrl(redirectUri) {\n const cfg = await getConfig();\n if (!cfg.appId)\n throw new Error('appId is not configured (init the SDK with your appId)');\n const { verifier, challenge } = await makePkce();\n const state = randomState();\n // Stash the verifier + state so the redirect_uri page can finish the exchange. sessionStorage\n // is per-tab and cleared on close — appropriate for a short-lived auth handshake.\n sessionStorage.setItem(PKCE_STORE_KEY, JSON.stringify({ verifier, state, redirectUri }));\n const base = await issuerBase();\n const params = new URLSearchParams({\n client_id: cfg.appId, redirect_uri: redirectUri, response_type: 'code', scope: 'openid profile email',\n code_challenge: challenge, code_challenge_method: 'S256', state,\n });\n return `${base}/api/auth/oauth2/authorize?${params.toString()}`;\n}\n/** Start login: navigate the whole page to the hosted Bounded login. Returns after redirect\n * to `redirectUri?code=...`, where you call completeLoginFromRedirect(). Web only. */\nexport async function loginWithRedirect(opts) {\n if (!hasDOM())\n throw new Error('loginWithRedirect is web-only');\n const url = await buildAuthorizeUrl(opts.redirectUri);\n window.location.href = url;\n}\nconst LINK_GUEST_KEY = 'bounded.link.guest';\n/** UPGRADE the current anonymous (guest) session by linking a SOCIAL/redirect login\n * (e.g. Google) — Firebase `linkWithPopup`/redirect parity. Stashes the guest token,\n * then runs the normal redirect login; `completeLoginFromRedirect()` on the callback\n * page finishes the link automatically (if the social account is brand-new the guest's\n * `@user.id` is preserved, else it stays separate). Requires an active guest session. */\nexport async function linkWithRedirect(opts) {\n if (!hasDOM())\n throw new Error('linkWithRedirect is web-only');\n const guestToken = sessionManager().getIdToken();\n if (!guestToken)\n throw new Error('linkWithRedirect requires an active anonymous session — call signInAnonymously() first.');\n sessionStorage.setItem(LINK_GUEST_KEY, guestToken);\n const url = await buildAuthorizeUrl(opts.redirectUri);\n window.location.href = url;\n}\n// If a guest-link is pending (linkWithRedirect stashed a guest token before this\n// redirect), exchange it + the fresh social token for an UPGRADED token via\n// /link/social and replace the session. Returns the upgraded user, or null if no\n// link was pending / the link failed (in which case the plain social login stands).\nasync function finishGuestLinkIfPending(socialIdToken) {\n if (!hasDOM())\n return null;\n const guestToken = sessionStorage.getItem(LINK_GUEST_KEY);\n if (!guestToken)\n return null;\n sessionStorage.removeItem(LINK_GUEST_KEY);\n try {\n const cfg = await getConfig();\n const base = await issuerBase();\n const res = await fetch(`${base}/link/social`, {\n method: 'POST', headers: { 'content-type': 'application/json' },\n body: JSON.stringify({ appId: cfg.appId, guestToken, socialToken: socialIdToken }),\n });\n const data = await res.json().catch(() => null);\n if (!res.ok || !(data === null || data === void 0 ? void 0 : data.idToken))\n return null; // link failed -> keep the plain social session\n const upgraded = userFromIdToken(data.idToken);\n await sessionManager().storeSession(String(upgraded.address || ''), data.idToken, data.idToken, '');\n setCurrentUser(upgraded);\n return upgraded;\n }\n catch (_a) {\n return null;\n }\n}\n/** Finish login on the redirect_uri page: exchange ?code= for a token (PKCE-verified), store\n * the session, and return the User. Idempotent: returns null if there's no ?code= in the URL. */\nexport async function completeLoginFromRedirect() {\n if (!hasDOM())\n return null;\n const url = new URL(window.location.href);\n const code = url.searchParams.get('code');\n const returnedState = url.searchParams.get('state');\n if (!code)\n return null;\n setAuthLoading(true);\n try {\n const raw = sessionStorage.getItem(PKCE_STORE_KEY);\n if (!raw)\n throw new Error('Missing PKCE state — start login with loginWithRedirect()');\n const pkce = JSON.parse(raw);\n if (!returnedState || returnedState !== pkce.state)\n throw new Error('OAuth state mismatch — possible CSRF; aborting');\n const user = await exchangeCode(code, pkce.verifier, pkce.redirectUri);\n sessionStorage.removeItem(PKCE_STORE_KEY);\n // If this redirect was a guest UPGRADE (linkWithRedirect), finish the link now:\n // swap the fresh social session for one minted under the guest's preserved id.\n const socialIdToken = sessionManager().getIdToken();\n const upgraded = socialIdToken ? await finishGuestLinkIfPending(socialIdToken) : null;\n // Strip code/state from the URL so a reload doesn't re-exchange (codes are single-use anyway).\n url.searchParams.delete('code');\n url.searchParams.delete('state');\n window.history.replaceState({}, document.title, url.pathname + url.search + url.hash);\n return upgraded !== null && upgraded !== void 0 ? upgraded : user;\n }\n finally {\n setAuthLoading(false);\n }\n}\n/** Popup variant: open the hosted login in a popup; resolves with the User once the popup's\n * redirect_uri page posts the code back. The redirect_uri page must call completeLoginInPopup(). */\nexport async function loginWithPopup(opts) {\n if (!hasDOM())\n throw new Error('loginWithPopup is web-only');\n const url = await buildAuthorizeUrl(opts.redirectUri);\n const w = opts.width || 480, h = opts.height || 720;\n const left = window.screenX + (window.outerWidth - w) / 2;\n const top = window.screenY + (window.outerHeight - h) / 2;\n const popup = window.open(url, 'bounded-oidc', `width=${w},height=${h},left=${left},top=${top}`);\n if (!popup)\n throw new Error('Popup blocked — use loginWithRedirect() instead');\n const expectedOrigin = new URL(opts.redirectUri).origin;\n return await new Promise((resolve, reject) => {\n const onMsg = async (ev) => {\n if (ev.origin !== expectedOrigin)\n return; // only trust the redirect_uri origin\n const d = ev.data;\n if (!d || d.type !== 'bounded-oidc-code' || typeof d.code !== 'string')\n return;\n window.removeEventListener('message', onMsg);\n try {\n const raw = sessionStorage.getItem(PKCE_STORE_KEY);\n if (!raw)\n throw new Error('Missing PKCE state');\n const pkce = JSON.parse(raw);\n if (d.state !== pkce.state)\n throw new Error('OAuth state mismatch');\n const user = await exchangeCode(d.code, pkce.verifier, pkce.redirectUri);\n sessionStorage.removeItem(PKCE_STORE_KEY);\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n resolve(user);\n }\n catch (e) {\n reject(e);\n }\n };\n window.addEventListener('message', onMsg);\n const timer = setInterval(() => {\n if (popup.closed) {\n clearInterval(timer);\n window.removeEventListener('message', onMsg);\n reject(new Error('Login window closed'));\n }\n }, 500);\n });\n}\n/** Call this on the redirect_uri page when login was opened via loginWithPopup(): posts the\n * code back to the opener and closes. (For the redirect variant use completeLoginFromRedirect.) */\nexport function completeLoginInPopup(openerOrigin) {\n if (!hasDOM() || !window.opener)\n return;\n const url = new URL(window.location.href);\n const code = url.searchParams.get('code');\n const state = url.searchParams.get('state');\n if (!code)\n return;\n try {\n window.opener.postMessage({ type: 'bounded-oidc-code', code, state }, openerOrigin);\n }\n catch ( /* ignore */_a) { /* ignore */ }\n try {\n window.close();\n }\n catch ( /* ignore */_b) { /* ignore */ }\n}\nasync function exchangeCode(code, verifier, redirectUri) {\n const cfg = await getConfig();\n const base = await issuerBase();\n // OIDC token endpoint: application/x-www-form-urlencoded (the standard). Public client (no\n // secret) authenticated by PKCE. The code is single-use + short-TTL on the server.\n const body = new URLSearchParams({\n grant_type: 'authorization_code', code, redirect_uri: redirectUri,\n client_id: cfg.appId, code_verifier: verifier,\n });\n let res;\n try {\n res = await fetch(`${base}/api/auth/oauth2/token`, {\n method: 'POST', headers: { 'content-type': 'application/x-www-form-urlencoded' }, body: body.toString(),\n });\n }\n catch (err) {\n throw new Error(`Bounded token exchange failed: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);\n }\n let data = null;\n try {\n data = await res.json();\n }\n catch ( /* non-JSON */_a) { /* non-JSON */ }\n if (!res.ok)\n throw new Error(String((data && (data.error_description || data.error || data.message)) || `token HTTP ${res.status}`));\n const idToken = (data === null || data === void 0 ? void 0 : data.id_token) || (data === null || data === void 0 ? void 0 : data.idToken);\n if (!idToken)\n throw new Error('No id_token returned from the token endpoint');\n const user = userFromIdToken(idToken);\n await sessionManager().storeSession(String(user.address || ''), idToken, idToken, '');\n setCurrentUser(user);\n setAuthProviderInstance(oidcProviderSingleton);\n return user;\n}\n","// NOTE: Provider class re-exports have been moved to index.ts (web) and\n// index.native.ts (RN) to avoid eager resolution of web-only dependencies\n// (react-dom) when this module is imported on RN.\nimport { getConfig, WebSessionManager, ReactNativeSessionManager, getActiveSessionManager, revokeSession } from \"@bounded-sh/core\";\n// Web-only providers are lazily imported inside getAuthProvider() to avoid\n// pulling react-dom into the RN bundle.\nimport { MockAuthProvider } from \"./providers/mock-auth-provider\";\nimport { OffchainAuthProvider } from \"./providers/offchain-auth-provider\";\nimport { GuestAuthProvider } from \"./providers/guest-auth-provider\";\n// Email (Bounded Better Auth) is RN-safe to import statically: the DOM modal is\n// only touched inside login() behind a hasDOM guard; the headless send/verify\n// work on web AND React Native. Re-exported below via wrappers that register the\n// auth method (so reload-restore + logout work), mirroring signInAnonymously.\nimport { EmailAuthProvider, sendEmailOtp as emailSend, verifyEmailOtp as emailVerify, linkEmailWithGuest as emailLink } from \"./providers/email-auth-provider\";\nimport { setAuthProviderInstance } from \"../global\";\nimport { getPlatform } from \"../platform\";\nlet currentAuthProvider = null;\nlet currentAuthMethod = null;\nlet initConfig = null;\n// --- localStorage helpers: track which auth method the user last logged in with ---\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\nfunction getStoredAuthMethod() {\n try {\n return getPlatform().storage.getItem(STORED_AUTH_METHOD_KEY);\n }\n catch (_a) {\n return null;\n }\n}\nfunction setStoredAuthMethod(method) {\n try {\n if (method) {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, method);\n }\n else {\n getPlatform().storage.removeItem(STORED_AUTH_METHOD_KEY);\n }\n }\n catch (_a) {\n // storage might not be available\n }\n}\n/**\n * Clears the session if it was created before auth method tracking (legacy session).\n * Returns true if the session was cleared, false if the session is compatible.\n *\n * Dispatches to the correct session manager based on the current auth method\n * so both web (WebSessionManager) and RN (ReactNativeSessionManager) sessions\n * are properly cleared.\n */\nexport function clearIncompatibleSession() {\n if (getStoredAuthMethod() !== null) {\n return false; // Auth method is tracked — session is compatible\n }\n // Legacy session (no stored auth method) — clear it so the user re-authenticates\n // with the correct provider.\n // Clear both managers — on web the RN manager is a no-op (not configured),\n // on RN the web manager is a no-op (no localStorage).\n WebSessionManager.clearSession();\n try {\n ReactNativeSessionManager.clearSession();\n }\n catch ( /* not configured on web */_a) { /* not configured on web */ }\n return true;\n}\n// Lazy loaders for web-only providers.\n// Using dynamic import() ensures Metro (RN) never resolves these modules.\nasync function loadPhantomWalletProvider() {\n const mod = await import(\"./providers/phantom-wallet-provider\");\n return { PhantomWalletProvider: mod.PhantomWalletProvider };\n}\n// Web Privy provider (depends on react-dom + @privy-io/react-auth). Lazy so Metro\n// never bundles it into the RN build — RN uses the @privy-io/expo provider instead.\nasync function loadPrivyWalletProvider() {\n const mod = await import(\"./providers/privy-wallet-provider\");\n return mod.PrivyWalletProvider;\n}\nasync function loadSolanaMobileWalletProvider() {\n const mod = await import(\"./providers/solana-mobile-wallet-provider\");\n return mod.SolanaMobileWalletProvider;\n}\nasync function hotSwapToMWAProvider(config) {\n var _a, _b;\n const rpcUrl = (_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null;\n const SolanaMobileWalletProvider = await loadSolanaMobileWalletProvider();\n const mwaConfig = (_b = config.mobileWalletConfig) !== null && _b !== void 0 ? _b : {\n appIdentity: {\n name: config.name || undefined,\n uri: getPlatform().getLocationOrigin(),\n },\n };\n const mwaProvider = new SolanaMobileWalletProvider(rpcUrl, mwaConfig);\n let provider = mwaProvider;\n if (config.chain === \"offchain\") {\n provider = new OffchainAuthProvider(mwaProvider);\n }\n currentAuthProvider = provider;\n currentAuthMethod = 'mobile-wallet-adapter';\n const coreConfig = await getConfig();\n coreConfig.authProvider = provider;\n // Send 'phantom' as authMethod so the server routes to Solana verification.\n // TODO: change back to 'mobile-wallet-adapter' once the backend is deployed.\n coreConfig.authMethod = 'phantom';\n setAuthProviderInstance(provider);\n return provider;\n}\nexport const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nexport const SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\nexport async function getAuthProvider(config) {\n var _a, _b, _c;\n if (currentAuthProvider) {\n return currentAuthProvider;\n }\n if (!config) {\n throw new Error(\"Config is required to initialize auth provider\");\n }\n initConfig = config;\n // If mockAuth is enabled, use MockAuthProvider regardless of authMethod\n if (config.mockAuth) {\n console.log(\"[MockAuth] Mock authentication enabled\");\n currentAuthProvider = new MockAuthProvider();\n return currentAuthProvider;\n }\n // If the user previously logged in with a specific method, use that instead\n const validAuthMethods = ['email', 'phantom', 'wallet', 'rainbowkit', 'coinbase-smart-wallet', 'onboard', 'mobile-wallet-adapter', 'guest', 'privy', 'privy-expo', 'none'];\n const storedMethod = getStoredAuthMethod();\n const authMethod = (storedMethod && validAuthMethods.includes(storedMethod))\n ? storedMethod\n : (config.authMethod || \"email\");\n if (storedMethod && !validAuthMethods.includes(storedMethod)) {\n // Invalid stored value — clear it\n setStoredAuthMethod(null);\n }\n const rpcUrl = (_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null;\n currentAuthMethod = authMethod;\n // Clear, actionable error when the BROWSER build (`bounded-sh`) is loaded in a\n // non-browser (Node) runtime. The wallet providers below need `window`; without\n // it they throw a cryptic \"PhantomWalletProvider can only be instantiated in a\n // browser environment\" deep in init(). The server build (`bounded-sh/server`)\n // never resolves these methods (it signs with a keypair), so this can't fire for\n // it — it only converts the cryptic browser-in-Node crash into a useful message.\n const browserWalletMethods = ['phantom', 'rainbowkit', 'coinbase-smart-wallet', 'onboard', 'mobile-wallet-adapter', 'privy'];\n if (typeof window === 'undefined' && browserWalletMethods.includes(authMethod)) {\n throw new Error(`bounded-sh: '${authMethod}' auth requires a browser, but no \\`window\\` was found ` +\n `(you're likely running in Node). In server/Node code, import from 'bounded-sh/server' ` +\n `instead of 'bounded-sh' — it signs with a keypair (pass it via createWalletClient({ keypair }), ` +\n `or set BOUNDED_PRIVATE_KEY) and needs no browser.`);\n }\n switch (authMethod) {\n case \"email\":\n // Bounded Better Auth human login (email OTP, inline). The provider\n // renders a web modal for login(); on RN use the headless\n // sendEmailOtp/verifyEmailOtp exports.\n currentAuthProvider = new EmailAuthProvider();\n break;\n case \"wallet\":\n console.warn(\"Wallet auth is not yet supported.\");\n break;\n case \"rainbowkit\":\n console.warn(\"Rainbow Kit auth is not yet supported.\");\n break;\n case \"phantom\": {\n const { PhantomWalletProvider } = await loadPhantomWalletProvider();\n currentAuthProvider = new PhantomWalletProvider(rpcUrl, config.phantomConfig);\n // MWA hot-swap is always available (custom modal shows MWA button on Android)\n currentAuthProvider.onSwitchToMWA =\n () => hotSwapToMWAProvider(config);\n break;\n }\n case \"privy\": {\n // Web Privy: a co-equal login route alongside email/phantom/guest. The\n // Privy embedded/external Solana wallet signs the SIWS challenge, so the\n // session is minted through the same wallet path as Phantom.\n const PrivyWalletProvider = await loadPrivyWalletProvider();\n currentAuthProvider = new PrivyWalletProvider((_b = config.name) !== null && _b !== void 0 ? _b : null, (_c = config.logoUrl) !== null && _c !== void 0 ? _c : null, config.privyConfig, rpcUrl);\n break;\n }\n case \"privy-expo\":\n // React Native Privy: @privy-io/expo is hook-based, so the host app must\n // create a PrivyExpoProvider, bridge the Privy hooks via setPrivyMethods()\n // from inside its <PrivyProvider> tree, and pass it as config.privyExpoProvider.\n if (!config.privyExpoProvider) {\n throw new Error('authMethod \"privy-expo\" requires a PrivyExpoProvider instance passed as config.privyExpoProvider. ' +\n 'Create the provider, call setPrivyMethods() from your React Native component tree, then pass it to init().');\n }\n currentAuthProvider = config.privyExpoProvider;\n break;\n case \"mobile-wallet-adapter\": {\n const SolanaMobileWalletProvider = await loadSolanaMobileWalletProvider();\n currentAuthProvider = new SolanaMobileWalletProvider(rpcUrl, config.mobileWalletConfig);\n break;\n }\n case \"onboard\":\n console.warn(\"Onboard auth is not yet supported.\");\n break;\n case \"guest\":\n // Anonymous auth: a device-local ed25519 keypair signs the challenge.\n currentAuthProvider = new GuestAuthProvider();\n break;\n default:\n break;\n }\n if (!currentAuthProvider) {\n throw new Error(\"No auth provider was selected. Does your app have a supported auth method or chain configured?\");\n }\n // Wrap with OffchainAuthProvider for offchain/poofnet chain\n if (config.chain === \"offchain\") {\n console.log(\"[Offchain] Wrapping auth provider for Poofnet transaction tracking\");\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n}\n/**\n * Browser/React-Native-only auth flows (guest, email) persist their session via\n * WebSessionManager, which is gated to environments that have `window` /\n * `localStorage`. In Node those stores no-op, so the session is minted on the\n * server but never saved locally — the caller looks logged in yet every request\n * 403s. Fail fast with actionable guidance instead of that silent footgun.\n */\nfunction assertBrowserAuthEnv(method) {\n if (typeof window === 'undefined') {\n throw new Error(`bounded-sh: '${method}' is a browser/React-Native auth flow — it needs \\`window\\`/\\`localStorage\\` ` +\n `to persist the session, which Node doesn't have (the session would be silently dropped, then every ` +\n `request 403s). In Node/server code import from 'bounded-sh/server' and sign with a keypair ` +\n `(createWalletClient({ keypair }) or BOUNDED_PRIVATE_KEY).`);\n }\n}\n/**\n * Anonymous (\"guest\") sign-in: zero-friction auth backed by a device-local\n * ed25519 keypair (no email, no wallet, no popup). The keypair is generated +\n * persisted on the device; its public key becomes `@user.address`. Durable\n * across reloads. Upgrade later by linking an email; transfer accounts via the\n * ownership-as-data pattern. `init()` must have run first. Browser/RN only.\n */\nexport async function signInAnonymously() {\n assertBrowserAuthEnv('signInAnonymously');\n const provider = new GuestAuthProvider();\n currentAuthProvider = provider;\n currentAuthMethod = 'guest';\n const coreConfig = await getConfig();\n coreConfig.authProvider = provider;\n coreConfig.authMethod = 'guest';\n setAuthProviderInstance(provider);\n setStoredAuthMethod('guest');\n return provider.login();\n}\n/**\n * Log in with Privy as a co-equal route — selectable at runtime alongside\n * `login()` (email/wallet) and `signInAnonymously()`, without re-`init()`.\n *\n * On WEB it lazy-loads the @privy-io/react-auth-backed PrivyWalletProvider from\n * `config.privyConfig`. On REACT NATIVE the host must have created a\n * PrivyExpoProvider and bridged the Privy hooks via setPrivyMethods() (pass it as\n * `config.privyExpoProvider` to init()) — RN can't construct it here because the\n * Privy hooks live in the app's component tree.\n *\n * Either way the Privy Solana wallet signs the SIWS challenge, so the session is\n * minted via the same wallet path as Phantom and shares the unified session store\n * (web localStorage / RN storage) and identity model. `init()` must have run first.\n */\nexport async function loginWithPrivy(options) {\n var _a, _b, _c;\n assertBrowserAuthEnv('loginWithPrivy');\n const coreConfig = await getConfig();\n let provider;\n if (getPlatform().hasDOM) {\n const PrivyWalletProvider = await loadPrivyWalletProvider();\n provider = new PrivyWalletProvider((_a = coreConfig.name) !== null && _a !== void 0 ? _a : null, (_b = coreConfig.logoUrl) !== null && _b !== void 0 ? _b : null, coreConfig.privyConfig, (_c = coreConfig.rpcUrl) !== null && _c !== void 0 ? _c : null);\n currentAuthMethod = 'privy';\n }\n else {\n if (!coreConfig.privyExpoProvider) {\n throw new Error('loginWithPrivy() on React Native requires a PrivyExpoProvider bridged from your app: ' +\n 'create it, call setPrivyMethods() inside <PrivyProvider>, and pass it as config.privyExpoProvider to init().');\n }\n provider = coreConfig.privyExpoProvider;\n currentAuthMethod = 'privy-expo';\n }\n if (coreConfig.chain === 'offchain') {\n provider = new OffchainAuthProvider(provider);\n }\n currentAuthProvider = provider;\n coreConfig.authProvider = provider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(provider);\n setStoredAuthMethod(currentAuthMethod);\n if (typeof provider.setLoginOverrides === 'function') {\n provider.setLoginOverrides(options !== null && options !== void 0 ? options : null);\n }\n const result = await provider.login();\n return result ? Object.assign(Object.assign({}, result), { provider }) : null;\n}\n/** Bind the active provider/method to email (Bounded Better Auth). Shared by the\n * headless verify wrapper so reload-restore + logout treat it as 'email'. */\nasync function activateEmailProvider() {\n const provider = new EmailAuthProvider();\n currentAuthProvider = provider;\n currentAuthMethod = 'email';\n const coreConfig = await getConfig();\n coreConfig.authProvider = provider;\n coreConfig.authMethod = 'email';\n setAuthProviderInstance(provider);\n setStoredAuthMethod('email');\n return provider;\n}\n/**\n * Send a 6-digit login code to `email` (Bounded Better Auth). Step 1 of the\n * inline email flow — build your own email/code UI, or just call `login()` for\n * the built-in modal. Works on web AND React Native (no DOM needed).\n */\nexport async function sendEmailOtp(email) {\n assertBrowserAuthEnv('sendEmailOtp');\n return emailSend(email);\n}\n/**\n * Verify the `code` for `email`, establish the session, and return the user.\n * Step 2 of the inline email flow. Coexists with signInAnonymously()/wallets.\n */\nexport async function verifyEmailOtp(email, code) {\n assertBrowserAuthEnv('verifyEmailOtp');\n await activateEmailProvider();\n return emailVerify(email, code);\n}\n/**\n * UPGRADE the current anonymous (guest) session by linking an email — Firebase\n * `linkWithCredential` parity. Send the code first with `sendEmailOtp(email)`,\n * then call `linkEmail(email, code)`. If the email is brand-new the guest's\n * `@user.id` (and its data) is preserved; if the email already exists the user\n * just signs into it (no merge). After it resolves, `getCurrentUser().isAnonymous`\n * is `false`. Requires an active guest session (`signInAnonymously()` first).\n */\nexport async function linkEmail(email, code) {\n assertBrowserAuthEnv('linkEmail');\n // Capture the GUEST token BEFORE switching auth methods — the issuer needs it\n // to prove guest ownership and adopt its id into the new email account.\n const guestToken = getActiveSessionManager().getIdToken();\n if (!guestToken) {\n throw new Error('linkEmail requires an active anonymous session — call signInAnonymously() first.');\n }\n await activateEmailProvider(); // method=email so the upgraded user is no longer anonymous\n const { user } = await emailLink(email, code, guestToken);\n return user;\n}\nexport async function login(options) {\n // Re-initialize provider if it was cleared by logout\n if (!currentAuthProvider && initConfig) {\n currentAuthProvider = await getAuthProvider(initConfig);\n const coreConfig = await getConfig();\n coreConfig.authProvider = currentAuthProvider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(currentAuthProvider);\n }\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n // Forward per-call overrides to providers that support them (duck-typed to stay\n // lazy-load safe — no direct import of PhantomWalletProvider here).\n // Always call (even with null) so previous overrides are cleared when this\n // login() is invoked without options — early-return paths inside the provider\n // bypass the .finally() cleanup, so we reset here too.\n if (typeof currentAuthProvider.setLoginOverrides === 'function') {\n currentAuthProvider.setLoginOverrides(options !== null && options !== void 0 ? options : null);\n }\n const loginResult = await currentAuthProvider.login();\n if (loginResult) {\n // Store which auth method was used so we restore the right provider on reload\n setStoredAuthMethod(currentAuthMethod);\n // If this top-level tab was opened solely to perform the wallet connect for\n // an embedded preview (?poofConnect — see openTopLevelForConnect in the\n // phantom provider), close it now that the session is established. The\n // session reflects back into the preview's iframe via same-origin storage.\n try {\n if (typeof window !== 'undefined'\n && window.top === window.self\n && new URLSearchParams(window.location.search).get('poofConnect') === '1') {\n setTimeout(() => { try {\n window.close();\n }\n catch ( /* noop */_a) { /* noop */ } }, 400);\n }\n }\n catch ( /* noop */_a) { /* noop */ }\n return Object.assign(Object.assign({}, loginResult), { provider: currentAuthProvider });\n }\n return null;\n}\nexport function getCurrentAuthMethod() {\n return currentAuthMethod;\n}\nexport async function logout() {\n var _a;\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n // Revoke the refresh-token family server-side BEFORE the provider clears the\n // local session (so we still have the token + issuer to revoke). Best-effort:\n // revokeSession swallows errors so logout never hangs/fails on a network blip.\n try {\n const sm = getActiveSessionManager();\n const refreshToken = sm.getRefreshToken();\n if (refreshToken)\n await revokeSession(refreshToken, (_a = sm.getIssuer()) !== null && _a !== void 0 ? _a : undefined);\n }\n catch ( /* proceed with local logout regardless */_b) { /* proceed with local logout regardless */ }\n await currentAuthProvider.logout();\n setStoredAuthMethod(null);\n currentAuthProvider = null;\n currentAuthMethod = null;\n}\n// OIDC Authorization Code + PKCE login (the secure multi-tenant redirect flow).\nexport { loginWithRedirect, linkWithRedirect, completeLoginFromRedirect, loginWithPopup, completeLoginInPopup } from './oidc-auth';\n","import { reconnectWithNewAuth, getConfig, deriveUserIdentityFromIdToken, getActiveSessionManager } from '@bounded-sh/core';\nimport { getAuthProvider, login as authLogin, logout as authLogout, clearIncompatibleSession, getCurrentAuthMethod } from './auth';\nimport { init as configInit } from '@bounded-sh/core';\n/**\n * Read the active session's idToken synchronously from whichever store is live\n * for this runtime (WebSessionManager on web, ReactNativeSessionManager on RN —\n * selected by getActiveSessionManager, the same selector the core request path\n * uses). Returns null when there's no session — the caller leaves the user as-is.\n */\nfunction getCurrentIdToken() {\n try {\n return getActiveSessionManager().getIdToken();\n }\n catch ( /* no session / store unavailable */_a) { /* no session / store unavailable */ }\n return null;\n}\n/**\n * Enrich a freshly-produced User with the universal identity fields\n * ({ id, email }) derived from the active session's idToken. ADDITIVE +\n * backwards-compatible: `address` is left exactly as the provider set it, and\n * id/email are only populated when not already present. For wallet logins\n * id === address; for email-only (Bounded) logins address may be null and id\n * is the account identity. Mirrors the realtime-worker auth.ts resolution so\n * the client `user` matches what the backend authenticates as (@user.id / .email).\n */\nfunction withUserIdentity(user) {\n var _a, _b, _c, _d;\n if (!user)\n return user;\n const { id, email } = deriveUserIdentityFromIdToken(getCurrentIdToken());\n return Object.assign(Object.assign({}, user), { \n // Prefer an id the provider already set; otherwise fall back to the\n // token-derived identity, then to the wallet address (wallet === id).\n id: (_c = (_b = (_a = user.id) !== null && _a !== void 0 ? _a : id) !== null && _b !== void 0 ? _b : user.address) !== null && _c !== void 0 ? _c : undefined, \n // Email comes only from email-login tokens; keep any provider-set value.\n email: user.email !== undefined ? user.email : email, \n // Guest/anonymous flag (Firebase `isAnonymous` parity): authoritative\n // source is the active auth method, so it's correct on fresh login AND\n // after a session restore (the stored method is rehydrated before the\n // user is set). A provider may also set it explicitly; honor that first.\n isAnonymous: (_d = user.isAnonymous) !== null && _d !== void 0 ? _d : (getCurrentAuthMethod() === 'guest') });\n}\nlet authProviderInstance = null;\nlet currentUser = null;\nlet authStateListeners = [];\nlet authLoadingListeners = [];\nlet initCompleted = false;\nlet isAuthLoading = false;\n// This file acts as a middleware for the global state of the SDK\n// This mostly involves setting up the AuthProvider and managing the current user\nexport async function init(newConfig) {\n // Mark auth as loading for the ENTIRE init/restore window so consumers render\n // a neutral/loading state instead of the signed-out UI while we rehydrate the\n // session — otherwise getCurrentUser() is null + loading is false during the\n // async restore, which paints \"logged out\" and then flips to \"logged in\" (an\n // auth flash). The React useAuth hook seeds loading=true itself, but the\n // imperative API (onAuthLoadingChanged/getAuthLoading) relies on this flag, so\n // setting it here makes \"no flash\" the SDK's default behavior for every consumer.\n setAuthLoading(true);\n try {\n // Get auth provider first\n authProviderInstance = await getAuthProvider(newConfig);\n // Initialize config with auth provider\n await configInit(Object.assign(Object.assign({}, newConfig), { authProvider: authProviderInstance }));\n // Now that core is initialized, update the auth method on the config\n const authMethod = getCurrentAuthMethod();\n if (authMethod) {\n const coreConfig = await getConfig();\n coreConfig.authMethod = authMethod;\n }\n // Wait for restoreSession to complete\n // The appId check is done in SessionManager.getSession which is called by restoreSession\n // If there's an appId mismatch, the session will be cleared and restoreSession will return null\n let user = await authProviderInstance.restoreSession();\n // If a session exists but was created before auth method tracking (legacy session),\n // clear it to avoid mismatches when the app switches auth methods (e.g. email → phantom)\n if (user && clearIncompatibleSession()) {\n user = null;\n }\n setCurrentUser(user);\n // Mark init as completed\n initCompleted = true;\n }\n finally {\n // Resolve loading once the user is known (or restore failed) — listeners\n // registered mid-init still get the correct final state via the immediate\n // callback in onAuthLoadingChanged.\n setAuthLoading(false);\n }\n}\n// TODO: Have a way to remove listeners\nexport function onAuthStateChanged(callback) {\n authStateListeners.push(callback);\n if (initCompleted || hasRunFirstTime) {\n // Call the callback immediately with the current user.\n // We check hasRunFirstTime in addition to initCompleted to handle the race\n // where the Phantom auto-login effect calls setCurrentUser() before init()\n // finishes. Without this, listeners registered between auto-login's\n // setCurrentUser and init()'s initCompleted would never fire (init's\n // setCurrentUser is a no-op for same-address and initCompleted is still false).\n callback(currentUser);\n }\n}\nexport function onAuthLoadingChanged(callback) {\n authLoadingListeners.push(callback);\n // Call immediately with current loading state\n callback(isAuthLoading);\n}\nexport function setAuthLoading(loading) {\n if (isAuthLoading !== loading) {\n isAuthLoading = loading;\n authLoadingListeners.forEach((callback) => callback(loading));\n }\n}\nexport function getAuthLoading() {\n return isAuthLoading;\n}\nexport async function login(options) {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n const loggedInUser = await authLogin(options);\n setCurrentUser(loggedInUser);\n return currentUser;\n}\nexport async function logout() {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n await authLogout();\n setCurrentUser(null);\n}\nvar hasRunFirstTime = false;\n// Update the currentUser and notify listeners\nexport function setCurrentUser(user) {\n // Enrich with the universal identity fields (id/email) derived from the\n // active session's idToken — central chokepoint so every provider's user\n // object gains { id, address, email } without each construction site\n // having to set them.\n user = withUserIdentity(user);\n const lastUser = currentUser;\n const wasInitializedBefore = hasRunFirstTime;\n const shouldRunListeners = !hasRunFirstTime || (currentUser === null || currentUser === void 0 ? void 0 : currentUser.address) !== (user === null || user === void 0 ? void 0 : user.address);\n hasRunFirstTime = true;\n currentUser = user;\n if (shouldRunListeners) {\n authStateListeners.forEach((callback) => callback(user));\n // Reconnect WebSocket connections with new auth when user changes.\n // Skip on the first setCurrentUser call during init() — there are no\n // existing connections to reconnect at that point.\n if (wasInitializedBefore && (lastUser === null || lastUser === void 0 ? void 0 : lastUser.address) !== (user === null || user === void 0 ? void 0 : user.address)) {\n reconnectWithNewAuth().catch((error) => {\n console.error('Error reconnecting WebSocket after auth change:', error);\n });\n }\n }\n}\nexport function getCurrentUser() {\n return currentUser;\n}\nexport function setAuthProviderInstance(provider) {\n authProviderInstance = provider;\n}\n","var _a;\nimport * as React from 'react';\nimport { login as sdkLogin, logout as sdkLogout } from '../../global';\nimport { onAuthStateChanged, onAuthLoadingChanged } from '../../global';\n// Whether we're in a server-side rendering context (no hooks allowed).\n// React Native has no `window` but DOES support hooks.\n// We detect Node SSR specifically via process.versions.node to avoid\n// false positives from Node 21+ which defines `navigator` globally.\nconst isSSR = typeof window === 'undefined'\n && typeof process !== 'undefined'\n && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);\nexport function useAuth() {\n // Provide a fallback so server render doesn't break\n if (isSSR) {\n return {\n login: async () => undefined,\n logout: async () => undefined,\n loading: true,\n user: null,\n };\n }\n const [user, setUser] = React.useState(null);\n const [loading, setLoading] = React.useState(true);\n const [sdkLoading, setSdkLoading] = React.useState(false);\n React.useEffect(() => {\n onAuthStateChanged((user) => {\n setUser(user);\n setLoading(false);\n });\n onAuthLoadingChanged((loading) => {\n setSdkLoading(loading);\n });\n return () => {\n };\n }, []);\n const login = async () => {\n try {\n setLoading(true);\n const user = await sdkLogin();\n setUser(user);\n }\n catch (error) {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Error logging in:', error);\n }\n setUser(null);\n }\n finally {\n setLoading(false);\n }\n };\n const logout = async () => {\n try {\n setLoading(true);\n await sdkLogout();\n setUser(null);\n }\n catch (error) {\n console.error('Error logging out:', error);\n }\n finally {\n setLoading(false);\n }\n };\n return {\n login,\n logout,\n loading: loading || sdkLoading,\n user,\n };\n}\n","import { Transaction, VersionedTransaction } from \"@solana/web3.js\";\nexport async function deserializeTransaction(tx) {\n const buf = Buffer.isBuffer(tx) ? tx : Buffer.from(tx, 'base64');\n if ((buf[0] & 0x80) !== 0) {\n return VersionedTransaction.deserialize(buf);\n }\n else {\n return Transaction.from(buf);\n }\n}\n","import { getIdToken as getIdTokenCore } from '@bounded-sh/core';\n// Wrapper for getIdToken - passes isServer=false for client-side usage\nexport async function getIdToken() {\n return getIdTokenCore(false);\n}\n","/**\n * Extracts a human-readable error message from Solana transaction logs.\n */\nexport function extractTransactionError(err, logMessages) {\n if (logMessages) {\n return JSON.stringify(logMessages);\n }\n if (err) {\n try {\n return JSON.stringify(err);\n }\n catch (_a) {\n return String(err);\n }\n }\n return 'Unknown transaction error';\n}\n/**\n * Polls getSignatureStatuses until the transaction is confirmed, then checks for errors.\n * Throws if the transaction failed on-chain. Returns parsed transaction info on success.\n */\nexport async function confirmAndCheckTransaction(connection, signature) {\n var _a;\n const maxAttempts = 15;\n for (let i = 0; i < maxAttempts; i++) {\n const { value } = await connection.getSignatureStatuses([signature]);\n const status = value[0];\n if (status) {\n if (status.err) {\n const txInfo = await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const errorMessage = extractTransactionError(status.err, (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.logMessages);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (status.confirmationStatus === 'confirmed' || status.confirmationStatus === 'finalized') {\n return await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n }\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n throw new Error('Transaction confirmation timeout');\n}\n","/**\n * Privy Expo Auth Provider — React Native implementation of AuthProvider.\n *\n * Uses @privy-io/expo instead of @privy-io/react-auth.\n * Persists the session through getActiveSessionManager() (the RN store on React\n * Native), and mints it via the SIWS wallet-signature path — identical to\n * Phantom/MWA — so no Privy-specific backend verification is required.\n *\n * IMPORTANT — Expo/RN consumers must:\n * 1. Install polyfills: fast-text-encoding, react-native-get-random-values\n * 2. Install @privy-io/expo, @privy-io/expo-native-extensions\n * 3. Call ReactNativeSessionManager.configure({ storage, atob }) at startup\n * 4. Call setPlatform({ ... }) from @bounded-sh/web at startup\n * 5. Wrap their app tree with PrivyProvider from @privy-io/expo\n * 6. Create this provider and pass the Privy hooks/methods via setPrivyMethods()\n *\n * Unlike the web PrivyWalletProvider which renders a hidden React DOM tree\n * to host Privy's React context, this provider expects the RN app itself\n * to render <PrivyProvider> and then bridge the hooks via setPrivyMethods().\n */\nimport { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport { setCurrentUser } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { PublicKey, Connection, Transaction, VersionedTransaction, } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL } from '..';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport bs58 from 'bs58';\nconst SURFNET_RPC_URL = 'https://surfpool.fly.dev';\n// -----------------------------------------------------------------------\n// Provider implementation\n// -----------------------------------------------------------------------\nexport class PrivyExpoProvider {\n constructor(appId, networkUrl = null) {\n this.privyMethods = null;\n this.appId = appId;\n this.networkUrl = networkUrl;\n }\n /**\n * Bridge Privy hooks from the app's React tree into this provider.\n *\n * Call this from a component rendered inside <PrivyProvider>:\n * ```tsx\n * const privy = usePrivy();\n * const wallet = useEmbeddedSolanaWallet();\n * const { getAccessToken } = usePrivy();\n * const { getIdentityToken } = useIdentityToken();\n *\n * useEffect(() => {\n * provider.setPrivyMethods({\n * isReady: privy.isReady,\n * isAuthenticated: !!privy.user,\n * user: privy.user,\n * login: privy.login,\n * logout: privy.logout,\n * getAccessToken,\n * getIdentityToken,\n * getWalletProvider: async () => {\n * if (!wallet.wallets[0]) return null;\n * const provider = await wallet.wallets[0].getProvider();\n * return {\n * address: wallet.wallets[0].address,\n * signMessage: provider.signMessage,\n * signTransaction: provider.signTransaction,\n * signAndSendTransaction: provider.signAndSendTransaction,\n * };\n * },\n * });\n * }, [privy.isReady, privy.user, wallet.wallets]);\n * ```\n */\n setPrivyMethods(methods) {\n this.privyMethods = methods;\n }\n // -------------------------------------------------------------------\n // AuthProvider interface\n // -------------------------------------------------------------------\n async login() {\n var _a;\n await this.ensureReady();\n // Check for existing session — verify the stored address matches the\n // currently authenticated Privy wallet (guards against account switches\n // without an explicit logout).\n const session = await SessionManager().getSession();\n if (session && ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated)) {\n const wallet = await this.privyMethods.getWalletProvider();\n if (wallet && wallet.address === session.address) {\n return { provider: this, address: session.address };\n }\n // Stale session — clear and continue to fresh login flow\n SessionManager().clearSession();\n }\n // Trigger Privy login\n const privyUser = await this.privyMethods.login();\n if (!privyUser)\n return null;\n // Get the wallet\n const wallet = await this.privyMethods.getWalletProvider();\n if (!wallet) {\n throw new Error('No embedded Solana wallet found after login. Ensure embeddedWallets.solana.createOnLogin is configured.');\n }\n // Mint a Bounded session by having the Privy Solana wallet sign the\n // standard SIWS challenge — identical to Phantom/MWA, so the backend mints\n // the session via the proven wallet-signature path (no Privy-specific\n // token verification needed).\n await this.createSession(wallet.address, wallet);\n const user = { provider: this, address: wallet.address };\n setCurrentUser(user);\n return user;\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a;\n await this.ensureReady();\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required');\n }\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n let app_id = solTransactionData.appId;\n if (typeof globalThis !== 'undefined' && globalThis.CUSTOM_BOUNDED_APP_ID_HEADER) {\n app_id = globalThis.CUSTOM_BOUNDED_APP_ID_HEADER;\n }\n if (!app_id) {\n throw new Error('App ID is required');\n }\n // Create a mock wallet adapter for Anchor (only publicKey needed for building TX)\n const walletPublicKey = new PublicKey(wallet.address);\n const anchorWallet = {\n publicKey: walletPublicKey,\n signTransaction: async (tx) => tx,\n signAllTransactions: async (txs) => txs,\n };\n const anchorProvider = new anchor.AnchorProvider(connection, anchorWallet, anchor.AnchorProvider.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n const { tx, blockhash, lastValidBlockHeight } = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, anchorProvider, walletPublicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData,\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n // Set blockhash\n const isLegacyTx = 'recentBlockhash' in tx &&\n !('message' in tx && 'staticAccountKeys' in tx.message);\n if (isLegacyTx) {\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n }\n else {\n tx.message.recentBlockhash = blockhash;\n }\n try {\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Sign only — don't submit\n const signed = await wallet.signTransaction(tx);\n return {\n signedTransaction: signed.signedTransaction,\n blockNumber: 0,\n gasUsed: '0',\n data: '',\n };\n }\n // Sign and submit\n const { signature, txInfo } = await this.signAndSubmitInternal(tx, wallet, rpcUrl, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n }\n async signMessage(message) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n const messageBytes = getPlatform().textEncode(message);\n const result = await wallet.signMessage(messageBytes);\n return bs58.encode(result.signature);\n }\n async signTransaction(transaction) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n // Ensure blockhash is set\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = new PublicKey(wallet.address);\n }\n }\n else {\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n const result = await wallet.signTransaction(transaction);\n // Deserialize the signed transaction\n const signedBytes = result.signedTransaction;\n try {\n return VersionedTransaction.deserialize(signedBytes);\n }\n catch (_a) {\n return Transaction.from(signedBytes);\n }\n }\n async signAndSubmitTransaction(transaction, feePayer) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Ensure blockhash\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n legacyTx.feePayer = feePayer || new PublicKey(wallet.address);\n }\n else {\n const versionedTx = transaction;\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n const { signature } = await this.signAndSubmitInternal(transaction, wallet, rpcUrl, connection);\n return signature;\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n return null;\n }\n async logout() {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated) {\n await this.privyMethods.logout();\n }\n SessionManager().clearSession();\n }\n async getNativeMethods() {\n return this.privyMethods;\n }\n // -------------------------------------------------------------------\n // Private helpers\n // -------------------------------------------------------------------\n /**\n * Mint a Bounded session from a Privy Solana wallet by signing the canonical\n * SIWS challenge (nonce -> genSolanaMessage -> wallet.signMessage). This reuses\n * createSessionWithSignature — the exact path Phantom, the mobile wallet\n * adapter, and the guest device-key use — so the bounded /session issuer mints\n * the session with no Privy-specific verification (it arrives as a Solana\n * wallet signature, defaulting to authMethod 'phantom' server-side).\n */\n async createSession(address, wallet) {\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n const messageBytes = getPlatform().textEncode(message);\n const signResult = await wallet.signMessage(messageBytes);\n // createSessionWithSignature expects a base64-encoded detached signature\n // (matches the Phantom + guest providers).\n const signature = Buffer.from(signResult.signature).toString('base64');\n const result = await createSessionWithSignature(address, message, signature);\n if (result) {\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n }\n }\n async getWalletOrThrow() {\n var _a;\n const wallet = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.getWalletProvider());\n if (!wallet) {\n throw new Error('No Privy wallet available. Ensure the user is logged in and an embedded Solana wallet exists.');\n }\n return wallet;\n }\n async signAndSubmitInternal(transaction, wallet, rpcUrl, connection) {\n let signature;\n if (rpcUrl.includes('surfpool') || rpcUrl === SURFNET_RPC_URL) {\n // Surfnet: sign locally, then submit raw\n const signed = await wallet.signTransaction(transaction);\n const txSig = await connection.sendRawTransaction(signed.signedTransaction, {\n skipPreflight: true,\n maxRetries: 3,\n });\n signature = txSig;\n }\n else {\n // Non-Surfnet: use Privy's combined sign+send\n const result = await wallet.signAndSendTransaction(transaction, connection);\n signature = result.signature;\n }\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return { signature, txInfo };\n }\n getRpcUrl(network) {\n if (this.networkUrl)\n return this.networkUrl;\n if (network === 'solana_devnet')\n return SOLANA_DEVNET_RPC_URL;\n if (network === 'solana_mainnet')\n return SOLANA_MAINNET_RPC_URL;\n if (network === 'surfnet')\n return SURFNET_RPC_URL;\n return SOLANA_MAINNET_RPC_URL;\n }\n async ensureReady(timeoutMs = 15000) {\n if (!this.privyMethods) {\n throw new Error('PrivyExpoProvider.setPrivyMethods() must be called before using auth. ' +\n 'Bridge the Privy hooks from your React Native component tree.');\n }\n if (this.privyMethods.isReady)\n return;\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n const check = () => {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isReady) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Privy Expo SDK failed to initialize within timeout.'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n}\n"],"names":["require","exports","this","init","buffer","base64Js","hasRequiredBase64Js","requireBase64Js","ieee754","hasRequiredIeee754","requireIeee754","hasRequiredBuffer","requireBuffer","bufferExports","sessionManager","safeBuffer","hasRequiredSafeBuffer","requireSafeBuffer","src","hasRequiredSrc","requireSrc","nacl","getIdToken","IDB_NAME","IDB_STORE","idbGet","require$$0","require$$1","bs58","SessionManager","decodeJwt","userFromIdToken","sendEmailOtp","verifyEmailOtp","SURFNET_RPC_URL","emailSend","emailVerify","emailLink","login","logout","configInit","authLogin","authLogout","sdkLogin","sdkLogout","getIdTokenCore","Buffer"],"mappings":"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AE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,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C,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EA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,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;;AAEtF,IAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,E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AAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,KAAK,MAAM;AAChC,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,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I,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;EAC3C,CAAC;;EAED,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;IACnD,IAAI,CAAC,EAAE,IAAI;;AAEb,IAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;AACrB,MAAI,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;MAC3B,IAAI,IAAI,GAAG,KAAK;QACd,IAAI,GAAG,KAAK;MACd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;AAC7B,QAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;MAC5C,KAAK,IAAI,IAAI;MACb,IAAI,IAAI,IAAI;AAChB,MAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;AACzB,MAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAE;QACpB;MACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;AACnC,MAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;AACrB,IAAA;;AAEA,IAAE,IAAI,KAAK,IAAI,EAAE,EAAE;AACnB,MAAI,IAAI,GAAG,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC;MAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;MAC1B,IAAI,IAAI,IAAI;MACZ,KAAK,IAAI,IAAI;AACjB,IAAA;;IAEE,IAAI,KAAK,EAAE;MACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;AAC9B,QAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,MAAI,IAAI,CAAC,QAAQ,IAAI,KAAK;AAC1B,IAAA;EACA,CAAC;;AAED,EAAA,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AACxD,IAAE,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACtB,IAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;AACvB,IAAE,OAAO,CAAC;AACV,EAAA;;AAEA,EAAA,SAAS,yBAAyB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3D,IAAE,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AAC5B,IAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,EAAA;;EAEA,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACrC,IAAE,IAAI,CAAC;AACP,IAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE;AACvB,IAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAE,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC7C,IAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,IAAE,OAAO,CAAC;AACV,EAAA;;EAEA,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1C,IAAE,IAAI,CAAC;AACP,IAAE,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AAC5B,IAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE;IACrB,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,yBAAyB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;AACtE,IAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,IAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,IAAE,OAAO,CAAC;AACV,EAAA;;AAEA,EAAA,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,IAAE,IAAI,CAAC;IACL,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,EAAA;;EAEA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IACf,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;MACvB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;MACpB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;MACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACxB,IAAA;AACA,IAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAA;;AAEA,EAAA,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACzB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACnB,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC/B,MAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,MAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACb,IAAA;AACA,EAAA;;AAEA,EAAA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,IAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;IACtB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,CAAC,CAAC,CAAC;IACX,QAAQ,CAAC,CAAC,CAAC;IACX,QAAQ,CAAC,CAAC,CAAC;IACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;MACtB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;MACpB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACvB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC/C,QAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;AACtB,MAAA;MACI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;MAC1C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;AACvB,MAAI,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM;MACf,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvB,IAAA;IACE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC3B,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AACxB,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtB,IAAA;AACA,EAAA;;AAEA,EAAA,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,IAAE,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AACpD,IAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AACjB,IAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrC,EAAA;;EAEA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAE,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AAC5B,IAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AACjB,IAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACjB,EAAA;;AAEA,EAAA,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B,IAAE,IAAI,CAAC;AACP,IAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1D,IAAE,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM;AACjB,EAAA;;AAEA,EAAA,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,EAAA;;AAEA,EAAA,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,EAAA;;AAEA,EAAA,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAClB,IAAI,CAAC,EAAE,CAAC;AACV,OAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1E,OAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;AAC1E,MAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;MACtE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;AACjE,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,MAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACf,MAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;;AAEf,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,C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E,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAExB;IACE,CAAC,GAAG,CAAC;IACL,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GA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U;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AA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AAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,E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AG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;QACT,GAAG,CAAC,MAAM,EAAE;AAClB,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;AACA,IAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;MACd,WAAW,GAAG,UAAU;AAC5B,IAAA;;IAEE,SAAS,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;MACjC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;MAC3C,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;;MAErC,IAAI,KAAK,GAAG,CAAC;MACb,IAAI,OAAO,GAAG,CAAC;AACnB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C;AACA;QACM,IAAI,MAAM,GAAG,OAAO;QACpB,OAAO,GAAG,CAAC;AACjB,QAAM,IAAI,KAAK,GAAG,KAAK,GAAG,SAAS;AACnC,QAAM,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;AACrE,UAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;UACb,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;UACzB,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,UAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;;AAErB,UAAQ,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS;AAC9B,UAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC;AACrD,UAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAC7B,UAAQ,KAAK,GAAG,EAAE,GAAG,SAAS;UACtB,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;;AAE3C,UAAQ,OAAO,IAAI,MAAM,KAAK,EAAE;UACxB,MAAM,IAAI,SAAS;AAC3B,QAAA;AACA,QAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;QACpB,KAAK,GAAG,MAAM;QACd,MAAM,GAAG,OAAO;AACtB,MAAA;AACA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;AAC1B,MAAA,CAAK,MAAM;QACL,GAAG,CAAC,MAAM,EAAE;AAClB,MAAA;;AAEA,MAAI,OAAO,GAAG,CAAC,MAAM,EAAE;AACvB,IAAA;;IAEE,SAAS,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACvC;AACA;AACA;MACI,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACnC,IAAA;;AAEA,IAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;AACjD,MAAI,IAAI,GAAG;MACP,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AACtC,MAAI,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;QAC3C,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACvC,MAAA,CAAK,MAAM,IAAI,GAAG,GAAG,EAAE,EAAE;QACnB,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACtC,MAAA,CAAK,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE;QACrB,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACpC,MAAA,CAAK,MAAM;QACL,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACtC,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;AAsMH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AAC1B,MAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;MAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;IAC/B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AAC1B,MAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;MAC/C,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;IACrC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IACxC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC1B,MAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE5B,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;;AAE3B;MACI,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;QACjC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,KAAK,KAAK,GAAG,SAAS,CAAC;QAC9C,KAAK,KAAK,EAAE;AAClB,QAAM,KAAK,IAAI,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC;AAClC;AACA,QAAM,KAAK,IAAI,EAAE,KAAK,EAAE;QAClB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACpC,MAAA;;AAEA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;QACrB,IAAI,CAAC,MAAM,EAAE;AACnB,MAAA;AACA,MAAI,IAAI,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;;MAEzC,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI;IACxC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI;AACrC,MAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;MACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAClC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AAC3B,MAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;;AAExC;MACI,IAAI,GAAG,GAAG,IAAI;MACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE;AACxD,QAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACtB,MAAA;;AAEA,MAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;AAC9D,UAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAExB,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE;MAC3C,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;AACjD,MAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;MACjB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE;AAC3B,MAAI,IAAI,SAAS,GAAG,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxD,MAAI,IAAI,CAAC;;AAET,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,IAAI,KAAK,GAAG,CAAC;;AAEnB,QAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS;AAChD,UAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC;UAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;AACjC,UAAQ,KAAK,GAAG,QAAQ,MAAM,EAAE,GAAG,CAAC,CAAC;AACrC,QAAA;;QAEM,IAAI,KAAK,EAAE;AACjB,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;UACrB,IAAI,CAAC,MAAM,EAAE;AACrB,QAAA;AACA,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,QAAA;;QAEM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9B,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACzB,QAAA;;AAEA,QAAM,IAAI,CAAC,MAAM,IAAI,CAAC;AACtB,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AAC7C;AACA,MAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC/B,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAG;;AAEH;AACA;AACA;AACA,IAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;MAC3D,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;AACjD,MAAI,IAAI,CAAC;MACL,IAAI,IAAI,EAAE;QACR,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE;AACnC,MAAA,CAAK,MAAM;QACL,CAAC,GAAG,CAAC;AACX,MAAA;;AAEA,MAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;AACrB,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;MAC9C,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC;MAC/C,IAAI,WAAW,GAAG,QAAQ;;MAE1B,CAAC,IAAI,CAAC;MACN,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;;AAEtB;MACI,IAAI,WAAW,EAAE;AACrB,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAClC,UAAQ,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,QAAA;AACA,QAAM,WAAW,CAAC,MAAM,GAAG,CAAC;AAC5B,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAEZ,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,QAAM,IAAI,CAAC,MAAM,IAAI,CAAC;AACtB,QAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA;AACA,MAAA,CAAK,MAAM;AACX,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,MAAM,GAAG,CAAC;AACrB,MAAA;;MAEI,IAAI,KAAK,GAAG,CAAC;MACb,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAClC,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;AACxD,QAAM,KAAK,GAAG,IAAI,GAAG,IAAI;AACzB,MAAA;;AAEA;AACA,MAAI,IAAI,WAAW,IAAI,KAAK,KAAK,CAAC,EAAE;QAC9B,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK;AACrD,MAAA;;AAEA,MAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,MAAM,GAAG,CAAC;AACrB,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;AAEH,IAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7D;AACA,MAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;MAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC5C,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;MACvC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;MACzC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;MACvC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;MACzC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MACxC,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC;AAC/C,MAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;MAChB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE;AAC1B,MAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;AAElB;MACI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK;;AAEtC;MACI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;AAEzB,MAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACpB,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE;MAC3C,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;AACjD,MAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;MACjB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE;;MAEvB,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,yCAAyC,CAAC;;AAE1E,MAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAM,CAAC,EAAE;AACT,MAAA;AACA,MAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE1C,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;AACzC,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;MACzC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;AAC3B,MAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;;AAExC;AACA,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7B,QAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC3D,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,UAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC;AACzB,UAAQ,OAAO,IAAI;AACnB,QAAA;;AAEA,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACrB,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA;AACA,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAC3B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;;AAExB;MACI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;AACxE,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;QAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;UACzB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAC7B,QAAA,CAAO,MAAM;UACL,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3B,QAAA;AACA,MAAA;AACA,MAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;;AAE9C,MAAI,OAAO,IAAI;IACf,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;AAC3B,MAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;;AAExC,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7B,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACrB,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;;AAExB,MAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAChD,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,MAAA,CAAK,MAAM;AACX;QACM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjE,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;UAC1B,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC9B,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;AACvC,MAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;;AAErB,MAAI,OAAO,IAAI;IACf,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI;AACrC,MAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;IAC9B,CAAG;;AAEH,IAAE,EAAE,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACtE,MAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK;AAChC,MAAI,IAAI,CAAC;;AAET,MAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;AAErB,MAAI,IAAI,CAAC;MACL,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK;AAC7C,QAAM,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;AAC1C,QAAM,CAAC,IAAI,KAAK,GAAG,SAAS;AAC5B,QAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;AAC3C,MAAA;MACI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,QAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK;AAC7C,QAAM,KAAK,GAAG,CAAC,IAAI,EAAE;QACf,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;AAC3C,MAAA;;MAEI,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE;;AAEzC;AACA,MAAI,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;MACpB,KAAK,GAAG,CAAC;AACb,MAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,QAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACtC,QAAM,KAAK,GAAG,CAAC,IAAI,EAAE;QACf,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;AACnC,MAAA;AACA,MAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;;AAErB,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;AAEH,IAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;MACpD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;;AAExC,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;MACpB,IAAI,CAAC,GAAG,GAAG;;AAEf;AACA,MAAI,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;MACnC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACtC,MAAI,KAAK,GAAG,EAAE,GAAG,OAAO;AACxB,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AACxB,QAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACrB,QAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACrC,MAAA;;AAEA;MACI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAC/B,MAAI,IAAI,CAAC;;AAET,MAAI,IAAI,IAAI,KAAK,KAAK,EAAE;AACxB,QAAM,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AACtB,QAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;QAChB,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACnC,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,UAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB,QAAA;AACA,MAAA;;AAEA,MAAI,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;QACvB,CAAC,GAAG,IAAI;QACR,IAAI,CAAC,EAAE;AACb,UAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB,QAAA;AACA,MAAA;;AAEA,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACrC,QAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS;AACtD,WAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;AAEvC;AACA;AACA,QAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC;;QAExC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,QAAM,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC/B,UAAQ,EAAE,EAAE;AACZ,UAAQ,CAAC,CAAC,QAAQ,GAAG,CAAC;UACd,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,UAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,YAAU,CAAC,CAAC,QAAQ,IAAI,CAAC;AACzB,UAAA;AACA,QAAA;QACM,IAAI,CAAC,EAAE;AACb,UAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AACvB,QAAA;AACA,MAAA;MACI,IAAI,CAAC,EAAE;QACL,CAAC,CAAC,MAAM,EAAE;AAChB,MAAA;MACI,CAAC,CAAC,MAAM,EAAE;;AAEd;MACI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;AACvC,QAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACrB,MAAA;;AAEA,MAAI,OAAO;AACX,QAAM,GAAG,EAAE,CAAC,IAAI,IAAI;AACpB,QAAM,GAAG,EAAE;OACN;IACL,CAAG;;AAEH;AACA;AACA;AACA;AACA,IAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9D,MAAI,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;;AAEzB,MAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACvB,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;SACd;AACP,MAAA;;AAEA,MAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG;AACrB,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AACnD,QAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;;AAExC,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAC3B,QAAA;;AAEA,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;UACnB,IAAI,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5C,YAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,UAAA;AACA,QAAA;;AAEA,QAAM,OAAO;UACL,GAAG,EAAE,GAAG;AAChB,UAAQ,GAAG,EAAE;SACN;AACP,MAAA;;AAEA,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AACnD,QAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;;AAExC,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAC3B,QAAA;;AAEA,QAAM,OAAO;UACL,GAAG,EAAE,GAAG;UACR,GAAG,EAAE,GAAG,CAAC;SACV;AACP,MAAA;;MAEI,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,MAAM,CAAC,EAAE;AAC9C,QAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;;AAE9C,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;UACnB,IAAI,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5C,YAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,UAAA;AACA,QAAA;;AAEA,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,GAAG,CAAC,GAAG;AACpB,UAAQ,GAAG,EAAE;SACN;AACP,MAAA;;AAEA;;AAEA;AACA,MAAI,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACvD,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,UAAQ,GAAG,EAAE;SACN;AACP,MAAA;;AAEA;AACA,MAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,OAAO;AACf,YAAU,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,YAAU,GAAG,EAAE;WACN;AACT,QAAA;;AAEA,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,OAAO;YACL,GAAG,EAAE,IAAI;AACnB,YAAU,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;WACrC;AACT,QAAA;;AAEA,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACrC;AACP,MAAA;;MAEI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG;IAC7C,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG;IAC7C,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG;IAC5C,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE;MAC9C,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE7B;MACI,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG;;MAElC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG;;MAE3D,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;MACvB,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;MACrB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;;AAE3B;AACA,MAAI,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;;AAEzD;MACI,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC1B,MAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE5B,MAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;MACxB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG;;MAEvB,IAAI,GAAG,GAAG,CAAC;AACf,MAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;AACjD,MAAA;;AAEA,MAAI,OAAO,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG;IAChC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC1B,MAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE5B,MAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;;MAExB,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS;AACrD,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACnC,QAAM,KAAK,GAAG,CAAC,GAAG,GAAG;AACrB,MAAA;;MAEI,IAAI,CAAC,MAAM,EAAE;MACb,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI;IACxC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACxC,MAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC5B,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;;MAEnB,IAAI,CAAC,GAAG,IAAI;AAChB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;;AAErB,MAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC1B,QAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAA,CAAK,MAAM;AACX,QAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACnB,MAAA;;AAEA;AACA,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACrB,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;;AAErB;AACA,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACrB,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;;MAEjB,IAAI,CAAC,GAAG,CAAC;;MAET,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AACrC,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,QAAM,EAAE,CAAC;AACT,MAAA;;AAEA,MAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;AACtB,MAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;;AAEtB,MAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;AACxB,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;YACd,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACtC,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,YAAA;;AAEA,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,UAAA;AACA,QAAA;;AAEA,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;YACd,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACtC,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,YAAA;;AAEA,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,UAAA;AACA,QAAA;;QAEM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACzB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAO,MAAM;AACb,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;AACV,QAAM,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;OAChB;IACL,CAAG;;AAEH;AACA;AACA;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,EAAE;AAC5C,MAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC5B,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;;MAEnB,IAAI,CAAC,GAAG,IAAI;AAChB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;;AAErB,MAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC1B,QAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAA,CAAK,MAAM;AACX,QAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACnB,MAAA;;AAEA,MAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,MAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;;AAEtB,MAAI,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE;;AAEzB,MAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC3C,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,YAAU,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;AAC1B,cAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAA;;AAEA,YAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,UAAA;AACA,QAAA;;AAEA,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,YAAU,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;AAC1B,cAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAA;;AAEA,YAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,UAAA;AACA,QAAA;;QAEM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACzB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,CAAO,MAAM;AACb,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA;AACA,MAAA;;AAEA,MAAI,IAAI,GAAG;MACP,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;QACnB,GAAG,GAAG,EAAE;AACd,MAAA,CAAK,MAAM;QACL,GAAG,GAAG,EAAE;AACd,MAAA;;MAEI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,QAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE;MACnC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE;;AAEvC,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,MAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE;AACvB,MAAI,CAAC,CAAC,QAAQ,GAAG,CAAC;AAClB,MAAI,CAAC,CAAC,QAAQ,GAAG,CAAC;;AAElB;AACA,MAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE;AAC3D,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAA;;AAEA,MAAI,GAAG;AACP,QAAM,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,QAAA;AACA,QAAM,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,QAAA;;QAEM,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB;UACQ,IAAI,CAAC,GAAG,CAAC;UACT,CAAC,GAAG,CAAC;UACL,CAAC,GAAG,CAAC;AACb,QAAA,CAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;UACrC;AACR,QAAA;;AAEA,QAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACf,MAAA,CAAK,QAAQ,IAAI;;AAEjB,MAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;MACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,IAAI;MACrC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;IAC9B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;MAChB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE;AAC1B,MAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;AAElB;AACA,MAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,QAAM,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA;MACI,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACzB,CAAC,IAAI,KAAK;AAChB,QAAM,KAAK,GAAG,CAAC,KAAK,EAAE;QAChB,CAAC,IAAI,SAAS;AACpB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAA;AACA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;QACrB,IAAI,CAAC,MAAM,EAAE;AACnB,MAAA;AACA,MAAI,OAAO,IAAI;IACf,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,MAAI,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;;AAE1B,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;MAC/C,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,EAAE,OAAO,CAAC;;MAE7C,IAAI,CAAC,MAAM,EAAE;;AAEjB,MAAI,IAAI,GAAG;AACX,MAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,GAAG,GAAG,CAAC;AACb,MAAA,CAAK,MAAM;QACL,IAAI,QAAQ,EAAE;UACZ,GAAG,GAAG,CAAC,GAAG;AAClB,QAAA;;AAEA,QAAM,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,mBAAmB,CAAC;;QAE7C,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/B,QAAM,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;AAC5C,MAAA;MACI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAC5C,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;AACA;AACA;AACA;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,EAAE;AAC5D,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC;;MAEvD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;MACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAC5C,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C;MACI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;MACtC,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;;MAEvC,IAAI,GAAG,GAAG,CAAC;AACf,MAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;;AAE9B,QAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;UACT,GAAG,GAAG,EAAE;AAChB,QAAA,CAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;UAChB,GAAG,GAAG,CAAC;AACf,QAAA;QACM;AACN,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;MAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;IAChC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;MAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE;IAC/B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;MAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B,CAAG;;AAEH;AACA;AACA;AACA;IACE,EAAE,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AAC9B,MAAI,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC;IACvB,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MACxC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,CAAC;MAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,+BAA+B,CAAC;MAC5D,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;IAC7C,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sDAAsD,CAAC;MACxE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;IACrC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AACpD,MAAI,IAAI,CAAC,GAAG,GAAG,GAAG;AAClB,MAAI,OAAO,IAAI;IACf,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE;MAC9C,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,CAAC;AAC9D,MAAI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;MACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;MACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;MAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;MAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC1D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;AAC3D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;AAC3D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;AAC3D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC1D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;AAEH;IACE,IAAI,MAAM,GAAG;MACX,IAAI,EAAE,IAAI;MACV,IAAI,EAAE,IAAI;MACV,IAAI,EAAE,IAAI;AACd,MAAI,MAAM,EAAE;KACT;;AAEH;AACA,IAAE,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;AAC5B;AACA,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI;MAChB,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;MACtB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;MAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;AAElD,MAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AAC1B,IAAA;;IAEE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;AAC3C,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AAC1B,MAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACjD,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AACpD;AACA;MACI,IAAI,CAAC,GAAG,GAAG;AACf,MAAI,IAAI,IAAI;;AAEZ,MAAI,GAAG;QACD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7B,QAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,QAAM,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE;AAC1B,MAAA,CAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC;;AAE1B,MAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,MAAI,IAAI,GAAG,KAAK,CAAC,EAAE;AACnB,QAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,QAAM,CAAC,CAAC,MAAM,GAAG,CAAC;AAClB,MAAA,CAAK,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AACxB,QAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpB,MAAA,CAAK,MAAM;AACX,QAAM,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE;AACjC;UACQ,CAAC,CAAC,KAAK,EAAE;AACjB,QAAA,CAAO,MAAM;AACb;UACQ,CAAC,CAAC,MAAM,EAAE;AAClB,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO,CAAC;IACZ,CAAG;;AAEH,IAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;MACnD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAChC,CAAG;;IAED,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MAC5C,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAG;;IAED,SAAS,IAAI,IAAI;MACf,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,MAAM;AACZ,QAAM,yEAAyE,CAAC;AAChF,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;AAExB,IAAE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;AACxD;MACI,IAAI,IAAI,GAAG,QAAQ;;AAEvB,MAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1C,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,MAAA;AACA,MAAI,MAAM,CAAC,MAAM,GAAG,MAAM;;AAE1B,MAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3B,QAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,QAAM,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB;AACN,MAAA;;AAEA;MACI,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,MAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;;AAE/C,MAAI,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1D,IAAI,GAAG,IAAI;AACjB,MAAA;MACI,IAAI,MAAM,EAAE;MACZ,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;MAC1B,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;AACzC,QAAM,KAAK,CAAC,MAAM,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM;AACX,QAAM,KAAK,CAAC,MAAM,IAAI,CAAC;AACvB,MAAA;IACA,CAAG;;IAED,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC9C;MACI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;MACzB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACjC,MAAI,GAAG,CAAC,MAAM,IAAI,CAAC;;AAEnB;MACI,IAAI,EAAE,GAAG,CAAC;AACd,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9B,QAAM,EAAE,IAAI,CAAC,GAAG,KAAK;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACnC,QAAM,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,SAAS,IAAI,CAAC,CAAC;AAC5C,MAAA;;AAEA;AACA,MAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;QACnC,GAAG,CAAC,MAAM,EAAE;AAClB,QAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;UACnC,GAAG,CAAC,MAAM,EAAE;AACpB,QAAA;AACA,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,SAAS,IAAI,IAAI;MACf,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,MAAM;AACZ,QAAM,gEAAgE,CAAC;AACvE,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;IAEtB,SAAS,IAAI,IAAI;MACf,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,MAAM;AACZ,QAAM,uDAAuD,CAAC;AAC9D,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;IAEtB,SAAS,MAAM,IAAI;AACrB;MACI,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,OAAO;AACb,QAAM,qEAAqE,CAAC;AAC5E,IAAA;AACA,IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;;IAExB,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAChD;MACI,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAM,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;AAChD,QAAM,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS;QACvB,EAAE,MAAM,EAAE;;AAEhB,QAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;QACjB,KAAK,GAAG,EAAE;AAChB,MAAA;AACA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK;AACrC,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;IACE,EAAE,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AACpC;MACI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC;;AAEzC,MAAI,IAAI,KAAK;AACb,MAAI,IAAI,IAAI,KAAK,MAAM,EAAE;AACzB,QAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,QAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,QAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;AAClC,QAAM,KAAK,GAAG,IAAI,MAAM,EAAE;AAC1B,MAAA,CAAK,MAAM;AACX,QAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9C,MAAA;AACA,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK;;AAExB,MAAI,OAAO,KAAK;IAChB,CAAG;;AAEH;AACA;AACA;AACA,IAAE,SAAS,GAAG,EAAE,CAAC,EAAE;AACnB,MAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,QAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACtB,QAAM,IAAI,CAAC,KAAK,GAAG,KAAK;AACxB,MAAA,CAAK,MAAM;QACL,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gCAAgC,CAAC;AACxD,QAAM,IAAI,CAAC,CAAC,GAAG,CAAC;AAChB,QAAM,IAAI,CAAC,KAAK,GAAG,IAAI;AACvB,MAAA;AACA,IAAA;;IAEE,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE;MAC7C,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,+BAA+B,CAAC;AAC7D,MAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,iCAAiC,CAAC;IACpD,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE;AACpD,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,EAAE,+BAA+B,CAAC;AAC5E,MAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AACnC,QAAM,iCAAiC,CAAC;IACxC,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACzC,MAAI,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;;AAEhE,MAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAI,OAAO,CAAC;IACZ,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE;AACvC,MAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AACpB,QAAM,OAAO,CAAC,CAAC,KAAK,EAAE;AACtB,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;IACxC,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAClB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;MACnB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAClB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;MACnB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;MAChB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;MACrC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAClC,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE;MACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;MACrC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE;;MAEhC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9B,MAAI,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;;AAE1B;AACA,MAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,QAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7B,MAAA;;AAEA;AACA;AACA;MACI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,CAAC;AACb,MAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5C,QAAM,CAAC,EAAE;AACT,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAA;AACA,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;;AAEvB,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACnC,MAAI,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE;;AAE3B;AACA;AACA,MAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;MACnC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;AAC9B,MAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;;AAErC,MAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9C,QAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;AACrB,MAAA;;MAEI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;MACxC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,CAAC;MACT,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvB,IAAI,GAAG,GAAG,CAAC;AACjB,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,UAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE;AAC1B,QAAA;AACA,QAAM,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;AAEtD,QAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,QAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AACpB,QAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACf,CAAC,GAAG,CAAC;AACX,MAAA;;AAEA,MAAI,OAAO,CAAC;IACZ,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;MACrC,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,MAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5B,QAAM,GAAG,CAAC,QAAQ,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AACpC,MAAA,CAAK,MAAM;AACX,QAAM,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3B,MAAA;IACA,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAClD,MAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE;;MAEvC,IAAI,UAAU,GAAG,CAAC;MAClB,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC;AACxC,MAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,MAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACd,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACtC,MAAA;;AAEA,MAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;MAChB,IAAI,OAAO,GAAG,CAAC;MACf,IAAI,UAAU,GAAG,CAAC;MAClB,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;AACpC,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,KAAK,GAAG,EAAE;AAChB,MAAA;;AAEA,MAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,QAAM,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;UACnC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AACjC,UAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;AAC5B,YAAU,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,UAAA;;UAEQ,IAAI,GAAG,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;YAC9B,UAAU,GAAG,CAAC;YACd;AACV,UAAA;;UAEQ,OAAO,KAAK,CAAC;UACb,OAAO,IAAI,GAAG;AACtB,UAAQ,UAAU,EAAE;AACpB,UAAQ,IAAI,UAAU,KAAK,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;;AAE/D,UAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;UACjC,UAAU,GAAG,CAAC;UACd,OAAO,GAAG,CAAC;AACnB,QAAA;QACM,KAAK,GAAG,EAAE;AAChB,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;MACjD,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;MAExB,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;IACpC,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE;AACzD,MAAI,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE;AACzB,MAAI,GAAG,CAAC,GAAG,GAAG,IAAI;AAClB,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;AACA;AACA;;IAEE,EAAE,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAChC,MAAI,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC;IACxB,CAAG;;AAEH,IAAE,SAAS,IAAI,EAAE,CAAC,EAAE;AACpB,MAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;MAEjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;MAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE;QACzB,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1C,MAAA;;AAEA,MAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,MAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrC,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;MAEjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;;IAEnB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AACtD,MAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAG;;IAED,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE;AAC1D,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,MAAI,CAAC,CAAC,GAAG,GAAG,IAAI;AAChB,MAAI,OAAO,CAAC;IACZ,CAAG;;AAEH,IAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;MACzC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AAClC,QAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,QAAM,CAAC,CAAC,MAAM,GAAG,CAAC;AAClB,QAAM,OAAO,CAAC;AACd,MAAA;;MAEI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;MACpC,IAAI,GAAG,GAAG,CAAC;;MAEX,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACtB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MAC1B,CAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACxB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,MAAA;;AAEA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH,IAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;MACvC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;;MAE9D,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;MACpC,IAAI,GAAG,GAAG,CAAC;MACX,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACtB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MAC1B,CAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACxB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,MAAA;;AAEA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AAC1C;MACI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtD,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;EACH,CAAC,EAAmC,MAAM,EAAEC,EAAI,CAAC,CAAA;;;;;;;;AC39GjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;AACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;AACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,YAAY;AAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;AAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACpD,QAAQ,CAAC;AACT,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI;AACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACnF,IAAI,CAAC;AACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3C,YAAY;AACZ,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,CAAC;AACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD;AACA,SAAS,QAAQ,GAAG;AACpB,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;AACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,OAAO,EAAE,CAAC;AACd;;AAEA,IAAI,KAAK,kBAAkB,YAAY;AACvC,IAAI,SAAS,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAI,CAAC;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC,EAAE,CAAC,CAAC;AACL,IAAI,UAAU,kBAAkB,UAAU,MAAM,EAAE;AAClD,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAClC,IAAI,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AAC/D,QAAQ,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACtC,QAAQ,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACV,IAAI,UAAU,kBAAkB,UAAU,MAAM,EAAE;AAClD,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAClC,IAAI,SAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AAC9C,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AAC/D,QAAQ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AAC1B,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9B,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC,KAAK,CAAC,CAAC;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,YAAY;AACrC,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;AAC1C;AACA,QAAQ,OAAO,SAAS,CAAC;AACzB,IAAI,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,IAAI,OAAO,GAAG;AACd,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI;AACrD,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,2BAA2B,EAAE,GAAG;AACpC,IAAI,iBAAiB,EAAE,IAAI;AAC3B,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,mBAAmB,EAAE,QAGzB,CAAC,CAAC;AACF,IAAI,qBAAqB,kBAAkB,YAAY;AACvD,IAAI,SAAS,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,OAAO,KAAK,MAAM,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,UAAU,GAAG;AAC1B,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAClC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAChC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE;AAC5C,YAAY,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACvC,YAAY,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AAClG,YAAY,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAChD,YAAY,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACtG,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;AACrD;AACA,YAAY,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,YAAY,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;AACrC,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9B,gBAAgB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrH,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE;AAC/C,YAAY,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1C,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE;AACjC,gBAAgB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxH,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC7C,YAAY,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACvD,YAAY,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAC9F,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;AAC/B,gBAAgB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACjD,YAAY,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,YAAY,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC7C,YAAY,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACxC,YAAY,KAAK,CAAC,cAAc,EAAE,CAAC;AACnC,YAAY,IAAI,KAAK,CAAC,gBAAgB,EAAE;AACxC,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjC,YAAY,CAAC;AACb,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;AAC/B,gBAAgB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AACxB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAChC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACvC,YAAY,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC1C,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,YAAY,EAAE;AAC/D,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;AACzD,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,SAAS,EAAE;AAC5D,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,EAAE;AAC3D,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,UAAU,CAAC;AACpD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE;AACnE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,IAAI,CAAC;AAC9C,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE;AACtE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,OAAO,CAAC;AACjD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE;AACrE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,MAAM,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACrE,QAAQ,CAAC;AACT,QAAQ,GAAG,EAAE,UAAU,KAAK,EAAE;AAC9B,YAAY,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACrC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1B,gBAAgB,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5C,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE;AAC1E,gBAAgB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACjD,oBAAoB,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;AAC1C,gBAAgB,CAAC;AACjB,qBAAqB,IAAI,OAAO,YAAY,IAAI,EAAE;AAClD,oBAAoB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;AACxC,gBAAgB,CAAC;AACjB,qBAAqB;AACrB,oBAAoB,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;AAC9C,gBAAgB,CAAC;AACjB,gBAAgB,OAAO,GAAG,CAAC;AAC3B,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,YAAY,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AACpE,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE;AACA;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AACvD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;AACrD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1B,gBAAgB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAC3C,YAAY,CAAC;AACb,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;AAC5C,kBAAkB,qBAAqB,CAAC,MAAM;AAC9C,kBAAkB,qBAAqB,CAAC,UAAU,CAAC;AACnD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE;AAClE;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE;AACpE,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAC1D,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;AACjD,YAAY,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACjD,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE;AACxE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;AAC9D,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAQ,CAAC;AACT,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE;AAC3D,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE;AAC3D,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,QAAQ,CAAC;AACT,aAAa;AACb,YAAY,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC/H,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,mBAAmB,EAAE;AACjE,gBAAgB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7C,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE;AACjF,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACnC;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjD,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACrE,QAAQ,IAAI,GAAG,EAAE,EAAE,CAAC;AACpB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpD,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,IAAI;AAChB,gBAAgB,KAAK,IAAI,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE;AACzJ,oBAAoB,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;AACvD,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7D,gBAAgB,CAAC;AACjB,YAAY,CAAC;AACb,YAAY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACrD,oBAAoB;AACpB,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChH,gBAAgB,CAAC;AACjB,wBAAwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE;AACpF,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACnC;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACzD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;AACtB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACtD,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,CAAC;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACjC;AACA;AACA,YAAY,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAChE,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,2BAA2B,EAAE,2BAA2B,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC5W,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,YAAY,KAAK;AACjB,gBAAgB,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACnG,YAAY,IAAI,KAAK,GAAG,oBAAoB,EAAE;AAC9C,gBAAgB,KAAK,GAAG,oBAAoB,CAAC;AAC7C,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACzC,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACxD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE;AAC9C,YAAY,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;AACvD,QAAQ,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,WAAW,EAAE;AACzE,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAC7C,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC/C,YAAY,IAAI,GAAG,GAAG,WAAW,EAAE,CAAC;AACpC,YAAY,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzC,gBAAgB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,YAAY,CAAC;AACb,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AAC5B,gBAAgB,OAAO,GAAG,CAAC;AAC3B,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;AACnC,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAC3D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACzD,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,KAAK,MAAM,GAAG,kBAAkB,EAAE,GAAG,EAAE,CAAC;AAClR,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AAC5C,YAAY,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AACnF,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AACrC,YAAY,MAAM,KAAK,CAAC,mCAAmC,CAAC,CAAC;AAC7D,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,aAAa,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,aAAa,IAAI,CAAC,UAAU,GAAG,EAAE;AACjC;AACA,YAAY,IAAI,KAAK,CAAC,YAAY,EAAE;AACpC,gBAAgB,OAAO;AACvB,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/E,YAAY,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU;AACxC,kBAAkB,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC;AACtD,kBAAkB,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;AACrD,YAAY,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;AACvC,YAAY,KAAK,CAAC,aAAa,EAAE,CAAC;AAClC,YAAY,KAAK,CAAC,eAAe,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAClH,QAAQ,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACjE,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClE,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE;AAC1E,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAClE,QAAQ,CAAC;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AAC9D,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC7B,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;AACpF,QAAQ,IAAI,aAAa,IAAI,QAAQ,EAAE;AACvC;AACA,YAAY,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxC,QAAQ,CAAC;AACT,aAAa;AACb;AACA,YAAY,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;AACnE,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACjE,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAChE,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9D,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACjE,QAAQ,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3C,QAAQ,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1C,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,qBAAqB,CAAC;AACjC,CAAC,EAAE,CAAC;;AChkBJ,IAAI,YAAY,GAAG;AACnB;AACA,IAAI,IAAI,EAAE,EAAE;AACZ,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,MAAM,EAAE,EAAE;AACd;AACA;AACA,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,QAAQ,EAAE,2BAA2B;AACzC,IAAI,MAAM,EAAE,6BAA6B;AACzC,IAAI,UAAU,EAAE,gCAAgC;AAChD,IAAI,eAAe,EAAE,yBAAyB;AAC9C,IAAI,YAAY,EAAE,8BAA8B;AAChD,IAAI,KAAK,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA,IAAI,UAAU,EAAE,OAAO;AACvB,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,eAAe,EAAE,IAAI;AACzB,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,QAAQ,EAAE,KAAK;AACnB,CAAC;AACD,IAAI,aAAa,GAAG,KAAK;AACzB,MAAM,gBAAgB,GAAG;AACzB,IAAI,iBAAiB,EAAE;AACvB,QAAQ,QAAQ,EAAE,mCAAmC;AACrD,QAAQ,MAAM,EAAE,qCAAqC;AACrD,QAAQ,UAAU,EAAE,wCAAwC;AAC5D,QAAQ,eAAe,EAAE,iCAAiC;AAC1D,QAAQ,YAAY,EAAE,sCAAsC;AAC5D,KAAK;AACL,IAAI,oBAAoB,EAAE;AAC1B;AACA;AACA;AACA,QAAQ,QAAQ,EAAE,2BAA2B;AAC7C,QAAQ,MAAM,EAAE,6BAA6B;AAC7C,QAAQ,UAAU,EAAE,gCAAgC;AACpD,QAAQ,eAAe,EAAE,yBAAyB;AAClD,QAAQ,YAAY,EAAE,8BAA8B;AACpD,KAAK;AACL,CAAC;AACD;AACA,gBAAgB,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,GAAG;AAC7B,IAAI,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO;AACpC,IAAI,MAAM,MAAM,GAAG,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS;AAC1D,IAAI,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM;AAC9E,IAAI,IAAI,CAAC,IAAI;AACb,QAAQ,OAAO,SAAS;AACxB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,wCAAwC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,GAAG;AAC5B,IAAI,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO;AACpC,IAAI,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,gBAAgB;AAC7D;AACA,SAASC,MAAI,CAAC,SAAS,EAAE;AACzB,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACnD,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACpD,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;AACvF,QAAQ,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC;AACvG,QAAQ,aAAa,GAAG,IAAI;AAC5B,QAAQ,OAAO,EAAE;AACjB,IAAI,CAAC,CAAC;AACN;AACA,SAAS,qBAAqB,GAAG;AACjC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,QAAQ,IAAI,aAAa,EAAE;AAC3B,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM;AAC/C,gBAAgB,IAAI,aAAa,EAAE;AACnC,oBAAoB,aAAa,CAAC,QAAQ,CAAC;AAC3C,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,YAAY,CAAC,EAAE,EAAE,CAAC;AAClB,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,eAAe,SAAS,GAAG;AAC3B,IAAI,MAAM,qBAAqB,EAAE;AACjC,IAAI,OAAO,YAAY;AACvB;;AAEA,SAAS,uBAAuB,EAAE,CAAC,EAAE;AACrC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AAClG;;AAEA,IAAIC,QAAM,GAAG,EAAE;;AAEf,IAAIC,UAAQ,GAAG,EAAE;;AAEjB,IAAIC,qBAAmB;;AAEvB,SAASC,iBAAe,IAAI;AAC5B,CAAC,IAAID,qBAAmB,EAAE,OAAOD,UAAQ;AACzC,CAACC,qBAAmB,GAAG,CAAC;;AAExB,CAACD,UAAQ,CAAC,UAAU,GAAG,UAAU;AACjC,CAACA,UAAQ,CAAC,WAAW,GAAG,WAAW;AACnC,CAACA,UAAQ,CAAC,aAAa,GAAG,aAAa;;AAEvC,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,IAAI,SAAS,GAAG,EAAE;AACnB,CAAC,IAAI,GAAG,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,UAAU,GAAG,KAAK;;AAEjE,CAAC,IAAI,IAAI,GAAG,kEAAkE;AAC9E,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClD,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACtB,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpC,CAAC;;AAED;AACA;AACA,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;;AAElC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE;AACxB,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM;;AAEvB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE;AACpB,KAAK,MAAM,IAAI,KAAK,CAAC,gDAAgD;AACrE,GAAG;;AAEH;AACA;AACA,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AAClC,GAAG,IAAI,QAAQ,KAAK,EAAE,EAAE,QAAQ,GAAG,GAAG;;AAEtC,GAAG,IAAI,eAAe,GAAG,QAAQ,KAAK;AACtC,OAAO;AACP,OAAO,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;;AAEzB,GAAG,OAAO,CAAC,QAAQ,EAAE,eAAe;AACpC,CAAC;;AAED;AACA,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE;AAC3B,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;AAC1B,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,GAAG,IAAI,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;AAChC,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,eAAe,IAAI,CAAC,GAAG,CAAC,IAAI;AACnD,CAAC;;AAED,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE;AACvD,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,eAAe,IAAI,CAAC,GAAG,CAAC,IAAI;AACnD,CAAC;;AAED,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE;AAC5B,GAAG,IAAI,GAAG;AACV,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;AAC1B,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,GAAG,IAAI,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEhC,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;;AAEjE,GAAG,IAAI,OAAO,GAAG,CAAC;;AAElB;AACA,GAAG,IAAI,GAAG,GAAG,eAAe,GAAG;AAC/B,OAAO,QAAQ,GAAG;AAClB,OAAO,QAAQ;;AAEf,GAAG,IAAI,CAAC;AACR,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AAChC,KAAK,GAAG;AACR,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI;AACxC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI;AACvC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI;AAChC,GAAG;;AAEH,GAAG,IAAI,eAAe,KAAK,CAAC,EAAE;AAC9B,KAAK,GAAG;AACR,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI;AAChC,GAAG;;AAEH,GAAG,IAAI,eAAe,KAAK,CAAC,EAAE;AAC9B,KAAK,GAAG;AACR,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI;AACvC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI;AAChC,GAAG;;AAEH,GAAG,OAAO;AACV,CAAC;;AAED,CAAC,SAAS,eAAe,EAAE,GAAG,EAAE;AAChC,GAAG,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AAClC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AAC7B,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5B,KAAK,MAAM,CAAC,GAAG,GAAG,IAAI;AACtB,CAAC;;AAED,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1C,GAAG,IAAI,GAAG;AACV,GAAG,IAAI,MAAM,GAAG,EAAE;AAClB,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACxC,KAAK,GAAG;AACR,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ;AACnC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AACrC,QAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC5B,KAAK,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACtC,GAAG;AACH,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE;AACxB,CAAC;;AAED,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE;AAChC,GAAG,IAAI,GAAG;AACV,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM;AACzB,GAAG,IAAI,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5B,GAAG,IAAI,KAAK,GAAG,EAAE;AACjB,GAAG,IAAI,cAAc,GAAG,KAAK,CAAC;;AAE9B;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,cAAc,EAAE;AAC3E,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACjG,GAAG;;AAEH;AACA,GAAG,IAAI,UAAU,KAAK,CAAC,EAAE;AACzB,KAAK,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,KAAK,KAAK,CAAC,IAAI;AACf,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,OAAO;AACP,MAAM;AACN,GAAG,CAAC,MAAM,IAAI,UAAU,KAAK,CAAC,EAAE;AAChC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACjD,KAAK,KAAK,CAAC,IAAI;AACf,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;AACxB,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,OAAO;AACP,MAAM;AACN,GAAG;;AAEH,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE;AACvB,CAAC;AACD,CAAC,OAAOA,UAAQ;AAChB;;AAEA,IAAIG,SAAO,GAAG,EAAE;;AAEhB;;AAEA,IAAIC,oBAAkB;;AAEtB,SAASC,gBAAc,IAAI;AAC3B,CAAC,IAAID,oBAAkB,EAAE,OAAOD,SAAO;AACvC,CAACC,oBAAkB,GAAG,CAAC;AACvB,CAACD,SAAO,CAAC,IAAI,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9D,GAAG,IAAI,CAAC,EAAE,CAAC;AACX,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AACrC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AAC7B,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC;AACxB,GAAG,IAAI,KAAK,GAAG,EAAE;AACjB,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC;AAClC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;AACxB,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;;AAE7B,GAAG,CAAC,IAAI,CAAC;;AAET,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACjB,GAAG,KAAK,IAAI,IAAI;AAChB,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;;AAE9E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACjB,GAAG,KAAK,IAAI,IAAI;AAChB,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;;AAE9E,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE;AAChB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AAClB,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;AAC1B,KAAK,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,QAAQ;AAC9C,GAAG,CAAC,MAAM;AACV,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AAClB,GAAG;AACH,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;AACjD,CAAC,CAAC;;AAEF,CAACA,SAAO,CAAC,KAAK,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;AACtE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACd,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AACrC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AAC7B,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC;AACxB,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACnE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AAClC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;AACxB,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;;AAE9D,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE1B,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,QAAQ,EAAE;AAC3C,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,KAAK,CAAC,GAAG,IAAI;AACb,GAAG,CAAC,MAAM;AACV,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,OAAO,CAAC,EAAE;AACV,OAAO,CAAC,IAAI,CAAC;AACb,KAAK;AACL,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE;AACzB,OAAO,KAAK,IAAI,EAAE,GAAG,CAAC;AACtB,KAAK,CAAC,MAAM;AACZ,OAAO,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,KAAK,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE;AACzB,OAAO,CAAC,EAAE;AACV,OAAO,CAAC,IAAI,CAAC;AACb,KAAK;;AAEL,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE;AAC5B,OAAO,CAAC,GAAG,CAAC;AACZ,OAAO,CAAC,GAAG,IAAI;AACf,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE;AAChC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAChD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK;AACpB,KAAK,CAAC,MAAM;AACZ,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC7D,OAAO,CAAC,GAAG,CAAC;AACZ,KAAK;AACL,GAAG;;AAEH,GAAG,OAAO,IAAI,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;;AAElF,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AACtB,GAAG,IAAI,IAAI,IAAI;AACf,GAAG,OAAO,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;;AAEjF,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;AACpC,CAAC,CAAC;AACF,CAAC,OAAOA,SAAO;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIG,mBAAiB;;AAErB,SAASC,eAAa,IAAI;AAC1B,CAAC,IAAID,mBAAiB,EAAE,OAAOP,QAAM;AACrC,CAACO,mBAAiB,GAAG,CAAC;AACtB,CAAC,CAAC,UAAU,SAAS,EAAE;;AAEvB,EAAE,MAAM,MAAM,GAAGJ,iBAAe,EAAE;AAClC,EAAE,MAAM,OAAO,GAAGG,gBAAc,EAAE;AAClC,EAAE,MAAM,mBAAmB;AAC3B,IAAI,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,UAAU;AACxE,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AACnD,QAAQ,IAAI;;AAEZ,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM;AAC3B,EAAE,SAAS,CAAC,UAAU,GAAG,UAAU;AACnC,EAAE,SAAS,CAAC,iBAAiB,GAAG,EAAE;;AAElC,EAAE,MAAM,YAAY,GAAG,UAAU;AACjC,EAAE,SAAS,CAAC,UAAU,GAAG,YAAY;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,mBAAmB,GAAG,iBAAiB,EAAE;;AAElD,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,OAAO,OAAO,KAAK,WAAW;AACnE,MAAM,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AAC3C,IAAI,OAAO,CAAC,KAAK;AACjB,MAAM,2EAA2E;AACjF,MAAM;AACN,KAAK;AACL,EAAE;;AAEF,EAAE,SAAS,iBAAiB,IAAI;AAChC;AACA,IAAI,IAAI;AACR,MAAM,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;AACtD,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC;AACxD,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC;AACvC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,KAAK;AAC3B,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,OAAO;AACb,IAAI;AACJ,EAAE;;AAEF,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE;AACpD,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,GAAG,EAAE,YAAY;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;AACzC,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI;AACJ,GAAG,CAAC;;AAEJ,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE;AACpD,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,GAAG,EAAE,YAAY;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;AACzC,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI;AACJ,GAAG,CAAC;;AAEJ,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE;AACjC,IAAI,IAAI,MAAM,GAAG,YAAY,EAAE;AAC/B,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,GAAG,MAAM,GAAG,gCAAgC;AACpF,IAAI;AACJ;AACA,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACtC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;AAChD,IAAI,OAAO;AACX,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,SAAS,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAClD;AACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;AAChD,QAAQ,MAAM,IAAI,SAAS;AAC3B,UAAU;AACV;AACA,MAAM;AACN,MAAM,OAAO,WAAW,CAAC,GAAG;AAC5B,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM;AAC7C,EAAE;;AAEF,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;;AAEzB,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAClD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,UAAU,CAAC,KAAK,EAAE,gBAAgB;AAC/C,IAAI;;AAEJ,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACnC,MAAM,OAAO,aAAa,CAAC,KAAK;AAChC,IAAI;;AAEJ,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACvB,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ,6EAA6E;AACrF,QAAQ,sCAAsC,IAAI,OAAO,KAAK;AAC9D;AACA,IAAI;;AAEJ,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;AACtC,SAAS,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE;AAC1D,MAAM,OAAO,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM;AAC5D,IAAI;;AAEJ,IAAI,IAAI,OAAO,iBAAiB,KAAK,WAAW;AAChD,SAAS,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC;AAC7C,SAAS,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE;AACjE,MAAM,OAAO,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM;AAC5D,IAAI;;AAEJ,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ;AACR;AACA,IAAI;;AAEJ,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;AACpD,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,EAAE;AAC9C,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM;AAC1D,IAAI;;AAEJ,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;AAC/B,IAAI,IAAI,CAAC,EAAE,OAAO;;AAElB,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;AACnE,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE;AACzD,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,MAAM;AACtF,IAAI;;AAEJ,IAAI,MAAM,IAAI,SAAS;AACvB,MAAM,6EAA6E;AACnF,MAAM,sCAAsC,IAAI,OAAO,KAAK;AAC5D;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAC3D,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM;AAC/C,EAAE,CAAC;;AAEH;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;AAC/D,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;;AAE3C,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;AAC7B,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,wCAAwC;AAClE,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE;AACzB,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,GAAG,IAAI,GAAG,gCAAgC;AAClF,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAI,UAAU,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE;AACnB,MAAM,OAAO,YAAY,CAAC,IAAI;AAC9B,IAAI;AACJ,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B;AACA;AACA;AACA,MAAM,OAAO,OAAO,QAAQ,KAAK;AACjC,UAAU,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ;AAChD,UAAU,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;AACtC,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,IAAI;AAC5B,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACjD,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ;AACrC,EAAE,CAAC;;AAEH,EAAE,SAAS,WAAW,EAAE,IAAI,EAAE;AAC9B,IAAI,UAAU,CAAC,IAAI,CAAC;AACpB,IAAI,OAAO,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACxD,EAAE;;AAEF;AACA;AACA;AACA,EAAE,MAAM,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AACvC,IAAI,OAAO,WAAW,CAAC,IAAI;AAC3B,EAAE,CAAC;AACH;AACA;AACA;AACA,EAAE,MAAM,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE;AAC3C,IAAI,OAAO,WAAW,CAAC,IAAI;AAC3B,EAAE,CAAC;;AAEH,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE;AACzD,MAAM,QAAQ,GAAG,MAAM;AACvB,IAAI;;AAEJ,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACtC,MAAM,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AACzD,IAAI;;AAEJ,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;AACnD,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;;AAElC,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;;AAE9C,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE;AAC3B;AACA;AACA;AACA,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;AAChC,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,aAAa,EAAE,KAAK,EAAE;AACjC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AACnE,IAAI,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACxC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;AAC7B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE;AACrC,IAAI,IAAI,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;AAC3C,MAAM,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC;AAC5C,MAAM,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU;AAC1E,IAAI;AACJ,IAAI,OAAO,aAAa,CAAC,SAAS;AAClC,EAAE;;AAEF,EAAE,SAAS,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE;AACvD,IAAI,IAAI,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE;AACzD,MAAM,MAAM,IAAI,UAAU,CAAC,sCAAsC;AACjE,IAAI;;AAEJ,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE;AACvD,MAAM,MAAM,IAAI,UAAU,CAAC,sCAAsC;AACjE,IAAI;;AAEJ,IAAI,IAAI,GAAG;AACX,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;AAC1D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AACjC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC;AAC7C,IAAI,CAAC,MAAM;AACX,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC;AACrD,IAAI;;AAEJ;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;;AAEhD,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE;AAC5B,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9B,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACzC,MAAM,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;;AAEnC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO;AACf,MAAM;;AAEN,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAC9B,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE;AAClC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACrE,QAAQ,OAAO,YAAY,CAAC,CAAC;AAC7B,MAAM;AACN,MAAM,OAAO,aAAa,CAAC,GAAG;AAC9B,IAAI;;AAEJ,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC1D,MAAM,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI;AACnC,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,OAAO,EAAE,MAAM,EAAE;AAC5B;AACA;AACA,IAAI,IAAI,MAAM,IAAI,YAAY,EAAE;AAChC,MAAM,MAAM,IAAI,UAAU,CAAC,iDAAiD;AAC5E,2BAA2B,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ;AAC5E,IAAI;AACJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE;AAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE;AAC3B,MAAM,MAAM,GAAG,CAAC;AAChB,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;AAC/B,EAAE;;AAEF,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE;AAC1C,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI;AAC5C,MAAM,CAAC,KAAK,MAAM,CAAC,SAAS;AAC5B,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,IAAI,IAAI,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;AAC7E,IAAI,IAAI,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;AAC7E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACpD,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ;AACR;AACA,IAAI;;AAEJ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO;;AAExB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;;AAEpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACxD,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ;AACR,MAAM;AACN,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,QAAQ,EAAE;AACrD,IAAI,QAAQ,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;AAC1C,MAAM,KAAK,KAAK;AAChB,MAAM,KAAK,MAAM;AACjB,MAAM,KAAK,OAAO;AAClB,MAAM,KAAK,OAAO;AAClB,MAAM,KAAK,QAAQ;AACnB,MAAM,KAAK,QAAQ;AACnB,MAAM,KAAK,QAAQ;AACnB,MAAM,KAAK,MAAM;AACjB,MAAM,KAAK,OAAO;AAClB,MAAM,KAAK,SAAS;AACpB,MAAM,KAAK,UAAU;AACrB,QAAQ,OAAO;AACf,MAAM;AACN,QAAQ,OAAO;AACf;AACA,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACjD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,MAAM,IAAI,SAAS,CAAC,6CAA6C;AACvE,IAAI;;AAEJ,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,IAAI;;AAEJ,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B,MAAM,MAAM,GAAG,CAAC;AAChB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxC,QAAQ,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAChC,MAAM;AACN,IAAI;;AAEJ,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;AAC7C,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AACvC,QAAQ,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;AAC9C,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3D,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/B,QAAQ,CAAC,MAAM;AACf,UAAU,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;AACvC,YAAY,MAAM;AAClB,YAAY,GAAG;AACf,YAAY;AACZ,WAAW;AACX,QAAQ;AACR,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxC,QAAQ,MAAM,IAAI,SAAS,CAAC,6CAA6C;AACzE,MAAM,CAAC,MAAM;AACb,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC7B,MAAM;AACN,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM;AACvB,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjC,MAAM,OAAO,MAAM,CAAC;AACpB,IAAI;AACJ,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;AACvE,MAAM,OAAO,MAAM,CAAC;AACpB,IAAI;AACJ,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ,4EAA4E;AACpF,QAAQ,gBAAgB,GAAG,OAAO;AAClC;AACA,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM;AAC7B,IAAI,MAAM,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACrE,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,CAAC,EAAE,OAAO;;AAExC;AACA,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,SAAS;AACb,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,QAAQ;AACrB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO;AACjB,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AACrC,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,SAAS;AACtB,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,GAAG,GAAG;AACvB,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,GAAG,KAAK;AACzB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,QAAQ;AACR,UAAU,IAAI,WAAW,EAAE;AAC3B,YAAY,OAAO,SAAS,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;AAC9D,UAAU;AACV,UAAU,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE;AAClD,UAAU,WAAW,GAAG,IAAI;AAC5B;AACA,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU;;AAEhC,EAAE,SAAS,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AAC/C,IAAI,IAAI,WAAW,GAAG,KAAK;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;AAC1C,MAAM,KAAK,GAAG,CAAC;AACf,IAAI;AACJ;AACA;AACA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7B,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AAChD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AACvB,IAAI;;AAEJ,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE;AAClB,MAAM,OAAO;AACb,IAAI;;AAEJ;AACA,IAAI,GAAG,MAAM,CAAC;AACd,IAAI,KAAK,MAAM,CAAC;;AAEhB,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE;AACtB,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;;AAEpC,IAAI,OAAO,IAAI,EAAE;AACjB,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE1C,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE3C,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE5C,QAAQ,KAAK,QAAQ;AACrB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE7C,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE7C,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,SAAS;AACtB,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE9C,QAAQ;AACR,UAAU,IAAI,WAAW,EAAE,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AAC9E,UAAU,QAAQ,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE,WAAW,EAAE;AAClD,UAAU,WAAW,GAAG,IAAI;AAC5B;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI;;AAEnC,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACZ,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACvB,MAAM,MAAM,IAAI,UAAU,CAAC,2CAA2C;AACtE,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACvB,MAAM,MAAM,IAAI,UAAU,CAAC,2CAA2C;AACtE,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACvB,MAAM,MAAM,IAAI,UAAU,CAAC,2CAA2C;AACtE,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,IAAI;AACnD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC9B,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE,OAAO;AAC7B,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM;AAChE,IAAI,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS;AAC7C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;;AAE7D,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,EAAE;AAChD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B;AAC5E,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO;AAC3B,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;AACvC,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AACjD,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,MAAM,GAAG,GAAG,SAAS,CAAC,iBAAiB;AAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvE,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,OAAO;AACzC,IAAI,OAAO,UAAU,GAAG,GAAG,GAAG;AAC9B,EAAE,CAAC;AACH,EAAE,IAAI,mBAAmB,EAAE;AAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO;AACpE,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;AACvF,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;AACpE,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ,kEAAkE;AAC1E,QAAQ,gBAAgB,IAAI,OAAO,MAAM;AACzC;AACA,IAAI;;AAEJ,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,KAAK,GAAG,CAAC;AACf,IAAI;AACJ,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AAC3B,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACtC,IAAI;AACJ,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;AACjC,MAAM,SAAS,GAAG,CAAC;AACnB,IAAI;AACJ,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI;;AAEJ,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACpF,MAAM,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC/C,IAAI;;AAEJ,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,KAAK,IAAI,GAAG,EAAE;AAC9C,MAAM,OAAO;AACb,IAAI;AACJ,IAAI,IAAI,SAAS,IAAI,OAAO,EAAE;AAC9B,MAAM,OAAO;AACb,IAAI;AACJ,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE;AACtB,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,KAAK,MAAM,CAAC;AAChB,IAAI,GAAG,MAAM,CAAC;AACd,IAAI,SAAS,MAAM,CAAC;AACpB,IAAI,OAAO,MAAM,CAAC;;AAElB,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,OAAO;;AAEhC,IAAI,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS;AAC/B,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK;AACvB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE9B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;AACnD,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;;AAE/C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE;AACzC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AACzB,QAAQ;AACR,MAAM;AACN,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE;AACzE;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;;AAEpC;AACA,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACxC,MAAM,QAAQ,GAAG,UAAU;AAC3B,MAAM,UAAU,GAAG,CAAC;AACpB,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,UAAU,EAAE;AACxC,MAAM,UAAU,GAAG,UAAU;AAC7B,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,WAAW,EAAE;AACzC,MAAM,UAAU,GAAG,WAAW;AAC9B,IAAI;AACJ,IAAI,UAAU,GAAG,CAAC,UAAU,CAAC;AAC7B,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE;AACjC;AACA,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,IAAI;;AAEJ;AACA,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU;AAC/D,IAAI,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE;AACrC,MAAM,IAAI,GAAG,EAAE,OAAO;AACtB,WAAW,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACzC,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE;AAC/B,MAAM,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC;AAC7B,WAAW,OAAO;AAClB,IAAI;;AAEJ;AACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACtC,IAAI;;AAEJ;AACA,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9B;AACA,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO;AACf,MAAM;AACN,MAAM,OAAO,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG;AAChE,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AACvB,MAAM,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE;AAC9D,QAAQ,IAAI,GAAG,EAAE;AACjB,UAAU,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU;AAC1E,QAAQ,CAAC,MAAM;AACf,UAAU,OAAO,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU;AAC9E,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG;AAClE,IAAI;;AAEJ,IAAI,MAAM,IAAI,SAAS,CAAC,sCAAsC;AAC9D,EAAE;;AAEF,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE;AAC9D,IAAI,IAAI,SAAS,GAAG,CAAC;AACrB,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM;AAC9B,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM;;AAE9B,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;AAC/C,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO;AACrD,UAAU,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,UAAU,EAAE;AAC7D,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,UAAU,OAAO;AACjB,QAAQ;AACR,QAAQ,SAAS,GAAG,CAAC;AACrB,QAAQ,SAAS,IAAI,CAAC;AACtB,QAAQ,SAAS,IAAI,CAAC;AACtB,QAAQ,UAAU,IAAI,CAAC;AACvB,MAAM;AACN,IAAI;;AAEJ,IAAI,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;AAC3B,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE;AAC3B,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,MAAM,CAAC,MAAM;AACb,QAAQ,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS;AAC7C,MAAM;AACN,IAAI;;AAEJ,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,UAAU,GAAG,EAAE;AACzB,MAAM,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,UAAU,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE;AAChF,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE,UAAU,GAAG,CAAC;AAC/C,UAAU,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,KAAK,SAAS,EAAE,OAAO,UAAU,GAAG;AACpE,QAAQ,CAAC,MAAM;AACf,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU;AACpD,UAAU,UAAU,GAAG,EAAE;AACzB,QAAQ;AACR,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;AAChF,MAAM,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,QAAQ,IAAI,KAAK,GAAG,IAAI;AACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC5C,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;AACjD,YAAY,KAAK,GAAG,KAAK;AACzB,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,KAAK,EAAE,OAAO;AAC1B,MAAM;AACN,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC5E,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK;AACvD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC1E,IAAI,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI;AACrE,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE;AAClF,IAAI,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK;AACtE,EAAE,CAAC;;AAEH,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAClD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM;AACzC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,GAAG,SAAS;AACxB,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,MAAM,IAAI,MAAM,GAAG,SAAS,EAAE;AAC9B,QAAQ,MAAM,GAAG,SAAS;AAC1B,MAAM;AACN,IAAI;;AAEJ,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;;AAEhC,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;AAC7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;AACzB,IAAI;AACJ,IAAI,IAAI,CAAC;AACT,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1D,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO;AACtC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACnD,IAAI,OAAO,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AACnF,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACpD,IAAI,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AAC/D,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACrD,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AAChE,EAAE;;AAEF,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACnD,IAAI,OAAO,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AACtF,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC7E;AACA,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B,MAAM,QAAQ,GAAG,MAAM;AACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,MAAM,GAAG,CAAC;AAChB;AACA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACnE,MAAM,QAAQ,GAAG,MAAM;AACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,MAAM,GAAG,CAAC;AAChB;AACA,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;AAC3B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5B,QAAQ,MAAM,GAAG,MAAM,KAAK,CAAC;AAC7B,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,QAAQ,GAAG,MAAM;AACrD,MAAM,CAAC,MAAM;AACb,QAAQ,QAAQ,GAAG,MAAM;AACzB,QAAQ,MAAM,GAAG,SAAS;AAC1B,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,IAAI,KAAK;AACrB,QAAQ;AACR;AACA,IAAI;;AAEJ,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM;AAC1C,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS;;AAEtE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACnF,MAAM,MAAM,IAAI,UAAU,CAAC,wCAAwC;AACnE,IAAI;;AAEJ,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;;AAEpC,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,SAAS;AACb,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEtD,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEvD,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,QAAQ;AACrB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAExD,QAAQ,KAAK,QAAQ;AACrB;AACA,UAAU,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEzD,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,SAAS;AACtB,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEvD,QAAQ;AACR,UAAU,IAAI,WAAW,EAAE,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AAC9E,UAAU,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE;AAClD,UAAU,WAAW,GAAG,IAAI;AAC5B;AACA,IAAI;AACJ,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3D;AACA,EAAE,CAAC;;AAEH,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACzC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE;AAC3C,MAAM,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG;AACrC,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACvD,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACvC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,IAAI,MAAM,GAAG,GAAG,EAAE;;AAElB,IAAI,IAAI,CAAC,GAAG,KAAK;AACjB,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE;AACpB,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,SAAS,GAAG,IAAI;AAC1B,MAAM,IAAI,gBAAgB,GAAG,CAAC,SAAS,GAAG,IAAI;AAC9C,UAAU;AACV,UAAU,CAAC,SAAS,GAAG,IAAI;AAC3B,cAAc;AACd,cAAc,CAAC,SAAS,GAAG,IAAI;AAC/B,kBAAkB;AAClB,kBAAkB,CAAC;;AAEnB,MAAM,IAAI,CAAC,GAAG,gBAAgB,IAAI,GAAG,EAAE;AACvC,QAAQ,IAAI,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa;;AAE5D,QAAQ,QAAQ,gBAAgB;AAChC,UAAU,KAAK,CAAC;AAChB,YAAY,IAAI,SAAS,GAAG,IAAI,EAAE;AAClC,cAAc,SAAS,GAAG,SAAS;AACnC,YAAY;AACZ,YAAY;AACZ,UAAU,KAAK,CAAC;AAChB,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,EAAE;AAC9C,cAAc,aAAa,GAAG,CAAC,SAAS,GAAG,IAAI,KAAK,GAAG,IAAI,UAAU,GAAG,IAAI,CAAC;AAC7E,cAAc,IAAI,aAAa,GAAG,IAAI,EAAE;AACxC,gBAAgB,SAAS,GAAG,aAAa;AACzC,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,UAAU,KAAK,CAAC;AAChB,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,IAAI,EAAE;AAC7E,cAAc,aAAa,GAAG,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,KAAK,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC;AACxG,cAAc,IAAI,aAAa,GAAG,KAAK,KAAK,aAAa,GAAG,MAAM,IAAI,aAAa,GAAG,MAAM,CAAC,EAAE;AAC/F,gBAAgB,SAAS,GAAG,aAAa;AACzC,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,UAAU,KAAK,CAAC;AAChB,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,EAAE;AAC7G,cAAc,aAAa,GAAG,CAAC,SAAS,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,KAAK,GAAG,IAAI,UAAU,GAAG,IAAI,CAAC;AACtI,cAAc,IAAI,aAAa,GAAG,MAAM,IAAI,aAAa,GAAG,QAAQ,EAAE;AACtE,gBAAgB,SAAS,GAAG,aAAa;AACzC,cAAc;AACd,YAAY;AACZ;AACA,MAAM;;AAEN,MAAM,IAAI,SAAS,KAAK,IAAI,EAAE;AAC9B;AACA;AACA,QAAQ,SAAS,GAAG,MAAM;AAC1B,QAAQ,gBAAgB,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,MAAM,EAAE;AACrC;AACA,QAAQ,SAAS,IAAI,OAAO;AAC5B,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;AACnD,QAAQ,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK;AAC9C,MAAM;;AAEN,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACzB,MAAM,CAAC,IAAI,gBAAgB;AAC3B,IAAI;;AAEJ,IAAI,OAAO,qBAAqB,CAAC,GAAG;AACpC,EAAE;;AAEF;AACA;AACA;AACA,EAAE,MAAM,oBAAoB,GAAG,MAAM;;AAErC,EAAE,SAAS,qBAAqB,EAAE,UAAU,EAAE;AAC9C,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM;AACjC,IAAI,IAAI,GAAG,IAAI,oBAAoB,EAAE;AACrC,MAAM,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AAC1D,IAAI;;AAEJ;AACA,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE;AACpB,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK;AACtC,QAAQ,MAAM;AACd,QAAQ,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,oBAAoB;AACrD,OAAO;AACP,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACxC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;;AAEnC,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACzC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;;AAEnC,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACtC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;;AAE1B,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;AACtC,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG;;AAE/C,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1C,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACvC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjE,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AACvD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK;AACnB,IAAI,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG;;AAEzC,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACnB,MAAM,KAAK,IAAI,GAAG;AAClB,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;AAC9B,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,EAAE;AAC5B,MAAM,KAAK,GAAG,GAAG;AACjB,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE;AACjB,MAAM,GAAG,IAAI,GAAG;AAChB,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;AAC1B,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;AAC1B,MAAM,GAAG,GAAG,GAAG;AACf,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK;;AAEhC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;AAC5C;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;;AAEnD,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;AACA;AACA,EAAE,SAAS,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AACnF,IAAI,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,uCAAuC;AAC3F,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AAC7B,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACnF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE/D,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;AACnC,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AAC7B,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACnF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;AAClD,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,CAAC;AACzC,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,OAAO,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC7C,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,CAAC,GAAG,GAAG;AAC9C,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS;AAC5B,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;AACrE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC,MAAM;AACtB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;AAChD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAChD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACzB,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS;AACrC,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS;AACpC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE;AAC1F,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,EAAE,GAAG,KAAK;AACpB,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;;AAE9B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;;AAEpB,IAAI,OAAO,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;AACjD,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE;AAC1F,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC;;AAEpB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AACvC,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI;;AAEV,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE;AACjD,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACjF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE/D,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;AACnC,IAAI;AACJ,IAAI,GAAG,IAAI,IAAI;;AAEf,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;;AAEtD,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACjF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE/D,IAAI,IAAI,CAAC,GAAG,UAAU;AACtB,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAChC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AACpC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG;AACrC,IAAI;AACJ,IAAI,GAAG,IAAI,IAAI;;AAEf,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;;AAEtD,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;AACnE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,MAAM,CAAC;AACpD,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC1C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,UAAU,GAAG;AAC/C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,UAAU,GAAG;AAC/C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACxB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;AAC7B,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,kBAAkB,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE;AACxF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AAChC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;;AAEnB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;AACrC,MAAM,MAAM,CAAC,KAAK;AAClB,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,kBAAkB,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE;AACxF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE;AAC5B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC;;AAEpB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AACrC,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI;AACV,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACjD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAClD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACjD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAClD,EAAE,CAAC;;AAEH,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACxD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C;AAChG,IAAI,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,UAAU,CAAC,mCAAmC;AAC5F,IAAI,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC5E,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;AAC9B,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC5F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AACtD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5D,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI;AAC/B,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI;AAC7C,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;AAC9B,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC5F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AACtD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5D,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AACnC,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AACvC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI;AAC7C,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AAC7B,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC9E,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AACzD,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;AAE/C,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AACzD,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;AAE/C,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;AACpB,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACvG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACtF,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACvG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACtF,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC1F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;;AAErD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AAClE,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI;AAC/B,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAChE,QAAQ,GAAG,GAAG,CAAC;AACf,MAAM;AACN,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI;AAC1D,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC1F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;;AAErD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AAClE,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AACnC,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AACvC,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAChE,QAAQ,GAAG,GAAG,CAAC;AACf,MAAM;AACN,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI;AAC1D,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC5E,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/D,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC;AAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC;AAC5E,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,CAAC;AACjD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACrG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AAC1G,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACrG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AAC1G,EAAE,CAAC,CAAC;;AAEJ,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5D,IAAI,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC5E,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC7D,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;AACnE,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACzC,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;AACzD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;AAC1D,EAAE,CAAC;;AAEH,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;AACpE,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACzC,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;AAC1D,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;AAC3D,EAAE,CAAC;;AAEH;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,6BAA6B;AACnF,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC;AACzB,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM;AAC5C,IAAI,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM;AACjE,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC;AACrC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK;;AAE3C;AACA,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,OAAO;AAC9B,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;;AAEzD;AACA,IAAI,IAAI,WAAW,GAAG,CAAC,EAAE;AACzB,MAAM,MAAM,IAAI,UAAU,CAAC,2BAA2B;AACtD,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AACpF,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,UAAU,CAAC,yBAAyB;;AAE/D;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM;AAC5C,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG,GAAG,KAAK,EAAE;AACnD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK;AAC/C,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK;;AAE3B,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE;AAClF;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9C,IAAI,CAAC,MAAM;AACX,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;AACnC,QAAQ,MAAM;AACd,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;AACjC,QAAQ;AACR,OAAO;AACP,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE;AACpE;AACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACrC,QAAQ,QAAQ,GAAG,KAAK;AACxB,QAAQ,KAAK,GAAG,CAAC;AACjB,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM;AACzB,MAAM,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC1C,QAAQ,QAAQ,GAAG,GAAG;AACtB,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM;AACzB,MAAM;AACN,MAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAClE,QAAQ,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACvD,MAAM;AACN,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACxE,QAAQ,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AAC3D,MAAM;AACN,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,GAAG,GAAG;AAC9C,YAAY,QAAQ,KAAK,QAAQ,EAAE;AACnC;AACA,UAAU,GAAG,GAAG,IAAI;AACpB,QAAQ;AACR,MAAM;AACN,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG;AACrB,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;AACzC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACvB,IAAI;;AAEJ;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;AAC/D,MAAM,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC/C,IAAI;;AAEJ,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE;AACtB,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,KAAK,GAAG,KAAK,KAAK,CAAC;AACvB,IAAI,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;;AAErD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;;AAErB,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACpC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACrB,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG;AACvC,UAAU;AACV,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACpC,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM;AAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;AACrB,QAAQ,MAAM,IAAI,SAAS,CAAC,aAAa,GAAG,GAAG;AAC/C,UAAU,mCAAmC;AAC7C,MAAM;AACN,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;AACxC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;AACxC,MAAM;AACN,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;;AAEA;AACA,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;AACrC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,SAAS,IAAI,CAAC;AAC/C,MAAM,WAAW,CAAC,GAAG;AACrB,QAAQ,KAAK,EAAE;;AAEf,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;AAC/C,UAAU,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAClD,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,YAAY,EAAE;AACxB,SAAS,CAAC;;AAEV;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3C;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC;AACnB;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI;AACxB,MAAM;;AAEN,MAAM,IAAI,IAAI,CAAC,GAAG;AAClB,QAAQ,OAAO;AACf,MAAM;;AAEN,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,UAAU,YAAY,EAAE,IAAI;AAC5B,UAAU,UAAU,EAAE,IAAI;AAC1B,UAAU,KAAK;AACf,UAAU,QAAQ,EAAE;AACpB,SAAS,CAAC;AACV,MAAM;;AAEN,MAAM,QAAQ,CAAC,GAAG;AAClB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;AACtD,MAAM;AACN,KAAK;AACL,EAAE;;AAEF,EAAE,CAAC,CAAC,0BAA0B;AAC9B,IAAI,UAAU,IAAI,EAAE;AACpB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,4BAA4B;AACnD,MAAM;;AAEN,MAAM,OAAO;AACb,IAAI,CAAC,EAAE,UAAU,CAAC;AAClB,EAAE,CAAC,CAAC,sBAAsB;AAC1B,IAAI,UAAU,IAAI,EAAE,MAAM,EAAE;AAC5B,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,iDAAiD,EAAE,OAAO,MAAM,CAAC;AAC3F,IAAI,CAAC,EAAE,SAAS,CAAC;AACjB,EAAE,CAAC,CAAC,kBAAkB;AACtB,IAAI,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACjC,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,kBAAkB,CAAC;AACxD,MAAM,IAAI,QAAQ,GAAG,KAAK;AAC1B,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;AAChE,QAAQ,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC5C,QAAQ,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AAChC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;AACnF,UAAU,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AACpD,QAAQ;AACR,QAAQ,QAAQ,IAAI,GAAG;AACvB,MAAM;AACN,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzD,MAAM,OAAO;AACb,IAAI,CAAC,EAAE,UAAU,CAAC;;AAElB,EAAE,SAAS,qBAAqB,EAAE,GAAG,EAAE;AACvC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM;AACtB,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;AACxC,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACpC,EAAE;;AAEF;AACA;;AAEA,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;AACjD,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,SAAS,EAAE;AAC7E,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;AACxD,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;AACjE,IAAI,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE;AACpC,MAAM,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,EAAE;AAClD,MAAM,IAAI,KAAK;AACf,MAAM;AACN,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAC5C,UAAU,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC;AAC9E,kBAAkB,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK;AAC7D,IAAI;AACJ,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC;AACxC,EAAE;;AAEF,EAAE,SAAS,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,MAAM,IAAI,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK;AACjE,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;AAC7C,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;AACrC,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC;AACjC,MAAM,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK;AACrE,IAAI;;AAEJ,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE;AACpB,MAAM,MAAM,IAAI,MAAM,CAAC,wBAAwB;AAC/C,IAAI;;AAEJ,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ;AAC9C,sCAAsC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChE,sCAAsC,KAAK;AAC3C,EAAE;;AAEF;AACA;;AAEA,EAAE,MAAM,iBAAiB,GAAG,mBAAmB;;AAE/C,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE;AAC7B;AACA,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3B;AACA,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;AACnD;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO;AAC/B;AACA,IAAI,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACjC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG;AACrB,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE;AACvC,IAAI,KAAK,GAAG,KAAK,IAAI,QAAQ;AAC7B,IAAI,IAAI,SAAS;AACjB,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AAChC,IAAI,IAAI,aAAa,GAAG,IAAI;AAC5B,IAAI,MAAM,KAAK,GAAG,EAAE;;AAEpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACrC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;;AAEtC;AACA,MAAM,IAAI,SAAS,GAAG,MAAM,IAAI,SAAS,GAAG,MAAM,EAAE;AACpD;AACA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B;AACA,UAAU,IAAI,SAAS,GAAG,MAAM,EAAE;AAClC;AACA,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/D,YAAY;AACZ,UAAU,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE;AACvC;AACA,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/D,YAAY;AACZ,UAAU;;AAEV;AACA,UAAU,aAAa,GAAG,SAAS;;AAEnC,UAAU;AACV,QAAQ;;AAER;AACA,QAAQ,IAAI,SAAS,GAAG,MAAM,EAAE;AAChC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,UAAU,aAAa,GAAG,SAAS;AACnC,UAAU;AACV,QAAQ;;AAER;AACA,QAAQ,SAAS,GAAG,CAAC,aAAa,GAAG,MAAM,IAAI,EAAE,GAAG,SAAS,GAAG,MAAM,IAAI,OAAO;AACjF,MAAM,CAAC,MAAM,IAAI,aAAa,EAAE;AAChC;AACA,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3D,MAAM;;AAEN,MAAM,aAAa,GAAG,IAAI;;AAE1B;AACA,MAAM,IAAI,SAAS,GAAG,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,KAAK,EAAE;AACpC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI;AACjC,UAAU,SAAS,GAAG,IAAI,GAAG;AAC7B,SAAS;AACT,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI;AACjC,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI;AACxC,UAAU,SAAS,GAAG,IAAI,GAAG;AAC7B,SAAS;AACT,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,QAAQ,EAAE;AACvC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,SAAS,IAAI,IAAI,GAAG,IAAI;AAClC,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI;AACxC,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI;AACxC,UAAU,SAAS,GAAG,IAAI,GAAG;AAC7B,SAAS;AACT,MAAM,CAAC,MAAM;AACb,QAAQ,MAAM,IAAI,KAAK,CAAC,oBAAoB;AAC5C,MAAM;AACN,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE;AAC9B,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC;AACA,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;AACjB,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;;AAE5B,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,aAAa,EAAE,GAAG,EAAE;AAC/B,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC;AAC9C,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;AACjD,IAAI,IAAI,CAAC;AACT,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE;AAC3D,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF;AACA;AACA;AACA,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;AAClC,IAAI,OAAO,GAAG,YAAY,IAAI;AAC9B,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI;AAC7E,QAAQ,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;AAC1C,EAAE;AACF,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE;AAC7B;AACA,IAAI,OAAO,GAAG,KAAK,GAAG;AACtB,EAAE;;AAEF;AACA;AACA,EAAE,MAAM,mBAAmB,GAAG,CAAC,YAAY;AAC3C,IAAI,MAAM,QAAQ,GAAG,kBAAkB;AACvC,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;AACxB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,QAAQ,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAClD,MAAM;AACN,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC,GAAG;;AAEN;AACA,EAAE,SAAS,kBAAkB,EAAE,EAAE,EAAE;AACnC,IAAI,OAAO,OAAO,MAAM,KAAK,WAAW,GAAG,sBAAsB,GAAG;AACpE,EAAE;;AAEF,EAAE,SAAS,sBAAsB,IAAI;AACrC,IAAI,MAAM,IAAI,KAAK,CAAC,sBAAsB;AAC1C,EAAE,CAAC;AACH,CAAC,CAAC,EAAEN,QAAM,CAAC;AACX,CAAC,OAAOA,QAAM;AACd;;AAEA,IAAIS,eAAa,GAAGD,eAAa,EAAE;;AAEnC,IAAI,gBAAgB;AACpB,IAAI,yBAAyB;;AAE7B,SAAS,qBAAqB,IAAI;AAClC,CAAC,IAAI,yBAAyB,EAAE,OAAO,gBAAgB;AACvD,CAAC,yBAAyB,GAAG,CAAC;;AAE9B,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;AAC1B,EAAE,WAAW;AACb,EAAE,aAAa;;AAEf;AACA,EAAE,2BAA2B;AAC7B,EAAE,mBAAmB;AACrB,EAAE,kCAAkC;AACpC,EAAE,iCAAiC;AACnC,EAAE,oCAAoC;AACtC,EAAE,wBAAwB;AAC1B,EAAE,uBAAuB;AACzB,EAAE,oBAAoB;AACtB,EAAE,kBAAkB;AACpB,EAAE,mBAAmB;AACrB,EAAE,iBAAiB;AACnB,EAAE,gCAAgC;AAClC,EAAE,+BAA+B;AACjC,EAAE,gCAAgC;AAClC,EAAE,gCAAgC;AAClC,EAAE,YAAY;AACd,EAAE,6BAA6B;AAC/B,EAAE,2BAA2B;AAC7B,EAAE,mCAAmC;AACrC,EAAE,iCAAiC;AACnC,EAAE,qBAAqB;AACvB,EAAE,cAAc;AAChB,EAAE,YAAY;AACd,EAAE,sBAAsB;AACxB,EAAE,iBAAiB;AACnB,EAAE,gBAAgB;AAClB,EAAE,eAAe;AACjB,EAAE;AACF,EAAE,CAAC;;AAEH;AACA,CAAC,gBAAgB,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;AAC/D,CAAC,OAAO,gBAAgB;AACxB;;AAEA,IAAI,qBAAqB,GAAG,qBAAqB,EAAE;AACnD,IAAI,cAAc,gBAAgB,uBAAuB,CAAC,qBAAqB,CAAC;;AAEhF,MAAM,SAAS,GAAG,aAAa;AAC/B,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,IAAI,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC;AAC9D,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChD,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC;AAChC;AACA,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AACpD,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3E,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,IAAI,QAAQ,KAAK,CAAC,IAAI,KAAK,cAAc;AACzC,SAAS,CAAC,KAAK,CAAC,QAAQ;AACxB,YAAY,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;AACzC,aAAa,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AAC3E;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;AAC/B;AACA,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AAC3F;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;AAC/B;AACA,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACjG;AACA,SAAS,iCAAiC,CAAC,KAAK,EAAE;AAClD,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC;AACnE;AACA,SAAS,UAAU,CAAC,KAAK,GAAG,SAAS,EAAE;AACvC,IAAI,MAAM,gBAAgB,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC;AACpE,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,QAAQ,OAAO,CAAC;AAChB,IAAI;AACJ;AACA,IAAI,IAAI,YAAY,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAC7D;AACA,IAAI,IAAI,YAAY,KAAK,CAAC,EAAE;AAC5B,QAAQ,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AAC/E,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC;AACpC;AACA,SAAS,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE;AACtD,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC;AACA,SAAS,gBAAgB,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,WAAW,GAAG,GAAG,EAAE;AACjF,IAAI,MAAM,eAAe,GAAG,CAAC,IAAI,WAAW,GAAG,WAAW;AAC1D,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAClD,IAAI,OAAO,KAAK,GAAG,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,WAAW,GAAG,GAAG,EAAE;AACxC,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK;AACnD,QAAQ,MAAM,KAAK,GAAG,WAAW,GAAG,WAAW;AAC/C,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AACjD,IAAI,CAAC;AACL;AACA,MAAM,eAAe,GAAG;AACxB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,cAAc,EAAE,iCAAiC;AACrD,IAAI,UAAU,EAAE,OAAO;AACvB,IAAI,kBAAkB,EAAE,KAAK;AAC7B,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;AACtB,IAAI,uBAAuB,EAAE,MAAM,EAAE,CAAC;AACtC,IAAI,gBAAgB,EAAE;AACtB,CAAC;AACD,SAAS,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE;AACnD,IAAI,OAAO,EAAE,GAAG,eAAe,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE;AAC1E;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,GAAG,KAAK,EAAE;AAC/E,IAAI,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,cAAc,IAAI,EAAE,CAAC;AACxE,IAAI,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC;AAC1D,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,oBAAoB,EAAE;AAC/D,QAAQ,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE;AACjD,IAAI;AACJ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY;AACpC,IAAI,OAAO,YAAY;AACvB;AACA,SAAS,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE;AAC1C;AACA,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACvD;AACA,QAAQ,OAAO,MAAM,CAAC,KAAK;AAC3B,IAAI;AACJ,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE;AAC/D,QAAQ,OAAO,MAAM,CAAC,SAAS;AAC/B,IAAI;AACJ,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE;AACjE,QAAQ,OAAO,MAAM,CAAC,UAAU;AAChC,IAAI;AACJ;AACA,eAAe,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE;AAChD,IAAI,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,YAAY;AACpD,IAAI,MAAM,oBAAoB,GAAG,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,IAAI,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC;AAClG;AACA,IAAI,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;AAClD,QAAQ,IAAI;AACZ,YAAY,MAAM,wBAAwB,GAAG,MAAM,oBAAoB;AACvE;AACA,YAAY,OAAO,wBAAwB,KAAK,KAAK;AACrD,QAAQ;AACR,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,oBAAoB;AAC/B;AACA,eAAe,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;AACvE,IAAI,YAAY,CAAC,UAAU,IAAI,CAAC;AAChC,IAAI,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,YAAY;AACpE,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC;AAC5D;AACA;AACA,IAAI,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;AACpC,IAAI,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE;AAC/E,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,eAAe;AAC7E,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,mBAAmB,GAAG,KAAK;AACpE,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC,QAAQ;AACR,QAAQ,MAAM,CAAC,OAAO,GAAG,OAAO;AAChC,IAAI;AACJ,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AAC9C,IAAI,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC;AACzD,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACrD,IAAI;AACJ,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,QAAQ,MAAM,aAAa,GAAG,MAAM;AACpC,YAAY,YAAY,CAAC,OAAO,CAAC;AACjC,YAAY,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAQ,CAAC;AACT,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;AACzC,YAAY,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE;AACpD,gBAAgB,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC;AACzE,YAAY;AACZ,QAAQ,CAAC,EAAE,KAAK,CAAC;AACjB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE;AAC7C,YAAY,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClF,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,eAAe,2BAA2B,CAAC,YAAY,EAAE,KAAK,EAAE;AAChE,IAAI,IAAI,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,OAAO;AACvD,QAAQ,MAAM,YAAY,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;AAClF;AACA,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,cAAc,KAAK;AACtD,IAAI,MAAM,oBAAoB,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACpF,QAAQ,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC;AACrD,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE;AACjD;AACA,YAAY,MAAM,CAAC,cAAc,GAAG,MAAM,KAAK;AAC/C,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,qBAAqB,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK;AACjG,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;AAChC;AACA,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC,QAAQ;AACR,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC;AACpE,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC/E;AACA,YAAY,OAAO,KAAK,CAAC,QAAQ;AACjC,QAAQ;AACR,QAAQ,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;AACpD,YAAY,OAAO,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;AAC1E,QAAQ;AACR,QAAQ,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC;AAC9D,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE;AAC1D,CAAC;AACD;AACA,UAAU,CAAC,cAAc,GAAG,cAAc;AAC1C,UAAU,CAAC,kBAAkB,GAAG,kBAAkB;AAClD,UAAU,CAAC,wBAAwB,GAAG,wBAAwB;AAC9D,UAAU,CAAC,iCAAiC,GAAG,iCAAiC;AAChF,UAAU,CAAC,gBAAgB,GAAG,gBAAgB;AAC9C,UAAU,CAAC,WAAW,GAAG,WAAW;AACpC,UAAU,CAAC,gBAAgB,GAAG,gBAAgB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE;AACxC,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACpD,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACnF,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/B;AACA,IAAI,WAAW;AACf,eAAe,kBAAkB,GAAG;AACpC,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AACnC,YAAY,OAAO,EAAE,MAAM,CAAC,UAAU;AACtC,YAAY,OAAO,EAAE;AACrB,gBAAgB,cAAc,EAAE,kBAAkB;AAClD,aAAa;AACb,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,WAAW;AACtB;AACA,eAAe,YAAY,GAAG;AAC9B,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE;AAC7C,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9B,IAAI,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;AACtD,QAAQ;AACR,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC;AACrF,eAAe,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AACvE,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE;AAC7C,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS;AACpG,IAAI,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;AACnD,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ;AACR,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,IAAI;AAC5B,IAAI,oBAAoB,GAAG,IAAI;AAC/B,eAAe,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;AACpD;AACA;AACA;AACA,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AACxD,IAAI,IAAI,iBAAiB,IAAI,oBAAoB,KAAK,SAAS,EAAE;AACjE,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,oBAAoB,GAAG,SAAS;AACpC,IAAI,IAAI,aAAa;AACrB,IAAI,aAAa,GAAG,iBAAiB,GAAG,CAAC,YAAY;AACrD,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AAC5C,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AACtC;AACA;AACA;AACA,YAAY,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1D,YAAY,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACzE,gBAAgB,YAAY;AAC5B,gBAAgB;AAChB,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnF,YAAY,OAAO,QAAQ,CAAC,IAAI;AAChC,QAAQ;AACR,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,iBAAiB,KAAK,aAAa,EAAE;AACrD,gBAAgB,iBAAiB,GAAG,IAAI;AACxC,gBAAgB,oBAAoB,GAAG,IAAI;AAC3C,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC,GAAG;AACR,IAAI,OAAO,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE;AACnD,IAAI,IAAI,CAAC,YAAY;AACrB,QAAQ;AACR,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;AACtD,QAAQ,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE;AACnD,YAAY,YAAY;AACxB,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK;AAC/B,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC/E,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf;AACA,IAAI;AACJ;AACA,eAAe,wBAAwB,CAAC,oBAAoB,EAAE;AAC9D;;AAEA,MAAM,iBAAiB,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE;AAClC,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAClC,QAAQ,IAAI,GAAG,KAAK,CAAC;AACrB,YAAY,GAAG,IAAI,IAAI;AACvB,aAAa,IAAI,GAAG,KAAK,CAAC;AAC1B,YAAY,GAAG,IAAI,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC;AACxB,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE;AACnF,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY;AACZ;AACA;AACA;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC5E,gBAAgB,MAAM,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;AACnE,gBAAgB,IAAI,WAAW,IAAI,WAAW,KAAK,OAAO,EAAE;AAC5D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,wDAAwD,EAAE,OAAO,CAAC,+CAA+C,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACvK,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC,oBAAoB,OAAO,CAAC,IAAI,CAAC,0GAA0G,CAAC;AAC5I,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;AAClJ,gBAAgB,MAAM,GAAG;AACzB,YAAY;AACZ,YAAY,OAAO,CAAC,IAAI,CAAC,4EAA4E,EAAE,GAAG,CAAC;AAC3G,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK;AACzC;AACA;AACA;AACA,QAAQ,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACpF,QAAQ,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO;AACrG,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB,YAAY,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,aAAa,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACpG,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,UAAU,GAAG;AAC9B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC9E,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU;AAC9C,YAAY,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE;AACzC,gBAAgB,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU;AACnD,gBAAgB,IAAI,CAAC,YAAY;AACjC,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC;AACvF,gBAAgB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,MAAM,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE;AAChL,oBAAoB,MAAM,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW;AACnG;AACA;AACA,oBAAoB,SAAS,CAAC,YAAY,CAAC;AAC3C,oBAAoB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC7F,oBAAoB,IAAI,CAAC,UAAU;AACnC,wBAAwB,OAAO,IAAI;AACnC,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACzD,oBAAoB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACvE,gBAAgB;AAChB;AACA,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB;AACA,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE;AACnE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,YAAY,GAAG;AAC1B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY;AACZ,QAAQ,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACjE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,eAAe,GAAG;AAC7B;AACA,QAAQ,OAAO,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACvE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,UAAU,GAAG;AACxB,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC9E,QAAQ,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI;AAC3D,IAAI;AACJ,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC9E,QAAQ,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI;AAChE,IAAI;AACJ;AACA,IAAI,OAAO,SAAS,GAAG;AACvB,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC9E,QAAQ,OAAO,OAAO,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI;AACzG,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE;AACjF,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY;AACZ,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC9E,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY;AACZ,QAAQ;AACR,QAAQ,UAAU,CAAC,OAAO,GAAG,OAAO;AACpC,QAAQ,UAAU,CAAC,WAAW,GAAG,WAAW;AAC5C;AACA,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACzE,YAAY,UAAU,CAAC,YAAY,GAAG,YAAY;AAClD,QAAQ;AACR,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAClG,QAAQ,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1F,IAAI;AACJ;AACA,iBAAiB,CAAC,2BAA2B,GAAG,yBAAyB;;AAEzE,IAAI,OAAO,GAAG,IAAI;AAClB,MAAM,yBAAyB,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE;AAC1B,QAAQ,OAAO,GAAG,GAAG;AACrB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,YAAY,GAAG;AAC1B,QAAQ,OAAO,OAAO,KAAK,IAAI;AAC/B,IAAI;AACJ,IAAI,OAAO,UAAU,GAAG;AACxB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC;AACjH,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,OAAO;AAC9B,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC;AACjH,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE;AAClC,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAClC,QAAQ,IAAI,GAAG,KAAK,CAAC;AACrB,YAAY,GAAG,IAAI,IAAI;AACvB,aAAa,IAAI,GAAG,KAAK,CAAC;AAC1B,YAAY,GAAG,IAAI,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACrC,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE;AACnF;AACA;AACA;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC5E,gBAAgB,MAAM,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;AACnE,gBAAgB,IAAI,WAAW,IAAI,WAAW,KAAK,OAAO,EAAE;AAC5D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,gEAAgE,EAAE,OAAO,CAAC,+CAA+C,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/K,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC,oBAAoB,OAAO,CAAC,IAAI,CAAC,kHAAkH,CAAC;AACpJ,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;AAClJ,gBAAgB,MAAM,GAAG;AACzB,YAAY;AACZ,YAAY,OAAO,CAAC,IAAI,CAAC,oFAAoF,EAAE,GAAG,CAAC;AACnH,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK;AACzC;AACA;AACA,QAAQ,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACpF,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO;AAC1G,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB,YAAY,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,aAAa,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACpG,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,UAAU,GAAG;AAC9B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACnF,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU;AAC9C,YAAY,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE;AACzC,gBAAgB,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU;AACnD,gBAAgB,IAAI,CAAC,YAAY;AACjC,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC;AACvF,gBAAgB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,MAAM,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE;AAChL,oBAAoB,MAAM,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,YAAY,CAAC;AAC5H,oBAAoB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAClG,oBAAoB,IAAI,CAAC,UAAU;AACnC,wBAAwB,OAAO,IAAI;AACnC,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACzD,oBAAoB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACvE,gBAAgB;AAChB;AACA,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB;AACA,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE;AACnE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,YAAY,GAAG;AAC1B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACtE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC5E,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,UAAU,GAAG;AACxB,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACvF,YAAY,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI;AAC/D,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,OAAO,SAAS,GAAG;AACvB,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACvF,YAAY,OAAO,OAAO,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI;AAC7G,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACvF,YAAY,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI;AACpE,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE;AACjF,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACnF,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY;AACZ,QAAQ;AACR,QAAQ,UAAU,CAAC,OAAO,GAAG,OAAO;AACpC,QAAQ,UAAU,CAAC,WAAW,GAAG,WAAW;AAC5C,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACzE,YAAY,UAAU,CAAC,YAAY,GAAG,YAAY;AAClD,QAAQ;AACR,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAClG,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC/F,IAAI;AACJ;AACA,yBAAyB,CAAC,2BAA2B,GAAG,yBAAyB;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uBAAuB,GAAG;AACnC,IAAI,OAAO,yBAAyB,CAAC,YAAY;AACjD,UAAU;AACV,UAAU,iBAAiB;AAC3B;;AAEA,IAAIE,gBAAc,gBAAgB,MAAM,CAAC,MAAM,CAAC;AAChD,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,uBAAuB,EAAE;AAC7B,CAAC,CAAC;;AAEF,IAAIC,YAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;;AAE9B;;AAEA,IAAIC,uBAAqB;;AAEzB,SAASC,mBAAiB,IAAI;AAC9B,CAAC,IAAID,uBAAqB,EAAE,OAAOD,YAAU,CAAC,OAAO;AACrD,CAACC,uBAAqB,GAAG,CAAC;AAC1B,CAAC,CAAC,UAAU,MAAM,EAAE,SAAS,EAAE;AAC/B;AACA,EAAE,IAAI,MAAM,GAAGJ,eAAa,EAAE;AAC9B,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM;;AAE5B;AACA,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACzB,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACzB,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE;AACnF,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM;AAC3B,EAAE,CAAC,MAAM;AACT;AACA,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;AAChC,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU;AACjC,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;AACtD,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM;AAC/C,EAAE;;AAEF,EAAE,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;AAExD;AACA,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;;AAE/B,EAAE,UAAU,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAC7D,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,MAAM,IAAI,SAAS,CAAC,+BAA+B;AACzD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM;AAC/C,EAAE,CAAC;;AAEH,EAAE,UAAU,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrD,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACrD,IAAI;AACJ,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACxC,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM;AACb,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,UAAU,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AAC3C,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACrD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,IAAI;AACtB,EAAE,CAAC;;AAEH,EAAE,UAAU,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE;AAC/C,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACrD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI;AACjC,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC,EAAEG,YAAU,EAAEA,YAAU,CAAC,OAAO,CAAC;AACnC,CAAC,OAAOA,YAAU,CAAC,OAAO;AAC1B;;AAEA,IAAIG,KAAG;AACP,IAAIC,gBAAc;;AAElB,SAASC,YAAU,IAAI;AACvB,CAAC,IAAID,gBAAc,EAAE,OAAOD,KAAG;AAC/B,CAACC,gBAAc,GAAG,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,OAAO,GAAGF,mBAAiB,EAAE,CAAC,MAAM;AACzC,CAAC,SAAS,IAAI,EAAE,QAAQ,EAAE;AAC1B,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAC1E,GAAG,IAAI,QAAQ,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;AACrC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG;AACtB,GAAG;AACH,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7B,KAAK,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;AAC1E,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;AACrB,GAAG;AACH,GAAG,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC7B,GAAG,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChD,GAAG,SAAS,MAAM,EAAE,MAAM,EAAE;AAC5B,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,YAAY,UAAU,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACjG,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC7E,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;AAC1C;AACA,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM;AAC7B,KAAK,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACrD,OAAO,MAAM,EAAE;AACf,OAAO,MAAM,EAAE;AACf,KAAK;AACL;AACA,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC;AACrD,KAAK,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACnC;AACA,KAAK,OAAO,MAAM,KAAK,IAAI,EAAE;AAC7B,OAAO,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC;AACA,OAAO,IAAI,CAAC,GAAG,CAAC;AAChB,OAAO,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACzF,SAAS,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AACxC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC;AACxC,SAAS,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC;AACrC,OAAO;AACP,OAAO,IAAI,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC5D,OAAO,MAAM,GAAG,CAAC;AACjB,OAAO,MAAM,EAAE;AACf,KAAK;AACL;AACA,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM;AAC5B,KAAK,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC5C,OAAO,GAAG,EAAE;AACZ,KAAK;AACL;AACA,KAAK,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACpC,KAAK,OAAO,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnE,KAAK,OAAO;AACZ,GAAG;AACH,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE;AAClC,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC9E,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxD,KAAK,IAAI,GAAG,GAAG,CAAC;AAChB;AACA,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE;AACpC,OAAO,MAAM,EAAE;AACf,OAAO,GAAG,EAAE;AACZ,KAAK;AACL;AACA,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACpC;AACA,KAAK,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AACjC;AACA,OAAO,IAAI,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AAC5C;AACA,OAAO,IAAI,QAAQ,GAAG,GAAG,EAAE,EAAE,MAAM,CAAC;AACpC;AACA,OAAO,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;AACrC;AACA,OAAO,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC;AACnC,OAAO,IAAI,CAAC,GAAG,CAAC;AAChB,OAAO,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACzF,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1C,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC;AACxC,SAAS,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC;AACpC,OAAO;AACP,OAAO,IAAI,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC5D,OAAO,MAAM,GAAG,CAAC;AACjB,OAAO,GAAG,EAAE;AACZ,KAAK;AACL;AACA,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM;AAC5B,KAAK,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7C,OAAO,GAAG,EAAE;AACZ,KAAK;AACL,KAAK,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AACzD,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC;AAC9B,KAAK,IAAI,CAAC,GAAG,MAAM;AACnB,KAAK,OAAO,GAAG,KAAK,IAAI,EAAE;AAC1B,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7B,KAAK;AACL,KAAK,OAAO;AACZ,GAAG;AACH,GAAG,SAAS,MAAM,EAAE,MAAM,EAAE;AAC5B,KAAK,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACtC,KAAK,IAAI,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC;AACjC,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,YAAY;AACrD,GAAG;AACH,GAAG,OAAO;AACV,KAAK,MAAM,EAAE,MAAM;AACnB,KAAK,YAAY,EAAE,YAAY;AAC/B,KAAK,MAAM,EAAE;AACb;AACA,CAAC;AACD,CAACC,KAAG,GAAG,IAAI;AACX,CAAC,OAAOA,KAAG;AACX;;AAEA,IAAI,MAAM;AACV,IAAI,eAAe;;AAEnB,SAAS,WAAW,IAAI;AACxB,CAAC,IAAI,eAAe,EAAE,OAAO,MAAM;AACnC,CAAC,eAAe,GAAG,CAAC;AACpB,CAAC,IAAI,KAAK,GAAGE,YAAU,EAAE;AACzB,CAAC,IAAI,QAAQ,GAAG,4DAA4D;;AAE5E,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;AACzB,CAAC,OAAO,MAAM;AACd;;AAEA,IAAI,WAAW,GAAG,WAAW,EAAE;AAC/B,IAAI,IAAI,gBAAgB,uBAAuB,CAAC,WAAW,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAA4B,CAAC,EAAE,EAAE;AAC1C,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC/D,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,GAAG,WAAW,EAAE;AAClH,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AAClB,IAAI,MAAM,sBAAsB,GAAG,CAAC,GAAG,YAAY,CAAC;AACpD;AACA,IAAI,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,SAAS,CAAC,4BAA4B,CAAC;AAC5F,IAAI,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AACvE,QAAQ,KAAK,EAAE,OAAO;AACtB,KAAK,CAAC;AACN,IAAI,IAAI,iBAAiB,IAAI,CAAC,EAAE;AAChC,QAAQ,sBAAsB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;AACrE,IAAI;AACJ,SAAS;AACT,QAAQ,sBAAsB,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACzD,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,IAAI,oBAAoB,CAAC,IAAI,kBAAkB,CAAC;AAC5E,QAAQ,YAAY,EAAE,sBAAsB;AAC5C,QAAQ,QAAQ,EAAE,KAAK;AACvB;AACA;AACA,QAAQ,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;AACrD,KAAK,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACxC,IAAI,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE;AAC9E,QAAQ,sBAAsB,EAAE,IAAI;AACpC,QAAQ,SAAS,EAAE,KAAK;AACxB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,EAAE,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE;AACxI,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,mBAAmB;AAClI,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,IAAI,CAAC,CAAC;AACpE,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3J,IAAI;AACJ,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI;AAClD;AACA;AACA;AACA;AACA,eAAe,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE;AAChD,IAAI,IAAI,EAAE,EAAE,EAAE;AACd;AACA;AACA,IAAI,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,KAAK,WAAW,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,QAAQ;AAC9I,IAAI,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,KAAK,WAAW,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,QAAQ;AAC9I;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM,SAAS,EAAE,EAAE,KAAK;AAC3C,IAAI,MAAM,SAAS,GAAG,yDAAyD;AAC/E,IAAI,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE;AAClC,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE;AAC9C,IAAI,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1E,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE;AACvD;AACA;AACA;AACA,IAAI,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;AAC7B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC;AACzC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;AAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;AAC3B,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;AAClC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAC5C;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B;AACA;AACA;AACA;AACA,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;AACjC,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,IAAI,SAAS,GAAG,KAAK;AACzB;AACA,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,qBAAqB;AAC1C,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC;AACA,SAAS,iBAAiB,CAAC,SAAS,EAAE;AACtC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AACnC,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI;AACtB,QAAQ,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AAC/C,YAAY,IAAI,aAAa,GAAG,IAAI;AACpC,YAAY,IAAI,EAAE,CAAC,KAAK,EAAE;AAC1B,gBAAgB,IAAI,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AAC1C,oBAAoB,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC5D,wBAAwB,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;AACnG,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;AAC5F,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AAC/C,oBAAoB,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC5D,wBAAwB,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnE,4BAA4B,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;AAChI,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;AACvG,wBAAwB;AACxB,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;AAC5F,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;AAC3C,oBAAoB,aAAa,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACpF,gBAAgB;AAChB,qBAAqB,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;AAC7C,oBAAoB,aAAa,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;AAC9F,gBAAgB;AAChB,qBAAqB,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;AAC9C,oBAAoB,aAAa,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;AACvG,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,aAAa,GAAG,EAAE,CAAC,KAAK;AAC5C,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,GAAG,EAAE,EAAE,CAAC,GAAG;AAC3B,gBAAgB,KAAK,EAAE,aAAa;AACpC,gBAAgB,SAAS,EAAE,EAAE,CAAC,SAAS;AACvC,aAAa;AACb,QAAQ,CAAC,CAAC;AACV,KAAK,CAAC,CAAC;AACP;AACA,SAAS,wBAAwB,CAAC,iBAAiB,EAAE;AACrD,IAAI,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI;AACxC,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,YAAY,UAAU,EAAE,GAAG,CAAC,UAAU;AACtC,YAAY,QAAQ,EAAE,GAAG,CAAC;AAC1B,SAAS;AACT,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA;AACA,eAAe,4BAA4B,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,sBAAsB,EAAE;AACjL,IAAI,MAAM,eAAe,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AACrE,QAAQ,KAAK,EAAE,OAAO;AACtB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,gBAAgB,CAAC;AACrE,QAAQ,KAAK,EAAE,IAAI,GAAG,GAAG;AACzB,KAAK,CAAC;AACN,IAAI,MAAM,YAAY,GAAG,EAAE;AAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC5C,IAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC;AACzC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;AACzC,IAAI,IAAI,EAAE,GAAG,IAAI;AACjB,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,6CAA6C,EAAE;AACvE,QAAQ,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;AACxD,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;AAC3B,aAAa,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ;AACrG,aAAa,eAAe,CAAC,YAAY;AACzC,aAAa,QAAQ,CAAC;AACtB,YAAY,KAAK,EAAE;AACnB,SAAS;AACT,aAAa,iBAAiB,CAAC,iBAAiB;AAChD,aAAa,WAAW,EAAE;AAC1B,IAAI;AACJ,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,6CAA6C,EAAE;AAC5E,QAAQ,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;AACxD;AACA;AACA;AACA,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;AAC3B,aAAa,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ;AACpH,aAAa,eAAe,CAAC,YAAY;AACzC,aAAa,QAAQ,CAAC;AACtB,YAAY,KAAK,EAAE;AACnB,SAAS;AACT,aAAa,iBAAiB,CAAC,iBAAiB;AAChD,aAAa,WAAW,EAAE;AAC1B,IAAI;AACJ,SAAS;AACT,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,IAAI;AACJ,IAAI,EAAE,CAAC,QAAQ,GAAG,cAAc;AAChC,IAAI,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAChG,IAAI,EAAE,CAAC,eAAe,GAAG,SAAS;AAClC;AACA;AACA,IAAI,MAAM,YAAY,GAAG,EAAE;AAC3B,IAAI,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,IAAI,0BAA0B;AACzF,IAAI,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;AACrE,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACtJ,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;AAC9E,gBAAgB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/C,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,SAAS,IAAI,MAAM,IAAI,IAAI,EAAE;AAC7B;AACA;AACA;AACA,QAAQ,IAAI,KAAK,GAAG,IAAI;AACxB,QAAQ,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE;AACtD,YAAY,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3F,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,KAAK,GAAG,KAAK;AAC7B,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,OAAO,GAAG,CAAC;AAC3B,gBAAgB,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACjF,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AAClE,QAAQ,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,IAAI;AACJ,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,QAAQ,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,CAAC;AACnI,QAAQ,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AAClF,YAAY,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO;AAC9D,SAAS,CAAC,CAAC;AACX,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,wBAAwB;AACrD,QAAQ,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE;AACtD,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC;AACzI,IAAI,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AAC9E,QAAQ,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO;AAC1D,KAAK,CAAC,CAAC;AACP,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,wBAAwB;AACjD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACrD,QAAQ,QAAQ,EAAE,cAAc;AAChC,QAAQ,eAAe,EAAE,SAAS;AAClC,QAAQ,YAAY,EAAE,EAAE,CAAC,YAAY;AACrC,KAAK,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC;AACvC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC3D,IAAI,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,oBAAoB,EAAE;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY,GAAG,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;AACtE,SAAS,kBAAkB,GAAG;AAC9B,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,KAAK;AACb,IAAI,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;AACrC,QAAQ,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAQ,IAAI,CAAC,EAAE;AACf,YAAY,MAAM,GAAG,CAAC;AACtB,YAAY,KAAK,GAAG,IAAI;AACxB,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,uFAAuF,CAAC;AACjH,YAAY,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC;AAC/G,YAAY,CAAC,+FAA+F,CAAC;AAC7G,YAAY,CAAC,kGAAkG,CAAC;AAChH,YAAY,CAAC,qEAAqE,CAAC,CAAC;AACpF,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG;AACtD,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAChD,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACxC,QAAQ,OAAO,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACxF,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,oBAAoB,CAAC;AAC3B,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;AAClC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAC9E,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC;AAChD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,kBAAkB,EAAE;AAC5F,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC/C;AACA,QAAQ,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE;AAC1C,QAAQ,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;AAC9D;AACA,QAAQ,MAAM,QAAQ,GAAGC,MAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;AAC5F,QAAQ,MAAM,SAAS,GAAGR,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAChF;AACA,QAAQ,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;AACrH,QAAQ,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE;AAC9D,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACnC,YAAY,OAAO,IAAI,CAAC,OAAO;AAC/B,QAAQ;AACR;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;AAC1C,YAAY,OAAO,IAAI,CAAC,cAAc;AACtC,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;AAChD,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK;AAC/B,YAAY,IAAI,CAAC,OAAO,GAAG,OAAO;AAClC,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,aAAa,OAAO,CAAC,MAAM;AAC3B,YAAY,IAAI,CAAC,cAAc,GAAG,IAAI;AACtC,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC,IAAI;AACJ;AACA;AACA;AACA,IAAI,UAAU,CAAC,OAAO,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;AAClC,IAAI;AACJ;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI;AACpC,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC/H,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACpI,IAAI;AACJ;AACA;AACA,oBAAoB,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE;;AAE1D,IAAI,oBAAoB,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACtD,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,oBAAoB,EAAE;AAC1B,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,IAAI;AACJ,IAAI,OAAOA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxE;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,IAAI;AACJ,IAAI,OAAOA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AACzD,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;AACjB,QAAQ,GAAG,IAAI,IAAI;AACnB,SAAS,IAAI,GAAG,KAAK,CAAC;AACtB,QAAQ,GAAG,IAAI,GAAG;AAClB,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC;AACxB;;AAEA,eAAe,iBAAiB,CAAC,QAAQ,EAAE;AAC3C,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD,QAAQ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACrD,QAAQ,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE;AAClF,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC,UAAU,EAAE;AAC1D,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9B;AACA,eAAe,gBAAgB,CAAC,QAAQ,EAAE;AAC1C,IAAI,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AACzD,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO;AACX,QAAQ,aAAa,EAAE;AACvB,KAAK;AACL;AACA,eAAe,WAAW,CAAC,QAAQ,EAAE;AACrC,IAAI,MAAM,OAAO,GAAG,MAAMS,YAAU,CAAC,QAAQ,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,IAAI,OAAO,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAA6B,CAAC,OAAO,EAAE;AAChD,IAAI,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1D,IAAI,IAAI,CAAC,OAAO;AAChB,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI;AACR,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACxC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC5B,YAAY,OAAO,KAAK;AACxB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;AAC3D,QAAQ,MAAM,OAAO,GAAG,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;AAClF,cAAc;AACd,cAAc,IAAI;AAClB,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;AACpD,QAAQ,MAAM,EAAE,GAAG,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;AAC7E,cAAc;AACd,cAAc,OAAO;AACrB,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;AAC3C,QAAQ,MAAM,KAAK,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;AAC9E,cAAc,UAAU,CAAC,WAAW;AACpC,cAAc,IAAI;AAClB,QAAQ,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AACrC,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA,eAAeA,YAAU,CAAC,QAAQ,EAAE;AACpC,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD,QAAQ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACrD,QAAQ,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO;AAChF,IAAI;AACJ,IAAI,OAAO,uBAAuB,EAAE,CAAC,UAAU,EAAE;AACjD;AACA,eAAe,eAAe,CAAC,QAAQ,EAAE;AACzC,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD,QAAQ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACrD,QAAQ,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY;AACrF,IAAI;AACJ,IAAI,OAAO,uBAAuB,EAAE,CAAC,eAAe,EAAE;AACtD;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE;AACpC,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,QAAQ;AAChB,QAAQ,OAAO,SAAS;AACxB,IAAI,OAAO,CAAC,EAAE,GAAG,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;AAClG;AACA,eAAe,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,KAAK,EAAE,YAAY,EAAE;AACjG,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD;AACA,QAAQ,IAAI,OAAO,GAAG,IAAI;AAC1B,QAAQ,IAAI;AACZ,YAAY,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACnD,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY;AACZ,QAAQ;AACR,QAAQ,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO;AAC/F,YAAY,WAAW,EAAE,CAAC,GAAG,YAAY,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,CAAC;AACpE,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,uBAAuB,EAAE,CAAC,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;AACnG;;AAEA,IAAI,KAAK,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACvC,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,6BAA6B,EAAE,6BAA6B;AAChE,IAAI,UAAU,EAAEA,YAAU;AAC1B,IAAI,eAAe,EAAE,eAAe;AACpC,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,2BAA2B,EAAE;AACjC,CAAC,CAAC;;AAEF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE;AAChC,UAAU,CAAC,SAAS,EAAE;AACtB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,cAAc,EAAE,CAAC,KAAK,KAAK;AAC/B,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB;AACA;AACA;AACA,QAAQ,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK;AAC9L,IAAI,CAAC;AACL,IAAI,UAAU,EAAE,UAAU,CAAC,gBAAgB;AAC3C,IAAI,kBAAkB,EAAE,IAAI;AAC5B,IAAI,OAAO,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,KAAK;AACnD,QAAQ,IAAI,EAAE;AACd,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACxM,IAAI,CAAC;AACL,CAAC,CAAC;AACF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE;AACjC,eAAe,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACvD,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7C,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG,CAAC,YAAY;AACxC,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,IAAI;AACZ,YAAY,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AAChE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC9F,YAAY,IAAI,EAAE,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE;AAC1L,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,MAAM,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ;AACpG;AACA,YAAY,WAAW,CAAC,YAAY,CAAC;AACrC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE;AAC7R,gBAAgB,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAOR,gBAAc,CAAC,CAAC,CAAC,CAAC;AACxH,gBAAgB,uBAAuB,EAAE,CAAC,YAAY,EAAE;AACxD,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,gBAAgB;AAChB,YAAY,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;AACvC,QAAQ;AACR,IAAI,CAAC,GAAG;AACR,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC;AAC5C,IAAI,OAAO,cAAc;AACzB;AACA,eAAe,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;AACjE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtC,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,iCAAiC,GAAG,KAAK;AACjD,IAAI,MAAM,kBAAkB,GAAG,YAAY;AAC3C,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC5B,YAAY;AACZ,QAAQ,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACnH,QAAQ,oBAAoB,CAAC,QAAQ,CAAC,YAAY,EAAE;AACpD,IAAI,CAAC;AACL,IAAI,eAAe,cAAc,GAAG;AACpC,QAAQ,IAAI,EAAE;AACd;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,eAAe;AAC9G,cAAc,MAAM,UAAU,CAAC,eAAe;AAC9C,cAAc,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;AACpJ,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,MAAM,CAAC,4BAA4B,EAAE;AACjD,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,4BAA4B;AACnE,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW;AACjD,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE;AACxF,YAAY,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;AACtD,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK;AACrD,QAAQ,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK;AACrD,QAAQ,MAAM,aAAa,GAAG;AAC9B,YAAY,MAAM;AAClB,YAAY,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACvF,YAAY,OAAO;AACnB,YAAY,OAAO,EAAE,CAAC,EAAE,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,cAAc;AACtJ,SAAS;AACT,QAAQ,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE;AAClD,YAAY,aAAa,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;AACjE,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;AACvD,QAAQ,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;AAC1F,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,OAAO,MAAM,cAAc,EAAE;AACrC,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,EAAE;AAC5F;AACA,YAAY,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE;AAC/F,gBAAgB,MAAM,UAAU,CAAC,UAAU,EAAE;AAC7C,gBAAgB,OAAO,MAAM,cAAc,EAAE;AAC7C;AACA,YAAY;AACZ;AACA,YAAY,IAAI;AAChB,gBAAgB,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC7F,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,oBAAoB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AACrE,gBAAgB;AAChB,gBAAgB,OAAO,MAAM,cAAc,EAAE;AAC7C,YAAY;AACZ,YAAY,OAAO,aAAa,EAAE;AAClC;AACA,gBAAgB,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,iCAAiC,EAAE;AAC3E,oBAAoB,iCAAiC,GAAG,IAAI;AAC5D,oBAAoB,MAAM,kBAAkB,EAAE;AAC9C,oBAAoB,OAAO,MAAM,cAAc,EAAE;AACjD,gBAAgB;AAChB,gBAAgB,MAAM,KAAK;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,KAAK,GAAG,EAAE;AAC3F,YAAY,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AAC9C,QAAQ;AACR,QAAQ,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE;AAChF,YAAY,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK;AAChE,kBAAkB,KAAK,CAAC,QAAQ,CAAC;AACjC,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1D,YAAY,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC;AACjG,YAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;AACjD,YAAY,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AACtG;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI;AACnG,YAAY,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM;AAC9J,YAAY,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS;AAClH,YAAY,MAAM,QAAQ;AAC1B,QAAQ;AACR,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;;AAEA,IAAI,MAAM,GAAsC,UAAU,CAAC,EAAE,CAAC,EAAE;AAChE,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ;AACR,IAAI,OAAO,CAAC;AACZ,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,wBAAwB,SAAS,KAAK,CAAC;AAC7C,IAAI,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,UAAU,EAAE;AAC9F,QAAQ,KAAK,CAAC,CAAC,6BAA6B,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC/H,QAAQ,IAAI,CAAC,IAAI,GAAG,0BAA0B;AAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;AAC1D,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,IAAI;AACJ;AACA;AACA,MAAM,QAAQ,GAAG,EAAE;AACnB;AACA,MAAM,eAAe,GAAG,EAAE;AAC1B;AACA,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B;AACA,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;AAChC,QAAQ,OAAO,EAAE;AACjB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACvD,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;AACvC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1B,IAAI,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACjD,IAAI,OAAO,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AAClB,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7D,QAAQ,OAAO,GAAG;AAClB,IAAI,MAAM,CAAC,GAAG,GAAG;AACjB,IAAI,IAAI,IAAI,IAAI,CAAC;AACjB,QAAQ,OAAO,GAAG,CAAC;AACnB,IAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,YAAY;AACvL,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AACzD,QAAQ,OAAO,GAAG;AAClB,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9B,IAAI,IAAI,CAAC,IAAI;AACb,QAAQ,OAAO,GAAG;AAClB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,YAAY,EAAE,cAAc,EAAE;AAC3D,IAAI,IAAI,cAAc,EAAE;AACxB,QAAQ,IAAI,GAAG,GAAG,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACjE,YAAY,MAAM,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;AAC9E,YAAY,EAAE,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,GAAG,CAAC,EAAE;AACnD,YAAY,GAAG,GAAG,GAAG,CAAC,IAAI;AAC1B,QAAQ;AACR,QAAQ,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAC7C,YAAY,OAAO,IAAI;AACvB,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC;AAC9B,IAAI;AACJ;AACA,IAAI,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC9H,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACxH,IAAI;AACJ;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACrC,QAAQ,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;AACzD,IAAI;AACJ,IAAI,OAAO,YAAY;AACvB;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,IAAI;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU;AAC7D,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,OAAO,EAAE;AACzC,IAAI,IAAI,CAAC,OAAO;AAChB,QAAQ,OAAO,MAAM;AACrB,IAAI,IAAI;AACR,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACxC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC5B,YAAY,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,MAAM,OAAO;AACrB;AACA;AACA;AACA;AACA,QAAQ,OAAO,CAAC,eAAe,CAAC;AAChC,YAAY,OAAO,CAAC,sBAAsB,CAAC;AAC3C,YAAY,OAAO,CAAC,aAAa;AACjC,YAAY,OAAO,CAAC,GAAG;AACvB,YAAY,OAAO,CAAC,OAAO;AAC3B,QAAQ,IAAI,OAAO;AACnB,YAAY,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,QAAQ,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB,CAAC,SAAS,EAAE;AAC9C,IAAI,IAAI,EAAE,EAAE,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;AACpC;AACA,IAAI,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,cAAc,EAAE;AACxF,QAAQ,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;AACtD,IAAI;AACJ;AACA;AACA,IAAI,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,eAAe,EAAE;AACzF,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,eAAe,EAAE;AAC7D,YAAY,MAAM,SAAS,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa;AACtG,iBAAiB,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;AACzF,gBAAgB,EAAE;AAClB;AACA;AACA,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS;AACzD,kBAAkB,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;AAClD,kBAAkB,SAAS;AAC3B,YAAY,MAAM,SAAS,GAAG,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,MAAM;AAC9E,YAAY,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC3C,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB;AACA;AACA,YAAY,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAClF,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa;AAC5J,SAAS,CAAC,EAAE,GAAG,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC;AAC9I,IAAI,IAAI,UAAU,EAAE;AACpB,QAAQ,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS;AACtD,cAAc,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;AAC/C,cAAc,UAAU;AACxB,QAAQ,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;AAChG,IAAI;AACJ;AACA,IAAI,MAAM,OAAO,GAAG,MAAMQ,YAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC,yEAAyE,CAAC,CAAC;AAChI,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AAClC,QAAQ,OAAO,MAAM;AACrB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC/B,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAC/B,YAAY,OAAO,CAAC;AACpB;AACA,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,MAAM,CAAC,MAAM,CAAC,6EAA6E,CAAC,CAAC;AACxK,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChD;AACA,YAAY,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;AAC/C,gBAAgB,OAAO,KAAK,CAAC,KAAK;AAClC;AACA,YAAY,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AACzH,YAAY,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;AAC3C,gBAAgB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAQ;AACR;AACA,QAAQ,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAC/G,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACvH,IAAI;AACJ,IAAI,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;AAClF,QAAQ,OAAO,MAAM,CAAC,KAAK;AAC3B,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,OAAO,MAAM,CAAC,yDAAyD,CAAC,CAAC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AACtC,IAAI,IAAI,EAAE,EAAE,EAAE;AACd;AACA;AACA;AACA,IAAI,IAAI,gBAAgB,EAAE,EAAE;AAC5B,QAAQ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACtH,QAAQ,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE;AAChI,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,mJAAmJ;AACtK,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC;AAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3C,UAAU,MAAM;AAChB,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1G,IAAI,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;AACvD,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AAClB,IAAI,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AACtE,IAAI,IAAI,SAAS,KAAK,OAAO,EAAE;AAC/B,QAAQ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC;AACvE,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC;AACrH,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC3E,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,IAAI,IAAI,SAAS,KAAK,aAAa,EAAE;AACrC;AACA,QAAQ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;AACjF,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ;AACA,IAAI,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;AACjF,IAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC;AACpF,IAAI,MAAM,CAAC,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAChF,IAAI,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE;AACrD;AACA;AACA,IAAI,IAAI,gBAAgB,EAAE,EAAE;AAC5B,QAAQ,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;AACvE,IAAI;AACJ,IAAI,IAAI,MAAM;AACd,IAAI,QAAQ,SAAS;AACrB,QAAQ,KAAK,OAAO;AACpB,YAAY,MAAM,GAAG,mJAAmJ;AACxK,YAAY;AACZ,QAAQ,KAAK,aAAa;AAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAClF,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,wDAAwD,EAAE,IAAI,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,CAAC;AACtO,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AAChN,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AACpN,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AAC1N,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AAC1N,YAAY;AACZ,QAAQ;AACR,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5E;AACA,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC;AAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3C,UAAU,MAAM;AAChB,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1G;AACA;AACA;AACA,IAAI,IAAI,SAAS,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnF,QAAQ,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;AACtI,QAAQ,IAAI,oBAAoB,EAAE;AAClC,YAAY,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;AAC3C,QAAQ;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC;AAC7H,IAAI;AACJ,IAAI,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AACrD,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1B,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACpE,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACnE,QAAQ,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACpD,IAAI;AACJ,IAAI,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AACxD,QAAQ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AACjD,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AAC/D,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;AAC9B,QAAQ,IAAI,IAAI,IAAI,IAAI;AACxB,YAAY;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAClC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,qBAAqB,EAAE,GAAG,CAAC,iCAAiC,CAAC;AAC1F,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAChE,QAAQ;AACR,QAAQ,KAAK,MAAM,CAAC,IAAI,IAAI;AAC5B,YAAY,iBAAiB,CAAC,CAAC,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AAC1E,QAAQ,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACxC,IAAI,IAAI,IAAI,CAAC,KAAK;AAClB,QAAQ,SAAS,CAAC,KAAK,GAAG,IAAI;AAC9B,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AACtE,QAAQ,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAChC,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AACtE,QAAQ,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAChC,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AACtE,QAAQ,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAChC,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AACtE,QAAQ,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAChC,IAAI,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClF,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACvG,IAAI,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;AAC/F,IAAI,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAChF,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;AAC9B;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3B,QAAQ,OAAO,IAAI;AACnB,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,QAAQ,OAAO,IAAI,CAAC,IAAI;AACxB,IAAI,OAAO,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AAC9C,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACpE,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACnE,QAAQ,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACpD,IAAI;AACJ,IAAI,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AACxD,QAAQ,OAAO,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAClD,IAAI;AACJ,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAChE,QAAQ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAClE,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,QAAQ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;AACnC,YAAY,iBAAiB,CAAC,CAAC,CAAC;AAChC,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACjC,IAAI,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7E,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AAC7E,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AACvF,IAAI,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;AAC/G,IAAI,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAChF,IAAI,OAAO,QAAQ,CAAC,IAAI;AACxB;AACA,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AACpC,IAAI,IAAI;AACR,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACxE;AACA,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,YAAY,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5D,YAAY,OAAO,IAAI,KAAK,CAAC,wBAAwB,CAAC;AACtD,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AACrE,QAAQ,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,GAAG,WAAW,GAAG,EAAE;AAC1E,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AAC1E,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7E,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7F,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACvF,QAAQ,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;AACvE,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/J,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC9B;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;AAC3F,YAAY,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI;AAC1C,QAAQ;AACR;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ;AAC7E;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE;AAC/E;AACA,YAAY,OAAO,eAAe,CAAC,UAAU,CAAC;AAC9C,QAAQ;AACR;AACA,QAAQ,MAAM,cAAc,GAAG,CAAC,YAAY;AAC5C,YAAY,IAAI,EAAE;AAClB,YAAY,IAAI;AAChB;AACA,gBAAgB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AAChD,gBAAgB,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AACjF,gBAAgB,IAAI,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACrO,oBAAoB,IAAI;AACxB,wBAAwB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;AAC5I,wBAAwB,IAAI,mBAAmB,EAAE,EAAE;AACnD,4BAA4B,IAAI,cAAc,EAAE;AAChD,gCAAgC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;AAC5E,gCAAgC,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC;AACxF,gCAAgC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvD,oCAAoC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,aAAa,EAAE;AAC/G,gCAAgC;AAChC,gCAAgC,OAAO,YAAY;AACnD,4BAA4B;AAC5B,iCAAiC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAClD,gCAAgC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE;AAC/E,oCAAoC,MAAM,EAAE,SAAS;AACrD,oCAAoC,IAAI,EAAE,SAAS;AACnD,oCAAoC,eAAe,EAAE,IAAI,CAAC,eAAe;AACzE,iCAAiC,CAAC;AAClC,gCAAgC,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC;AACzF,gCAAgC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvD,oCAAoC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,GAAG,aAAa,EAAE;AAC/G,gCAAgC;AAChC,gCAAgC,OAAO,YAAY;AACnD,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,kCAAkC,EAAE,EAAE,6BAA6B;AACvF,gBAAgB;AAChB;AACA,gBAAgB,IAAI,QAAQ;AAC5B;AACA,gBAAgB,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,GAAG,uBAAuB,GAAG,EAAE;AAChG,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/G,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACzF,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AACnG,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACnH,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3G,gBAAgB,IAAI,cAAc,EAAE;AACpC,oBAAoB,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC;AACrE,oBAAoB,MAAM,WAAW,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAClG,oBAAoB,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnH,oBAAoB,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1F,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,CAAC;AACnE,oBAAoB,MAAM,gBAAgB,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAChJ,oBAAoB,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,oBAAoB,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;AACpK,oBAAoB,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1F,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;AACvF;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvC,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,GAAG;AACzC,wBAAwB,IAAI,EAAE,YAAY;AAC1C,wBAAwB,SAAS,EAAE,GAAG,GAAG;AACzC,qBAAqB;AACrB;AACA,oBAAoB,IAAI,GAAG,GAAG,gBAAgB,GAAG,IAAI,EAAE;AACvD,wBAAwB,mBAAmB,EAAE;AAC7C,wBAAwB,gBAAgB,GAAG,GAAG;AAC9C,oBAAoB;AACpB,gBAAgB;AAChB;AACA,gBAAgB,OAAO,YAAY;AACnC,YAAY;AACZ,oBAAoB;AACpB;AACA,gBAAgB,OAAO,eAAe,CAAC,UAAU,CAAC;AAClD,YAAY;AACZ,QAAQ,CAAC,GAAG;AACZ;AACA,QAAQ,eAAe,CAAC,UAAU,CAAC,GAAG,cAAc;AACpD;AACA,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA;AACA,SAAS,mBAAmB,GAAG;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACzC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE;AAC5D,YAAY,OAAO,QAAQ,CAAC,GAAG,CAAC;AAChC,QAAQ;AACR,IAAI,CAAC,CAAC;AACN,IAAI,gBAAgB,GAAG,GAAG;AAC1B;AACA,eAAe,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AACzC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;AAC3B,QAAQ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AACtE,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACxE,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,YAAY,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACxD,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5D,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AACzE,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,yDAAyD,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/F,QAAQ;AACR,QAAQ,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5C,IAAI;AACJ,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B;AACA;AACA,IAAI,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;AACnE,IAAI,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3C,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,MAAM,aAAa,GAAG,EAAE;AAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,QAAQ,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;AACjD,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;AAC3F,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;AAChF,QAAQ;AACR,aAAa;AACb,YAAY,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,YAAY,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9C,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC;AACnH;AACA;AACA;AACA;AACA,YAAY,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;AAClT,YAAY,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE;AAC9C,YAAY,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;AAChD,gBAAgB,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACzD,YAAY;AACZ,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7D,gBAAgB,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC;AACxD,gBAAgB,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC;AACvD,gBAAgB,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC;AACzE,gBAAgB,IAAI,YAAY,EAAE;AAClC;AACA;AACA,oBAAoB,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC1D,0BAA0B;AAC1B,0BAA0B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AACjH,oBAAoB,OAAO,CAAC,aAAa,CAAC,GAAG,gBAAgB;AAC7D,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACtE,wBAAwB,MAAM,QAAQ,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7E,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,GAAG;AAC7C,4BAA4B,IAAI,EAAE,gBAAgB,CAAC,IAAI;AACvD,4BAA4B,SAAS,EAAE,GAAG,GAAG;AAC7C,yBAAyB;AACzB,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,aAAa,CAAC,GAAG;AAC7C,wBAAwB,IAAI,EAAE,cAAc;AAC5C,wBAAwB,IAAI,EAAE,IAAI;AAClC,wBAAwB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC;AAC5G,qBAAqB;AACrB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,GAAG,GAAG,gBAAgB,GAAG,IAAI,EAAE;AAC/C,gBAAgB,mBAAmB,EAAE;AACrC,gBAAgB,gBAAgB,GAAG,GAAG;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE;AACzD,gBAAgB,OAAO,CAAC,aAAa,CAAC,GAAG;AACzC,oBAAoB,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC;AACxD,oBAAoB,IAAI,EAAE,IAAI;AAC9B,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe;AACjH,iBAAiB;AACjB,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,OAAO;AAClB;AACA,eAAe,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;AAClE,IAAI,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC;AACrF,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC;AACpB;AACA,eAAe,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;AACxC,IAAI,IAAI;AACR,QAAQ,IAAI,OAAO,GAAG,EAAE;AACxB,QAAQ,KAAK,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;AACnE,YAAY,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY;AACtG,YAAY,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AAC7E,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,8DAA8D,EAAE,YAAY,CAAC,CAAC,CAAC;AAChH,YAAY;AACZ,YAAY,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACxE,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AAC1I,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;AACnE,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA;AACA,eAAe,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;AAC7D,IAAI,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAChG,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC;AACrB;AACA,eAAe,iBAAiB,CAAC,IAAI,EAAE;AACvC,IAAI,IAAI;AACR,QAAQ,IAAI,OAAO,GAAG,EAAE;AACxB,QAAQ,IAAI,SAAS,GAAG,SAAS;AACjC,QAAQ,KAAK,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE;AAC9E;AACA,YAAY,IAAI,UAAU,IAAI,CAAC,SAAS,EAAE;AAC1C,gBAAgB,SAAS,GAAG,UAAU;AACtC,YAAY;AACZ,YAAY,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAC/D,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACxF;AACA,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK;AAC1D,YAAY,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE;AACzD;AACA,YAAY,IAAI,WAAW,CAAC,KAAK,EAAE;AACnC,gBAAgB,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK;AAChD,YAAY;AACZ,YAAY,OAAO,MAAM;AACzB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC;AAC/D;AACA,IAAI,kBAAkB,CAAC,IAAI,CAAC;AAC5B,IAAI,OAAO,MAAM;AACjB;AACA,eAAe,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1C;AACA,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY;AACzN,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;AAC5D,QAAQ;AACR,QAAQ,IAAI,SAAS,GAAG,EAAE;AAC1B,QAAQ,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAC3C,QAAQ,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,IAAI,IAAI,EAAE;AAC3E;AACA,YAAY,IAAI,QAAQ,GAAG,0BAA0B;AACrD,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACjI,YAAY;AACZ,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AAC9E,YAAY,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;AACjD,YAAY,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AAC7E,YAAY,IAAI,SAAS,GAAG,EAAE;AAC9B,YAAY,IAAI,cAAc,EAAE;AAChC,gBAAgB,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE;AAClG,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;AAChF,YAAY;AACZ;AACA,YAAY,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc;AACrH,YAAY,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;AACjD,YAAY,IAAI,eAAe,GAAG,cAAc;AAChD,YAAY,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,gBAAgB,eAAe,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,YAAY;AACZ,YAAY,SAAS,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AACzD,QAAQ;AACR,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;AACnI,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;AAC/H,oBAAoB,IAAI,mBAAmB,EAAE,EAAE;AAC/C;AACA;AACA;AACA,wBAAwB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;AAC/D,wBAAwB,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AACrE,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,OAAO,OAAO,EAAE;AAChC;AACA;AACA;AACA,oBAAoB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;AAC5I,oBAAoB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AACzG,oBAAoB,IAAI,CAAC,SAAS,EAAE;AACpC,wBAAwB,MAAM,OAAO;AACrC,oBAAoB;AACpB;AACA,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,gBAAgB,WAAW,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AACvJ,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,UAAU,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,sBAAsB,EAAE;AACpL,gBAAgB,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/G,gBAAgB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,eAAe,GAAG,UAAU,CAAC;AAChI,gBAAgB,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,qBAAqB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC;AACzS,YAAY;AACZ,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR;AACA,QAAQ,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1C,YAAY,kBAAkB,CAAC,IAAI,CAAC;AACpC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,EAAE;AACxC;AACA;AACA,YAAY,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,IAAI;AAC1E;AACA,YAAY,IAAI,mBAAmB,EAAE;AACrC,gBAAgB,MAAM,iBAAiB,GAAG,MAAM,yBAAyB,CAAC,mBAAmB,EAAE,YAAY,EAAE,OAAO,CAAC;AACrH,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;AAC/L,YAAY;AACZ;AACA,YAAY,IAAI,eAAe,GAAG,SAAS;AAC3C,YAAY,IAAI,iBAAiB,GAAG,SAAS;AAC7C,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1D,gBAAgB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;AAC7C,gBAAgB,IAAI,iBAAiB;AACrC,gBAAgB,IAAI,KAAK,CAAC,qBAAqB,EAAE;AACjD,oBAAoB,iBAAiB,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;AACrG,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,iBAAiB,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;AACnG,gBAAgB;AAChB,gBAAgB,eAAe,GAAG,iBAAiB,CAAC,oBAAoB;AACxE,gBAAgB,iBAAiB,GAAG,iBAAiB,CAAC,iBAAiB;AACvE,YAAY;AACZ;AACA;AACA,YAAY,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnE,YAAY,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AAC3D;AACA,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAC7J,QAAQ;AACR,aAAa,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,EAAE;AAC7C;AACA;AACA;AACA;AACA,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,EAAE;AAC3C,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAChH,YAAY;AACZ,iBAAiB,IAAI,WAAW,CAAC,IAAI;AACrC,gBAAgB,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;AACpD,gBAAgB,WAAW,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACnD,gBAAgB,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;AACvG,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACrI,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAClG,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC,CAAC;AACrE,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ,IAAI,eAAe,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;AACtE,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,kBAAkB,GAAG;AACnC,YAAY,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;AACnD,YAAY,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,eAAe;AAC/D,YAAY,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW;AACvD,YAAY,GAAG,EAAE,EAAE,CAAC,GAAG;AACvB,YAAY,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AACpG,gBAAgB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC3D,gBAAgB,MAAM,EAAET,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAChE;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS,EAAE,CAAC,MAAM;AAClC,oBAAoB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS;AAChD,oBAAoB,IAAI,GAAG,IAAI,IAAI;AACnC,wBAAwB,OAAOA,eAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,oBAAoB,IAAIA,eAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1D,wBAAwB,OAAO,GAAG;AAClC,oBAAoB,IAAI,GAAG,YAAY,UAAU;AACjD,wBAAwB,OAAOA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7D;AACA,oBAAoB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG;AACvD,0BAA0B;AAC1B,0BAA0B,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACpF,8BAA8B,GAAG,CAAC;AAClC,8BAA8B,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC7G,oBAAoB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AAC7D,wBAAwB,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;AAChG,wBAAwB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACtE,4BAA4B,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,8CAA8C,CAAC,CAAC;AAC/G,wBAAwB;AACxB,wBAAwB,OAAO,CAAC;AAChC,oBAAoB,CAAC,CAAC;AACtB,oBAAoB,OAAOA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3D,gBAAgB,CAAC,GAAG;AACpB,aAAa,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AACpD,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,cAAc,GAAG;AAC/B,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK;AAC/B,YAAY,MAAM,EAAE,CAAC,kBAAkB,CAAC;AACxC,YAAY,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC9E,YAAY,sBAAsB,EAAE,EAAE,CAAC,sBAAsB;AAC7D,YAAY,OAAO,EAAE,EAAE,CAAC,OAAO;AAC/B,YAAY,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AACjH,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAChG,oBAAoB,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,oBAAoB,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACxC,oBAAoB,UAAU,EAAE,CAAC,CAAC,UAAU;AAC5C,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,QAAQ;AACnF,sBAAsB,aAAa,CAAC,SAAS;AAC7C,sBAAsB,IAAI,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;AACjD,gBAAgB,MAAM,IAAI,GAAGA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/D,gBAAgB,OAAO,IAAI,sBAAsB,CAAC;AAClD,oBAAoB,IAAI;AACxB,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI;AACxB,iBAAiB,CAAC;AAClB,YAAY,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AACnD;AACA,YAAY,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;AACnD,SAAS;AACT,QAAQ,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC;AACvG,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,eAAe,yBAAyB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;AACxE,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,OAAO,KAAK;AACxD,cAAc;AACd,cAAc,qCAAqC,CAAC;AACpD,QAAQ,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9D,QAAQ,MAAM,OAAO,GAAGA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC;AACrF,QAAQ,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC;AACrE;AACA;AACA,QAAQ,MAAM,eAAe,GAAG,6CAA6C;AAC7E,QAAQ,MAAM,cAAc,GAAG,6CAA6C;AAC5E,QAAQ,MAAM,cAAc,GAAG,kCAAkC;AACjE,QAAQ,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AAC3F;AACA,QAAQ,MAAM,eAAe,GAAG,CAAC,CAAC;AAClC,QAAQ,MAAM,yBAAyB,GAAG,EAAE;AAC5C,QAAQ,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,iBAAiB;AACjE,QAAQ,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,OAAO,CAAC,oBAAoB,EAAE;AACnE,YAAY,IAAI,EAAE,CAAC,cAAc,IAAI,WAAW,CAAC,MAAM,EAAE;AACzD,gBAAgB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC;AACrG,YAAY;AACZ,YAAY,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;AACvE,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAClD,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,qDAAqD,EAAE,SAAS,CAAC,CAAC,CAAC;AACpG,YAAY;AACZ;AACA;AACA,YAAY,IAAI,SAAS,KAAK,cAAc,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AACrE,gBAAgB,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxG,gBAAgB,IAAI,OAAO,KAAK,eAAe,IAAI,OAAO,KAAK,yBAAyB,EAAE;AAC1F,oBAAoB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC;AAC9G,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC;AACxE,QAAQ,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE;AAC1C,QAAQ,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,MAAM,KAAK,EAAE;AAClG,YAAY,OAAO;AACnB,gBAAgB,oBAAoB,EAAE,EAAE;AACxC,gBAAgB,iBAAiB,EAAEA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtF,gBAAgB,WAAW,EAAE,CAAC;AAC9B,gBAAgB,OAAO,EAAE,GAAG;AAC5B,aAAa;AACb,QAAQ;AACR,QAAQ,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE;AACrE,YAAY,aAAa,EAAE,KAAK;AAChC,YAAY,UAAU,EAAE,CAAC;AACzB,SAAS,CAAC;AACV,QAAQ,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC;AACjE,YAAY,SAAS;AACrB,YAAY,SAAS,EAAE,EAAE,CAAC,SAAS;AACnC,YAAY,oBAAoB,EAAE,EAAE,CAAC,oBAAoB;AACzD,SAAS,EAAE,WAAW,CAAC;AACvB,QAAQ,OAAO;AACf,YAAY,oBAAoB,EAAE,SAAS;AAC3C,YAAY,iBAAiB,EAAEA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClF,YAAY,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC;AAC3I,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS;AACT,IAAI;AACJ,IAAI,eAAe,yBAAyB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;AACxE,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClC,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,YAAY,CAAC;AACvC,cAAc,MAAM,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO;AAC3D,cAAc,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACxD;AACA,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY;AACZ,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,MAAM,KAAK,EAAE;AAClG,YAAY,OAAO;AACnB,gBAAgB,SAAS,EAAE,EAAE;AAC7B,gBAAgB,iBAAiB,EAAEA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;AACxG,aAAa;AACb,QAAQ;AACR;AACA,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK;AAC1Z,QAAQ,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;AAC9E,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,MAAM,EAAE,iBAAiB;AACrC,YAAY,MAAM,EAAE,CAACA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC3F,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;AAChF,QAAQ,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE;AACnF,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC3D,QAAQ;AACR,QAAQ,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;AACpG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AACnC,IAAI,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;AACpE,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC;AACA,IAAI,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;AAC9E;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACzC,QAAQ,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC;AAC1C,QAAQ,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;AAClF,YAAY,OAAO,QAAQ,CAAC,GAAG,CAAC;AAChC,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AAChD;AACA,QAAQ,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG;AACvF,QAAQ,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC;AAChD,QAAQ,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;AAClF;AACA;AACA,YAAY,OAAO,eAAe,CAAC,GAAG,CAAC;AACvC,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2BAA2B,GAAG;AACvC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAC5E;AACA,eAAe,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AACvC,IAAI,IAAI;AACR,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AAC1E,QAAQ,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5D,YAAY,OAAO,IAAI,KAAK,CAAC,wBAAwB,CAAC;AACtD,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACxD,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AACzI,QAAQ,OAAO,QAAQ,CAAC,IAAI;AAC5B,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA,eAAe,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC5C,IAAI,IAAI,EAAE;AACV;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,eAAe,EAAE,IAAI;AAC7B,QAAQ,SAAS,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ;AAC7C,KAAK;AACL;AACA,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI;AAC7C,QAAQ,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS;AACxD;AACA;AACA,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE;AAChF,YAAY,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;AACnD,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;AACnJ,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;AACnI,QAAQ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AAC/C,IAAI;AACJ;AACA,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW;AACjD,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE;AAChD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,uCAAuC,EAAE,CAAC,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACpK,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK;AAC5C;AACA,IAAI,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;AACrD,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO,EAAE;AACjB,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI;AACrC,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;AAC5B,QAAQ,MAAM,cAAc,CAAC,IAAI,EAAE;AACnC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACA,eAAe,WAAW,CAAC,OAAO,EAAE;AACpC,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC9B,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;AACnF,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AACnD;AACA,eAAe,eAAe,CAAC,WAAW,EAAE;AAC5C,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC9B,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;AACnF,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC;AAC3D;AACA,eAAe,wBAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE;AAC/D,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC9B,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;AACnF,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC9E;AACA,eAAe,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE;AACzC,IAAI,IAAI;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AACnJ,QAAQ,OAAO,QAAQ,CAAC,IAAI;AAC5B,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;;AAEA,IAAI,UAAU,gBAAgB,MAAM,CAAC,MAAM,CAAC;AAC5C,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,wBAAwB,EAAE,wBAAwB;AACtD,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,2BAA2B,EAAE,2BAA2B;AAC5D,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,cAAc,EAAE,cAAc;AAClC,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,iBAAiB,EAAE,iBAAiB;AACxC,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,wBAAwB,EAAE,wBAAwB;AACtD,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,eAAe,EAAE,eAAe;AACpC,IAAI,SAAS,EAAE;AACf,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AAC7B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE;AAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C;AACA,MAAM,2BAA2B,GAAG,IAAI;AACxC,MAAM,6BAA6B,GAAG,IAAI;AAC1C,MAAM,sBAAsB,GAAG,MAAM;AACrC,MAAM,2BAA2B,GAAG,GAAG;AACvC,MAAM,iCAAiC,GAAG,IAAI;AAC9C,MAAM,wBAAwB,GAAG,CAAC;AAClC,MAAM,SAAS,GAAG;AAClB;AACA,IAAI,UAAU,EAAE,QAAQ;AACxB;AACA,IAAI,oBAAoB,EAAE,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,6BAA6B,CAAC;AACjH;AACA,IAAI,oBAAoB,EAAE,sBAAsB;AAChD;AACA,IAAI,2BAA2B,EAAE,2BAA2B;AAC5D;AACA,IAAI,iBAAiB,EAAE,KAAK;AAC5B,CAAC;AACD,MAAM,UAAU,GAAG,QAAQ;AAC3B,IAAI,6BAA6B,GAAG,KAAK;AACzC,IAAI,+BAA+B,GAAG,CAAC;AACvC,IAAI,mBAAmB,GAAG,IAAI;AAC9B;AACA,SAAS,sBAAsB,GAAG;AAClC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7E;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,GAAG,IAAI;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU;AAC7D,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACtE,IAAI,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;AACxF,IAAI,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC5D,IAAI,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7D,IAAI,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/G,IAAI,MAAM,WAAW,GAAG,QAAQ,IAAI,MAAM;AAC1C,IAAI,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,IAAI,IAAI,CAAC,OAAO;AAChB,QAAQ,OAAO,MAAM;AACrB,IAAI,IAAI;AACR,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACxC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC5B,YAAY,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,MAAM,OAAO;AACrB;AACA;AACA;AACA,QAAQ,OAAO,CAAC,eAAe,CAAC;AAChC,YAAY,OAAO,CAAC,sBAAsB,CAAC;AAC3C,YAAY,OAAO,CAAC,aAAa;AACjC,YAAY,OAAO,CAAC,GAAG;AACvB,YAAY,OAAO,CAAC,OAAO;AAC3B,QAAQ,IAAI,OAAO;AACnB,YAAY,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpD,QAAQ,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,IAAI;AACJ;AACA,eAAe,uBAAuB,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC5E;AACA;AACA;AACA;AACA,IAAI,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,cAAc,EAAE;AACxF,QAAQ,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,eAAe,EAAE;AACzF,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC;AACnF,YAAY,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AACzF,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB;AACA;AACA,YAAY,OAAO,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5G,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,MAAMS,YAAU,CAAC,QAAQ,CAAC;AAC9C,IAAI,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D;AACA;AACA,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,IAAI,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,aAAa,MAAM,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE;AAC7K,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;AAC3E;AACA;AACA,IAAI,eAAe,GAAG,CAAC;AACvB,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,IAAI,IAAI;AACR,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI;AACjD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE;AACtC,QAAQ,OAAO,WAAW,IAAI,cAAc,GAAG,KAAK,CAAC,CAAC;AACtD,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AACxE,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,IAAI,IAAI;AACR,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,QAAQ,OAAO,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI;AACtD,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,SAAS,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE;AACpD;AACA,IAAI,IAAI,UAAU,CAAC,iBAAiB,EAAE;AACtC,QAAQ,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACnD,QAAQ,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC3C,IAAI;AACJ;AACA;AACA;AACA,IAAI,UAAU,CAAC,iBAAiB,GAAG,WAAW,CAAC,YAAY;AAC3D,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1C,QAAQ,IAAI;AACZ,YAAY,MAAM,YAAY,GAAG,MAAMA,YAAU,CAAC,QAAQ,CAAC;AAC3D,YAAY,IAAI,CAAC,YAAY;AAC7B,gBAAgB,OAAO;AACvB,YAAY,MAAM,cAAc,GAAG,sBAAsB,CAAC,YAAY,CAAC;AACvE,YAAY,IAAI,CAAC,cAAc;AAC/B,gBAAgB;AAChB,YAAY,MAAM,eAAe,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE;AAC/D,YAAY,IAAI,eAAe,IAAI,oBAAoB,EAAE;AACzD,gBAAgB,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;AACnF;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,mBAAmB,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AAC/E,oBAAoB,IAAI,CAAC,mBAAmB,EAAE;AAC9C,wBAAwB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC;AAChG,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC7G,oBAAoB,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE;AACvF,wBAAwB,MAAM,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC;AAC3I,wBAAwB,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC;AACxG,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC;AAChG,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,OAAO,YAAY,EAAE;AACrC;AACA;AACA;AACA,oBAAoB,IAAI,CAAC,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,EAAE;AAChU,wBAAwB,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC;AAC3G,wBAAwB,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1D,4BAA4B,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvE,4BAA4B,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/D,wBAAwB;AACxB,wBAAwB;AACxB,oBAAoB;AACpB;AACA;AACA,oBAAoB,OAAO,CAAC,IAAI,CAAC,2EAA2E,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AAC9Z,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC;AAClV,QAAQ;AACR,IAAI,CAAC,EAAE,oBAAoB,CAAC;AAC5B;AACA,eAAe,iBAAiB,CAAC,QAAQ,EAAE;AAC3C,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1B,IAAI,MAAM,YAAY,GAAG,MAAMA,YAAU,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;AACvC,QAAQ,OAAO,YAAY;AAC3B,IAAI;AACJ;AACA,IAAI,IAAI;AACR,QAAQ,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AAC5D,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC;AAChF,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC1F,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE;AAC3E,YAAY,MAAM,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC;AAC/H,YAAY,OAAO,WAAW,CAAC,OAAO;AACtC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB;AACA;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS,CAAC;AACvU;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE;AACzR,YAAY,IAAI;AAChB,gBAAgB,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAOR,gBAAc,CAAC,CAAC,CAAC,CAAC;AACxH,gBAAgB,uBAAuB,EAAE,CAAC,YAAY,EAAE;AACxD,YAAY;AACZ,YAAY,OAAO,UAAU,EAAE;AAC/B,gBAAgB,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,UAAU,CAAC;AAClF,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC;AACpG,IAAI,OAAO,IAAI;AACf;AACA,SAAS,gCAAgC,GAAG;AAC5C,IAAI,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AAC5B,YAAY;AACZ,QAAQ;AACR;AACA;AACA,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,qBAAqB,EAAE;AAChE,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,+BAA+B,GAAG;AAC3C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B,IAAI,IAAI,GAAG,GAAG,+BAA+B,GAAG,iCAAiC,EAAE;AACnF,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,CAAC,gCAAgC,EAAE,EAAE;AAC7C,QAAQ;AACR,IAAI;AACJ,IAAI,+BAA+B,GAAG,GAAG;AACzC,IAAI,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;AAC9C,QAAQ,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC;AAC3E,IAAI,CAAC,CAAC;AACN;AACA,SAAS,+BAA+B,GAAG;AAC3C,IAAI,IAAI,6BAA6B,EAAE;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,6BAA6B,GAAG,IAAI;AACxC,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;AAC5C,QAAQ,+BAA+B,EAAE;AACzC,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM;AAC5D,YAAY,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE;AACxD,gBAAgB,+BAA+B,EAAE;AACjD,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,SAAS,EAAE;AACzC,IAAI,IAAI,CAAC,SAAS;AAClB,QAAQ,OAAO,IAAI;AACnB,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACzE,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AACvB,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC;AACA,eAAe,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE;AAClG,IAAI,+BAA+B,EAAE;AACrC;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC;AACnD;AACA;AACA;AACA,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK;AAC7D,IAAI,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,GAAG,IAAI;AACtE,IAAI,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7C,IAAI,IAAI,UAAU,IAAI,UAAU,CAAC,EAAE,EAAE;AACrC,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,EAAE,EAAE,IAAI;AAChB,QAAQ,aAAa,EAAE,IAAI,GAAG,EAAE;AAChC,QAAQ,oBAAoB,EAAE,IAAI,GAAG,EAAE;AACvC,QAAQ,sBAAsB,EAAE,IAAI,GAAG,EAAE;AACzC,QAAQ,eAAe,EAAE,IAAI,GAAG,EAAE;AAClC,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,KAAK;AACb,QAAQ,GAAG,EAAE,OAAO;AACpB,QAAQ,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS;AAClD,QAAQ,iBAAiB;AACzB,QAAQ,iBAAiB,EAAE,IAAI;AAC/B,QAAQ,uBAAuB,EAAE,CAAC;AAClC,KAAK;AACL,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC;AACxC;AACA,IAAI,MAAM,WAAW,GAAG,YAAY;AACpC,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9C;AACA,QAAQ,KAAK,CAAC,QAAQ,GAAG,UAAU;AACnC;AACA;AACA,QAAQ,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AAC7C,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;AACrD,QAAQ;AACR,aAAa,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,4BAA4B,EAAE;AACvF,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,4BAA4B,CAAC;AACnF,QAAQ;AACR,aAAa;AACb,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;AAC5D,QAAQ;AACR;AACA;AACA,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE;AAClC,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC;AACnE,QAAQ;AACR;AACA;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,UAAU,CAAC;AACrC,cAAc,MAAM,UAAU,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI;AACnE,cAAc,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AAC/C,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC;AACjE;AACA,YAAY,UAAU,CAAC,uBAAuB,GAAG,CAAC;AAClD,QAAQ;AACR,aAAa;AACb;AACA;AACA,YAAY,MAAM,YAAY,GAAG,MAAMQ,YAAU,CAAC,QAAQ,CAAC;AAC3D,YAAY,IAAI,YAAY,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE;AAC9D,gBAAgB,UAAU,CAAC,uBAAuB,EAAE;AACpD,gBAAgB,IAAI,UAAU,CAAC,uBAAuB,IAAI,wBAAwB,EAAE;AACpF,oBAAoB,OAAO,CAAC,IAAI,CAAC,CAAC,qCAAqC,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;AAClK,oBAAoB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AACvF,gBAAgB;AAChB,gBAAgB,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC;AAClH,YAAY;AACZ;AACA,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,QAAQ,EAAE;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,UAAU,CAAC,YAAY,GAAG,IAAI;AAClC,IAAI,MAAM,EAAE,GAAG,IAAI,qBAAqB,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxH,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE;AACtB;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;AACtC,QAAQ,UAAU,CAAC,YAAY,GAAG,KAAK;AACvC,QAAQ,UAAU,CAAC,WAAW,GAAG,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC;AAClD;AACA,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;AAC7D,YAAY,GAAG,CAAC,QAAQ,GAAG,SAAS;AACpC,YAAY,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC;AAC1C,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AAC9C,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AAClD,YAAY,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC;AACpD,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC;AAClE,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AAC5C,QAAQ,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AACxD,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC,oBAAoB,EAAE;AACnE,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE;AAC/C,IAAI,CAAC,CAAC;AACN;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACvC,QAAQ,UAAU,CAAC,WAAW,GAAG,KAAK;AACtC,QAAQ,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1C,YAAY,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvD,YAAY,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/C,QAAQ;AACR;AACA,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,eAAe,EAAE;AAChE,YAAY,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC/D,QAAQ;AACR,QAAQ,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE;AAC1C,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,UAAU;AACrB;AACA,SAAS,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE;AAClD,IAAI,IAAI,EAAE,EAAE,EAAE;AACd,IAAI,QAAQ,OAAO,CAAC,IAAI;AACxB,QAAQ,KAAK,YAAY,EAAE;AAC3B,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACrF,YAAY,IAAI,YAAY,EAAE;AAC9B;AACA;AACA;AACA,gBAAgB,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE;AACzD,oBAAoB,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;AACjM,oBAAoB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC9F,oBAAoB,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI;AACxD,oBAAoB,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC;AAC/D,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACvF,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,CAAC,OAAO,EAAE;AACjC,gBAAgB,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;AAC9E,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,cAAc,EAAE;AAC7B;AACA,YAAY,MAAM,OAAO,GAAG,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACzF,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,CAAC,OAAO,EAAE;AACjC,gBAAgB,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;AAChF,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,MAAM,EAAE;AACrB,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACrF,YAAY,IAAI,YAAY,EAAE;AAC9B;AACA,gBAAgB,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;AAC7L,gBAAgB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F;AACA,gBAAgB,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI;AACpD;AACA,gBAAgB,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC;AAC3D,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,UAAU,EAAE;AACzB,YAAY,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AAChF,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACpE,gBAAgB,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;AAC9C,gBAAgB,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;AAC3C,oBAAoB,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACpD,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,aAAa,EAAE;AAC5B,YAAY,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AAChF,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACpE,gBAAgB,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;AAC9C,gBAAgB,IAAI,OAAO,CAAC,UAAU,IAAI,GAAG,EAAE;AAC/C,oBAAoB,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzK,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACpD,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,OAAO,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;AACjF;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM,YAAY,GAAG,MAAM;AACvC,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,gBAAgB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;AACvC,gBAAgB,IAAI,OAAO,CAAC,SAAS;AACrC,oBAAoB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AACrD,gBAAgB,IAAI,OAAO,CAAC,cAAc;AAC1C,oBAAoB,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;AAC/D,gBAAgB,OAAO,GAAG;AAC1B,YAAY,CAAC;AACb;AACA,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE;AACnC,gBAAgB,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AACpF,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACxE,oBAAoB,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;AAClD,oBAAoB,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AACrD,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE;AACxC;AACA,gBAAgB,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AAC3F,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;AAClD,oBAAoB,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;AAClF,gBAAgB;AAChB;AACA,gBAAgB,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACzF,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE;AACnE,wBAAwB,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;AACtH,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE;AACjC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AAClB,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7D,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,IAAI,IAAI,GAAG;AACnB,QAAQ,OAAO,GAAG;AAClB,IAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY;AAC/L,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AACzD,QAAQ,OAAO,GAAG;AAClB,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9B,IAAI,IAAI,CAAC,IAAI;AACb,QAAQ,OAAO,GAAG;AAClB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAwB,CAAC,IAAI,EAAE;AACxC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3B,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC3C,IAAI,OAAO,kBAAkB,CAAC,IAAI,CAAC;AACnC;AACA,SAAS,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE;AAC7C,IAAI,IAAI,EAAE;AACV;AACA,IAAI,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC;AACpD;AACA;AACA,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE;AACpD,IAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC,QAAQ,IAAI;AACZ,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;AACpG,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC;AAC3E,QAAQ;AACR,IAAI;AACJ;AACA;AACA,MAAM,mBAAmB,GAAG,CAAC;AAC7B,MAAM,qBAAqB,GAAG,CAAC;AAC/B,SAAS,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE;AACjD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,EAAE;AAC5E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,cAAc,EAAE,YAAY,CAAC,cAAc;AACnD,QAAQ,IAAI,EAAE,YAAY,CAAC,IAAI;AAC/B,QAAQ,MAAM,EAAE,YAAY,CAAC,MAAM;AACnC,QAAQ,IAAI,EAAE,YAAY,CAAC,IAAI;AAC/B,QAAQ,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS;AAC/E,QAAQ,eAAe,EAAE,YAAY,CAAC,eAAe;AACrD,QAAQ,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG;AAC9E,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS;AACvB,QAAQ,KAAK,EAAE,YAAY,CAAC,KAAK;AACjC,QAAQ,MAAM,EAAE,YAAY,CAAC,MAAM;AACnC,KAAK;AACL,IAAI,IAAI;AACR,QAAQ,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnD,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AACxE,IAAI;AACJ;AACA,SAAS,eAAe,CAAC,UAAU,EAAE,cAAc,EAAE;AACrD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,EAAE;AAC5E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,EAAE,aAAa;AAC3B,QAAQ,cAAc;AACtB,KAAK;AACL,IAAI,IAAI;AACR,QAAQ,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnD,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAC1E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE;AACrE,IAAI,IAAI,EAAE,EAAE,EAAE;AACd,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACtE;AACA,IAAI,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU;AACpD,IAAI,MAAM,iBAAiB,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,eAAe;AAC9G,UAAU,YAAY,qBAAqB,CAAC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC,IAAI;AAClF,UAAU,SAAS;AACnB,IAAI,MAAM,YAAY,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,cAAc;AACxG,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC;AACvC,WAAW,iBAAiB,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACjG,IAAI,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC9F,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,EAAE,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpM;AACA,IAAI,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,GAAG,SAAS,IAAI,mBAAmB,CAAC,MAAM,EAAE;AACrG,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,EAAE;AAClB,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3J,QAAQ,CAAC,EAAE,CAAC,CAAC;AACb,IAAI;AACJ;AACA;AACA,IAAI,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,CAAC;AACnI;AACA,IAAI,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE;AAC/F,IAAI,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE;AAClG,IAAI,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE;AAC5F,IAAI,IAAI,oBAAoB;AAC5B,IAAI,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;AACzD,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACtE,QAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;AACzE,QAAQ,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;AACnE;AACA;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,IAAI,WAAW,KAAK,QAAQ,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,OAAO,IAAI,GAAG,CAAC,eAAe,MAAM,CAAC,EAAE,GAAG,mBAAmB,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE;AAC9Y,YAAY,oBAAoB,GAAG,GAAG;AACtC,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,oBAAoB,EAAE;AAC9B;AACA,QAAQ,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAChE;AACA,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,KAAK,SAAS,IAAI,mBAAmB,CAAC,MAAM,EAAE;AACvF,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,CAAC,EAAE,GAAG,mBAAmB,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC5K,YAAY,CAAC,EAAE,CAAC,CAAC;AACjB,QAAQ;AACR,QAAQ,OAAO,YAAY;AAC3B,YAAY,MAAM,8BAA8B,CAAC,UAAU,EAAE,oBAAoB,CAAC,cAAc,EAAE,mBAAmB,CAAC;AACtH,QAAQ,CAAC;AACT,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,GAAG,sBAAsB,EAAE;AACnD,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,cAAc;AACtB,QAAQ,IAAI,EAAE,cAAc;AAC5B,QAAQ,MAAM,EAAE,mBAAmB,CAAC,MAAM;AAC1C,QAAQ,IAAI,EAAE,mBAAmB,CAAC,IAAI;AACtC,QAAQ,MAAM,EAAE,mBAAmB,CAAC,MAAM;AAC1C,QAAQ,KAAK,EAAE,mBAAmB,CAAC,KAAK;AACxC,QAAQ,KAAK,EAAE,mBAAmB,CAAC,KAAK;AACxC,QAAQ,MAAM,EAAE,mBAAmB,CAAC,MAAM;AAC1C,QAAQ,eAAe,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC1G,QAAQ,SAAS,EAAE,CAAC,mBAAmB,CAAC;AACxC,QAAQ,QAAQ,EAAE,SAAS;AAC3B,QAAQ,QAAQ;AAChB,KAAK;AACL,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;AAC9D;AACA,IAAI,IAAI,UAAU,CAAC,WAAW,EAAE;AAChC;AACA,QAAQ,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACrE,YAAY,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACpF;AACA,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AACzE,oBAAoB,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC;AAC1E,oBAAoB,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC7D,gBAAgB;AAChB,YAAY,CAAC,EAAE,KAAK,CAAC;AACrB,QAAQ,CAAC,CAAC;AACV,QAAQ,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,QAAQ,IAAI;AACZ,YAAY,MAAM,mBAAmB;AACrC,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,IAAI,CAAC,2EAA2E,EAAE,KAAK,CAAC;AAC5G,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,OAAO,YAAY;AACvB,QAAQ,MAAM,8BAA8B,CAAC,UAAU,EAAE,cAAc,EAAE,mBAAmB,CAAC;AAC7F,IAAI,CAAC;AACL;AACA,eAAe,8BAA8B,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE;AACpF,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;AACrE,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC;AACjF;AACA,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC;AACnD,IAAI,IAAI,UAAU,CAAC,WAAW,EAAE;AAChC;AACA,QAAQ,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACpE,YAAY,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACtF;AACA,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AAC3E,oBAAoB,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC;AAC5E,oBAAoB,OAAO,EAAE,CAAC;AAC9B,gBAAgB;AAChB,YAAY,CAAC,EAAE,IAAI,CAAC;AACpB,QAAQ,CAAC,CAAC;AACV,QAAQ,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC;AACnD,QAAQ,MAAM,kBAAkB;AAChC,IAAI;AACJ;AACA,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE;AAC9D;AACA,QAAQ,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1C,YAAY,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvD,YAAY,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/C,QAAQ;AACR,QAAQ,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;AAC7B,QAAQ,UAAU,CAAC,EAAE,GAAG,IAAI;AAC5B,QAAQ,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AAC1C,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,uBAAuB,GAAG;AACzC,IAAI,MAAM,aAAa,GAAG,EAAE;AAC5B,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE;AACnD,QAAQ,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1C,YAAY,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvD,YAAY,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/C,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,EAAE,EAAE;AAC3B,YAAY,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;AACpC,YAAY,UAAU,CAAC,EAAE,GAAG,IAAI;AAChC,YAAY,UAAU,CAAC,WAAW,GAAG,KAAK;AAC1C,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxD,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACnD,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,EAAE,CAAC,KAAK,EAAE;AAC1B,YAAY,CAAC,CAAC,CAAC;AACf,QAAQ;AACR,QAAQ,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACpC;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,IAAI,EAAE;AAC5B,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AAC1E;AACA;AACA;AACA,QAAQ,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE;AAChD,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AACxC,YAAY,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG;AAChE,YAAY,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;AACrD,gBAAgB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;AACzC,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,SAAS;AACT,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,IAAI;AACJ;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE;AACvC,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACtE;AACA;AACA;AACA;AACA,IAAI,IAAI,QAAQ;AAChB,IAAI,KAAK,EAAE,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE;AAC1D,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;AAC7D,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;AACtE,gBAAgB,QAAQ,GAAG,GAAG,CAAC,QAAQ;AACvC,gBAAgB,MAAM,KAAK;AAC3B,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;AACpG,IAAI,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,GAAG,SAAS,EAAE;AACvE,QAAQ,OAAO,WAAW,CAAC,IAAI;AAC/B,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB,GAAG;AACxC,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,OAAO,mBAAmB;AAClC,IAAI;AACJ,IAAI,mBAAmB,GAAG,sBAAsB,EAAE;AAClD,IAAI,IAAI;AACR,QAAQ,MAAM,mBAAmB;AACjC,IAAI;AACJ,YAAY;AACZ,QAAQ,mBAAmB,GAAG,IAAI;AAClC,IAAI;AACJ;AACA,eAAe,sBAAsB,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB;AACA;AACA,IAAI,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE;AACnD,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;AAC7D,YAAY,GAAG,CAAC,QAAQ,GAAG,SAAS;AACpC,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AAChH,QAAQ,2BAA2B,EAAE;AACrC,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,KAAK,CAAC;AACtF,IAAI;AACJ,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AAC5B,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC,oBAAoB,EAAE;AACnE,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AACnF,QAAQ;AACR,QAAQ,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE;AAC/C,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC,sBAAsB,EAAE;AACrE,YAAY,OAAO,CAAC,OAAO,EAAE;AAC7B,QAAQ;AACR,QAAQ,UAAU,CAAC,sBAAsB,CAAC,KAAK,EAAE;AACjD;AACA,QAAQ,UAAU,CAAC,uBAAuB,GAAG,CAAC;AAC9C;AACA;AACA,QAAQ,IAAI;AACZ,YAAY,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;AACrC,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;AAC/D,QAAQ;AACR,IAAI;AACJ;AACA;AACA,MAAM,qBAAqB,GAAG,KAAK;AACnC,SAAS,iBAAiB,GAAG;AAC7B,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7E;AACA;AACA;AACA;AACA,SAAS,mBAAmB,GAAG;AAC/B,IAAI,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE;AACnD,QAAQ,IAAI,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE;AACrD,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;AACA,eAAe,WAAW,CAAC,UAAU,EAAE;AACvC,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9B,IAAI,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC1E;AACA;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,EAAE,EAAE;AAClD,QAAQ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC/C,YAAY,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;AAC7C,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;AAChH,gBAAgB,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACjE,YAAY,CAAC,EAAE,KAAK,CAAC;AACrB,YAAY,MAAM,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACtE,YAAY,IAAI,UAAU,CAAC,WAAW,EAAE;AACxC,gBAAgB,YAAY,CAAC,OAAO,CAAC;AACrC,gBAAgB,OAAO,EAAE;AACzB,gBAAgB;AAChB,YAAY;AACZ,YAAY,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AACnD,QAAQ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;AAC7D,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,iBAAiB,EAAE;AACzC,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;AACzC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM;AACvC,YAAY,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,QAAQ,CAAC,EAAE,qBAAqB,CAAC;AACjC,QAAQ,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC7E,QAAQ,IAAI;AACZ,YAAY,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACvD,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,YAAY,YAAY,CAAC,KAAK,CAAC;AAC/B,YAAY,MAAM,CAAC,KAAK,CAAC;AACzB,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,eAAe,KAAK,CAAC,IAAI,EAAE;AAC3B,IAAI,OAAO,WAAW,CAAC,CAAC,SAAS,MAAM;AACvC,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS;AACjB,QAAQ,IAAI;AACZ,KAAK,CAAC,CAAC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE;AAChD,IAAI,MAAM,OAAO,GAAG,oBAAoB,CAAC,aAAa,CAAC;AACvD,IAAI,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK;AAChE,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,EAAE;AAC3F,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE;AACxD,IAAI,MAAM,OAAO,GAAG,oBAAoB,CAAC,aAAa,CAAC;AACvD,IAAI,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK;AAChE,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,EAAE;AAC3F,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,iBAAiB,EAAE;AACzC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM;AACvC,YAAY,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,QAAQ,CAAC,EAAE,qBAAqB,CAAC;AACjC,QAAQ,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE;AAClD,YAAY,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;AAChG,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,SAAS,CAAC;AACV,QAAQ,IAAI;AACZ,YAAY,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AACrF,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,YAAY,YAAY,CAAC,KAAK,CAAC;AAC/B,YAAY,MAAM,CAAC,CAAC,CAAC;AACrB,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,eAAe,KAAK,CAAC,SAAS,EAAE;AAChC,IAAI,OAAO,WAAW,CAAC,CAAC,SAAS,MAAM;AACvC,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,KAAK,CAAC,CAAC;AACP;AACA,eAAe,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE;AACnC,IAAI,OAAO,WAAW,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS;AACzH,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACpa;AACA,eAAe,QAAQ,CAAC,IAAI,EAAE;AAC9B,IAAI,OAAO,WAAW,CAAC,CAAC,SAAS,MAAM;AACvC,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,SAAS;AACjB,QAAQ,IAAI;AACZ,KAAK,CAAC,CAAC;AACP;AACA,eAAe,SAAS,CAAC,KAAK,EAAE;AAChC,IAAI,OAAO,WAAW,CAAC,CAAC,SAAS,MAAM;AACvC,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,KAAK,CAAC,CAAC;AACP;;AAEA,IAAI,cAAc,gBAAgB,MAAM,CAAC,MAAM,CAAC;AAChD,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,uBAAuB,EAAE,uBAAuB;AACpD,IAAI,eAAe,EAAE,eAAe;AACpC,IAAI,mBAAmB,EAAE,mBAAmB;AAC5C,IAAI,sBAAsB,EAAE,sBAAsB;AAClD,IAAI,WAAW,EAAE,WAAW;AAC5B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,gBAAgB,EAAE,gBAAgB;AACtC,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE;AACX,CAAC,CAAC;;AAEF;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,eAAe,SAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE;AACpD;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,GAAG,OAAO,mBAAmB,KAAK;AAChD,UAAU,EAAE,MAAM,EAAE,mBAAmB;AACvC,UAAU,mBAAmB;AAC7B,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB,GAAG;AACvC,IAAI,OAAO,uBAAuB,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,YAAY,CAAC,IAAI,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB,GAAG;AACtC,IAAI,OAAO,sBAAsB,EAAE;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,IAAI,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,GAAG;AAC3B,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9C;;AAEA;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;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC7B,IAAI,MAAM,EAAE,GAAG,QAAQ,YAAY,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,QAAQ;AACvE,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,OAAO,EAAE;AAC3B,IAAI,OAAO,OAAO,GAAG,IAAI;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,UAAQ,GAAG,kBAAkB;AACnC,MAAMC,WAAS,GAAG,eAAe;AACjC,MAAM,WAAW,GAAG,CAAC;AACrB,IAAI,UAAU,GAAG,IAAI;AACrB,SAAS,MA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AAC,MAAM;AACpE,kBAAkB,EAAE;AACpB;AACA,gBAAgB,EAAE,gBAAgB;AAClC;AACA,YAAY;AACZ,cAAc;AACd;AACA;AACA,iDAAiD,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;AACpI;AACA,YAAY,CAAC;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AA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I,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,C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,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;;IAEzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;;IAEzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;;IAEzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;;IAEzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;;IAEzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;IACzB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI;AAC3B,EAAA;;EAEA,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAChC,IAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAA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CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAC9F,IAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAC9F,IAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,MAAM;AAC9F,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,MAAM;AACpC,IAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAC9F,IAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAC9F,IAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAC9F,IAAE,IAAI,CAA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C,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE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IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAExB;IACE,CAAC,GAAG,CAAC;IACL,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACn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","x_google_ignoreList":[0,1,2,3,7,8,9,10,11,12,13]}
|