UNPKG

@orama/stemmers

Version:
1 lines 40.3 kB
{"version":3,"sources":["<anon>"],"sourcesContent":["/*\n * -----------------------------------------------------------------------------\n * GENERATED FILE - DO NOT EDIT!\n * This file has been compiled using the Snowball stemmer generator.\n * Don't edit this file directly.\n * -----------------------------------------------------------------------------\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: Object.getOwnPropertyDescriptor(all, name).get\n });\n}\n_export(exports, {\n get language () {\n return language;\n },\n get stemmer () {\n return stemmer;\n }\n});\nvar g = !0, p = !1;\nfunction C() {\n this.p = function(k) {\n this.j = k;\n this.cursor = 0;\n this.a = this.j.length;\n this.f = 0;\n this.c = this.cursor;\n this.d = this.a;\n };\n this.z = function() {\n return this.j;\n };\n this.w = function(k) {\n this.j = k.j;\n this.cursor = k.cursor;\n this.a = k.a;\n this.f = k.f;\n this.c = k.c;\n this.d = k.d;\n };\n this.i = function(k, l, h) {\n if (this.cursor >= this.a) return p;\n var c = this.j.charCodeAt(this.cursor);\n if (c > h || c < l) return p;\n c -= l;\n if (0 == (k[c >>> 3] & 1 << (c & 7))) return p;\n this.cursor++;\n return g;\n };\n this.n = function(k, l, h) {\n if (this.cursor <= this.f) return p;\n var c = this.j.charCodeAt(this.cursor - 1);\n if (c > h || c < l) return p;\n c -= l;\n if (0 == (k[c >>> 3] & 1 << (c & 7))) return p;\n this.cursor--;\n return g;\n };\n this.k = function(k, l, h) {\n if (this.cursor >= this.a) return p;\n var c = this.j.charCodeAt(this.cursor);\n if (c > h || c < l) return this.cursor++, g;\n c -= l;\n return 0 == (k[c >>> 3] & 1 << (c & 7)) ? (this.cursor++, g) : p;\n };\n this.q = function(k, l, h) {\n if (this.cursor <= this.f) return p;\n var c = this.j.charCodeAt(this.cursor - 1);\n if (c > h || c < l) return this.cursor--, g;\n c -= l;\n return 0 == (k[c >>> 3] & 1 << (c & 7)) ? (this.cursor--, g) : p;\n };\n this.m = function(k) {\n if (this.a - this.cursor < k.length || this.j.slice(this.cursor, this.cursor + k.length) != k) return p;\n this.cursor += k.length;\n return g;\n };\n this.g = function(k) {\n if (this.cursor - this.f < k.length || this.j.slice(this.cursor - k.length, this.cursor) != k) return p;\n this.cursor -= k.length;\n return g;\n };\n this.o = function(k) {\n for(var l = 0, h = k.length, c = this.cursor, a = this.a, d = 0, n = 0, v = p;;){\n var b = l + (h - l >>> 1), f = 0, q = d < n ? d : n, t = k[b], s;\n for(s = q; s < t[0].length; s++){\n if (c + q == a) {\n f = -1;\n break;\n }\n f = this.j.charCodeAt(c + q) - t[0].charCodeAt(s);\n if (0 != f) break;\n q++;\n }\n 0 > f ? (h = b, n = q) : (l = b, d = q);\n if (1 >= h - l) {\n if (0 < l) break;\n if (h == l) break;\n if (v) break;\n v = g;\n }\n }\n for(;;){\n t = k[l];\n if (d >= t[0].length) {\n this.cursor = c + t[0].length;\n if (4 > t.length) return t[2];\n l = t[3](this);\n this.cursor = c + t[0].length;\n if (l) return t[2];\n }\n l = t[1];\n if (0 > l) return 0;\n }\n };\n this.h = function(k) {\n for(var l = 0, h = k.length, c = this.cursor, a = this.f, d = 0, n = 0, v = p;;){\n var b = l + (h - l >> 1), f = 0, q = d < n ? d : n, t = k[b], s;\n for(s = t[0].length - 1 - q; 0 <= s; s--){\n if (c - q == a) {\n f = -1;\n break;\n }\n f = this.j.charCodeAt(c - 1 - q) - t[0].charCodeAt(s);\n if (0 != f) break;\n q++;\n }\n 0 > f ? (h = b, n = q) : (l = b, d = q);\n if (1 >= h - l) {\n if (0 < l) break;\n if (h == l) break;\n if (v) break;\n v = g;\n }\n }\n for(;;){\n t = k[l];\n if (d >= t[0].length) {\n this.cursor = c - t[0].length;\n if (4 > t.length) return t[2];\n l = t[3](this);\n this.cursor = c - t[0].length;\n if (l) return t[2];\n }\n l = t[1];\n if (0 > l) return 0;\n }\n };\n this.s = function(k, l, h) {\n var c = h.length - (l - k);\n this.j = this.j.slice(0, k) + h + this.j.slice(l);\n this.a += c;\n this.cursor >= l ? this.cursor += c : this.cursor > k && (this.cursor = k);\n return c;\n };\n this.t = function() {\n return 0 > this.c || this.c > this.d || this.d > this.a || this.a > this.j.length ? p : g;\n };\n this.b = function(k) {\n var l = p;\n this.t() && (this.s(this.c, this.d, k), l = g);\n return l;\n };\n this.e = function() {\n return this.b('');\n };\n this.r = function(k, l, h) {\n l = this.s(k, l, h);\n k <= this.c && (this.c += l);\n k <= this.d && (this.d += l);\n };\n this.u = function() {\n var k = '';\n this.t() && (k = this.j.slice(this.c, this.d));\n return k;\n };\n this.v = function() {\n return this.j.slice(0, this.a);\n };\n}\nfunction stem() {\n function k() {\n E = x = d.a;\n a: for(;;){\n var a = d.cursor;\n if (d.i(z, 97, 246)) {\n d.cursor = a;\n break a;\n }\n d.cursor = a;\n if (d.cursor >= d.a) return;\n d.cursor++;\n }\n a: for(;;){\n if (d.k(z, 97, 246)) break a;\n if (d.cursor >= d.a) return;\n d.cursor++;\n }\n x = d.cursor;\n a: for(;;){\n a = d.cursor;\n if (d.i(z, 97, 246)) {\n d.cursor = a;\n break a;\n }\n d.cursor = a;\n if (d.cursor >= d.a) return;\n d.cursor++;\n }\n a: for(;;){\n if (d.k(z, 97, 246)) break a;\n if (d.cursor >= d.a) return;\n d.cursor++;\n }\n E = d.cursor;\n }\n function l() {\n return 0 == d.h(t) ? p : g;\n }\n function h() {\n return !d.g('i') || !d.n(e, 97, 246) ? p : g;\n }\n function c() {\n var a;\n if (!(d.cursor < x)) {\n var b = d.f;\n d.f = x;\n d.d = d.cursor;\n a = d.h(s);\n if (0 == a) d.f = b;\n else {\n d.c = d.cursor;\n d.f = b;\n switch(a){\n case 1:\n if (!d.g('a')) return;\n break;\n case 2:\n if (!d.g('e')) return;\n break;\n case 3:\n if (!d.g('i')) return;\n break;\n case 4:\n if (!d.g('o')) return;\n break;\n case 5:\n if (!d.g('\\u00e4')) return;\n break;\n case 6:\n if (!d.g('\\u00f6')) return;\n break;\n case 7:\n a = d.a - d.cursor;\n a: {\n b = d.a - d.cursor;\n b: {\n var c = d.a - d.cursor;\n if (l()) break b;\n d.cursor = d.a - c;\n if (!d.g('ie')) {\n d.cursor = d.a - a;\n break a;\n }\n }\n d.cursor = d.a - b;\n d.cursor <= d.f ? d.cursor = d.a - a : (d.cursor--, d.c = d.cursor);\n }\n break;\n case 8:\n if (!d.n(z, 97, 246) || !d.n(y, 98, 122)) return;\n }\n d.e() && (H = g);\n }\n }\n }\n function a() {\n if (!(d.cursor < x)) {\n var a = d.f;\n d.f = x;\n var b = d.a - d.cursor;\n var c = d.a - d.cursor;\n if (l() && (d.cursor = d.a - c, d.d = d.cursor, !(d.cursor <= d.f) && (d.cursor--, d.c = d.cursor, !d.e()))) return;\n d.cursor = d.a - b;\n b = d.a - d.cursor;\n d.d = d.cursor;\n if (d.n(u, 97, 228) && (d.c = d.cursor, d.n(y, 98, 122) && !d.e())) return;\n d.cursor = d.a - b;\n b = d.a - d.cursor;\n a: if (d.d = d.cursor, d.g('j')) {\n d.c = d.cursor;\n b: {\n c = d.a - d.cursor;\n if (d.g('o')) break b;\n d.cursor = d.a - c;\n if (!d.g('u')) break a;\n }\n if (!d.e()) return;\n }\n d.cursor = d.a - b;\n b = d.a - d.cursor;\n d.d = d.cursor;\n if (d.g('o') && (d.c = d.cursor, d.g('j') && !d.e())) return;\n d.cursor = d.a - b;\n d.f = a;\n a: for(;;){\n a = d.a - d.cursor;\n if (d.q(z, 97, 246)) {\n d.cursor = d.a - a;\n break a;\n }\n d.cursor = d.a - a;\n if (d.cursor <= d.f) return;\n d.cursor--;\n }\n d.d = d.cursor;\n d.n(y, 98, 122) && (d.c = d.cursor, G = d.u(), '' == G || !d.g(G) || d.e());\n }\n }\n var d = new C(), n = [\n [\n 'pa',\n -1,\n 1\n ],\n [\n 'sti',\n -1,\n 2\n ],\n [\n 'kaan',\n -1,\n 1\n ],\n [\n 'han',\n -1,\n 1\n ],\n [\n 'kin',\n -1,\n 1\n ],\n [\n 'h\\u00e4n',\n -1,\n 1\n ],\n [\n 'k\\u00e4\\u00e4n',\n -1,\n 1\n ],\n [\n 'ko',\n -1,\n 1\n ],\n [\n 'p\\u00e4',\n -1,\n 1\n ],\n [\n 'k\\u00f6',\n -1,\n 1\n ]\n ], v = [\n [\n 'lla',\n -1,\n -1\n ],\n [\n 'na',\n -1,\n -1\n ],\n [\n 'ssa',\n -1,\n -1\n ],\n [\n 'ta',\n -1,\n -1\n ],\n [\n 'lta',\n 3,\n -1\n ],\n [\n 'sta',\n 3,\n -1\n ]\n ], b = [\n [\n 'll\\u00e4',\n -1,\n -1\n ],\n [\n 'n\\u00e4',\n -1,\n -1\n ],\n [\n 'ss\\u00e4',\n -1,\n -1\n ],\n [\n 't\\u00e4',\n -1,\n -1\n ],\n [\n 'lt\\u00e4',\n 3,\n -1\n ],\n [\n 'st\\u00e4',\n 3,\n -1\n ]\n ], f = [\n [\n 'lle',\n -1,\n -1\n ],\n [\n 'ine',\n -1,\n -1\n ]\n ], q = [\n [\n 'nsa',\n -1,\n 3\n ],\n [\n 'mme',\n -1,\n 3\n ],\n [\n 'nne',\n -1,\n 3\n ],\n [\n 'ni',\n -1,\n 2\n ],\n [\n 'si',\n -1,\n 1\n ],\n [\n 'an',\n -1,\n 4\n ],\n [\n 'en',\n -1,\n 6\n ],\n [\n '\\u00e4n',\n -1,\n 5\n ],\n [\n 'ns\\u00e4',\n -1,\n 3\n ]\n ], t = [\n [\n 'aa',\n -1,\n -1\n ],\n [\n 'ee',\n -1,\n -1\n ],\n [\n 'ii',\n -1,\n -1\n ],\n [\n 'oo',\n -1,\n -1\n ],\n [\n 'uu',\n -1,\n -1\n ],\n [\n '\\u00e4\\u00e4',\n -1,\n -1\n ],\n [\n '\\u00f6\\u00f6',\n -1,\n -1\n ]\n ], s = [\n [\n 'a',\n -1,\n 8\n ],\n [\n 'lla',\n 0,\n -1\n ],\n [\n 'na',\n 0,\n -1\n ],\n [\n 'ssa',\n 0,\n -1\n ],\n [\n 'ta',\n 0,\n -1\n ],\n [\n 'lta',\n 4,\n -1\n ],\n [\n 'sta',\n 4,\n -1\n ],\n [\n 'tta',\n 4,\n 2\n ],\n [\n 'lle',\n -1,\n -1\n ],\n [\n 'ine',\n -1,\n -1\n ],\n [\n 'ksi',\n -1,\n -1\n ],\n [\n 'n',\n -1,\n 7\n ],\n [\n 'han',\n 11,\n 1\n ],\n [\n 'den',\n 11,\n -1,\n h\n ],\n [\n 'seen',\n 11,\n -1,\n l\n ],\n [\n 'hen',\n 11,\n 2\n ],\n [\n 'tten',\n 11,\n -1,\n h\n ],\n [\n 'hin',\n 11,\n 3\n ],\n [\n 'siin',\n 11,\n -1,\n h\n ],\n [\n 'hon',\n 11,\n 4\n ],\n [\n 'h\\u00e4n',\n 11,\n 5\n ],\n [\n 'h\\u00f6n',\n 11,\n 6\n ],\n [\n '\\u00e4',\n -1,\n 8\n ],\n [\n 'll\\u00e4',\n 22,\n -1\n ],\n [\n 'n\\u00e4',\n 22,\n -1\n ],\n [\n 'ss\\u00e4',\n 22,\n -1\n ],\n [\n 't\\u00e4',\n 22,\n -1\n ],\n [\n 'lt\\u00e4',\n 26,\n -1\n ],\n [\n 'st\\u00e4',\n 26,\n -1\n ],\n [\n 'tt\\u00e4',\n 26,\n 2\n ]\n ], r = [\n [\n 'eja',\n -1,\n -1\n ],\n [\n 'mma',\n -1,\n 1\n ],\n [\n 'imma',\n 1,\n -1\n ],\n [\n 'mpa',\n -1,\n 1\n ],\n [\n 'impa',\n 3,\n -1\n ],\n [\n 'mmi',\n -1,\n 1\n ],\n [\n 'immi',\n 5,\n -1\n ],\n [\n 'mpi',\n -1,\n 1\n ],\n [\n 'impi',\n 7,\n -1\n ],\n [\n 'ej\\u00e4',\n -1,\n -1\n ],\n [\n 'mm\\u00e4',\n -1,\n 1\n ],\n [\n 'imm\\u00e4',\n 10,\n -1\n ],\n [\n 'mp\\u00e4',\n -1,\n 1\n ],\n [\n 'imp\\u00e4',\n 12,\n -1\n ]\n ], m = [\n [\n 'i',\n -1,\n -1\n ],\n [\n 'j',\n -1,\n -1\n ]\n ], w = [\n [\n 'mma',\n -1,\n 1\n ],\n [\n 'imma',\n 0,\n -1\n ]\n ], u = [\n 17,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 8\n ], y = [\n 119,\n 223,\n 119,\n 1\n ], z = [\n 17,\n 65,\n 16,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 8,\n 0,\n 32\n ], e = [\n 17,\n 65,\n 16,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 8,\n 0,\n 32\n ], A = [\n 17,\n 97,\n 24,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 8,\n 0,\n 32\n ], H = p, G = '', E = 0, x = 0;\n this.l = function() {\n var e = d.cursor;\n k();\n d.cursor = e;\n H = p;\n d.f = d.cursor;\n d.cursor = d.a;\n e = d.a - d.cursor;\n a: {\n var h;\n if (!(d.cursor < x)) {\n var l = d.f;\n d.f = x;\n d.d = d.cursor;\n h = d.h(n);\n if (0 == h) d.f = l;\n else {\n d.c = d.cursor;\n d.f = l;\n switch(h){\n case 1:\n if (!d.n(A, 97, 246)) break a;\n break;\n case 2:\n if (!(E <= d.cursor)) break a;\n }\n d.e();\n }\n }\n }\n d.cursor = d.a - e;\n e = d.a - d.cursor;\n if (!(d.cursor < x)) if (l = d.f, d.f = x, d.d = d.cursor, h = d.h(q), 0 == h) d.f = l;\n else switch(d.c = d.cursor, d.f = l, h){\n case 1:\n h = d.a - d.cursor;\n if (d.g('k')) break;\n d.cursor = d.a - h;\n if (!d.e()) break;\n break;\n case 2:\n if (!d.e()) break;\n d.d = d.cursor;\n if (!d.g('kse')) break;\n d.c = d.cursor;\n if (!d.b('ksi')) break;\n break;\n case 3:\n if (!d.e()) break;\n break;\n case 4:\n if (0 == d.h(v) || !d.e()) break;\n break;\n case 5:\n if (0 == d.h(b) || !d.e()) break;\n break;\n case 6:\n 0 == d.h(f) || d.e();\n }\n d.cursor = d.a - e;\n e = d.a - d.cursor;\n c();\n d.cursor = d.a - e;\n e = d.a - d.cursor;\n a: if (!(d.cursor < E)) if (l = d.f, d.f = E, d.d = d.cursor, h = d.h(r), 0 == h) d.f = l;\n else {\n d.c = d.cursor;\n d.f = l;\n switch(h){\n case 1:\n h = d.a - d.cursor;\n if (d.g('po')) break a;\n d.cursor = d.a - h;\n }\n d.e();\n }\n d.cursor = d.a - e;\n a: {\n if (H) {\n e = d.a - d.cursor;\n d.cursor < x || (h = d.f, d.f = x, d.d = d.cursor, 0 == d.h(m) ? d.f = h : (d.c = d.cursor, d.f = h, d.e()));\n d.cursor = d.a - e;\n break a;\n }\n e = d.a - d.cursor;\n b: if (!(d.cursor < x)) if (h = d.f, d.f = x, d.d = d.cursor, d.g('t')) if (d.c = d.cursor, l = d.a - d.cursor, d.n(z, 97, 246)) {\n if (d.cursor = d.a - l, d.e() && (d.f = h, !(d.cursor < E))) if (l = d.f, d.f = E, d.d = d.cursor, h = d.h(w), 0 == h) d.f = l;\n else {\n d.c = d.cursor;\n d.f = l;\n switch(h){\n case 1:\n h = d.a - d.cursor;\n if (d.g('po')) break b;\n d.cursor = d.a - h;\n }\n d.e();\n }\n } else d.f = h;\n else d.f = h;\n d.cursor = d.a - e;\n }\n e = d.a - d.cursor;\n a();\n d.cursor = d.a - e;\n d.cursor = d.f;\n return g;\n };\n this.stemWord = function(a) {\n d.p(a);\n this.l();\n return d.j;\n };\n}\nconst stemmerInstance = new stem();\nfunction stemmer(word) {\n return stemmerInstance.stemWord(word);\n}\nconst language = 'finnish';\n"],"names":["_export","target","all","name","Object","defineProperty","enumerable","get","getOwnPropertyDescriptor","exports","value","language","stemmer","g","p","C","k","j","cursor","a","length","f","c","d","z","w","i","l","h","charCodeAt","n","q","m","slice","o","v","s","b","t","e","r","u","stem","y","A","H","G","E","x","stemWord","stemmerInstance","word"],"mappings":"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,CAAC,CAAG,SAASxB,CAAC,CAAEW,CAAC,CAAEC,CAAC,EACrBD,EAAI,IAAI,CAACS,CAAC,CAACpB,EAAGW,EAAGC,GACjBZ,GAAK,IAAI,CAACM,CAAC,EAAK,CAAA,IAAI,CAACA,CAAC,EAAIK,CAAAA,EAC1BX,GAAK,IAAI,CAACO,CAAC,EAAK,CAAA,IAAI,CAACA,CAAC,EAAII,CAAAA,CAC9B,EACA,IAAI,CAACc,CAAC,CAAG,WACL,IAAIzB,EAAI,GAER,OADA,IAAI,CAACsB,CAAC,IAAOtB,CAAAA,EAAI,IAAI,CAACC,CAAC,CAACgB,KAAK,CAAC,IAAI,CAACX,CAAC,CAAE,IAAI,CAACC,CAAC,CAAA,EACrCP,CACX,EACA,IAAI,CAACmB,CAAC,CAAG,WACL,OAAO,IAAI,CAAClB,CAAC,CAACgB,KAAK,CAAC,EAAG,IAAI,CAACd,CAAC,CACjC,CACJ,CACA,SAASuB,OAoCL,SAASf,IACL,OAAO,GAAKJ,EAAEK,CAAC,CAACU,GAAKxB,EAAID,CAC7B,CACA,SAASe,IACL,OAAO,AAACL,EAAEV,CAAC,CAAC,MAASU,EAAEO,CAAC,CAACS,EAAG,GAAI,KAAW1B,EAAJC,CAC3C,CAkGA,IAAIS,EAAI,IAAIR,EAAKe,EAAI,CACjB,CACI,KACA,GACA,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,OACA,GACA,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,SACA,GACA,EACH,CACD,CACI,aACA,GACA,EACH,CACD,CACI,KACA,GACA,EACH,CACD,CACI,QACA,GACA,EACH,CACD,CACI,QACA,GACA,EACH,CACJ,CAAEK,EAAI,CACH,CACI,MACA,GACA,GACH,CACD,CACI,KACA,GACA,GACH,CACD,CACI,MACA,GACA,GACH,CACD,CACI,KACA,GACA,GACH,CACD,CACI,MACA,EACA,GACH,CACD,CACI,MACA,EACA,GACH,CACJ,CAAEE,EAAI,CACH,CACI,SACA,GACA,GACH,CACD,CACI,QACA,GACA,GACH,CACD,CACI,SACA,GACA,GACH,CACD,CACI,QACA,GACA,GACH,CACD,CACI,SACA,EACA,GACH,CACD,CACI,SACA,EACA,GACH,CACJ,CAAEhB,EAAI,CACH,CACI,MACA,GACA,GACH,CACD,CACI,MACA,GACA,GACH,CACJ,CAAEU,EAAI,CACH,CACI,MACA,GACA,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,KACA,GACA,EACH,CACD,CACI,KACA,GACA,EACH,CACD,CACI,KACA,GACA,EACH,CACD,CACI,KACA,GACA,EACH,CACD,CACI,QACA,GACA,EACH,CACD,CACI,SACA,GACA,EACH,CACJ,CAAEO,EAAI,CACH,CACI,KACA,GACA,GACH,CACD,CACI,KACA,GACA,GACH,CACD,CACI,KACA,GACA,GACH,CACD,CACI,KACA,GACA,GACH,CACD,CACI,KACA,GACA,GACH,CACD,CACI,WACA,GACA,GACH,CACD,CACI,WACA,GACA,GACH,CACJ,CAAEF,EAAI,CACH,CACI,IACA,GACA,EACH,CACD,CACI,MACA,EACA,GACH,CACD,CACI,KACA,EACA,GACH,CACD,CACI,MACA,EACA,GACH,CACD,CACI,KACA,EACA,GACH,CACD,CACI,MACA,EACA,GACH,CACD,CACI,MACA,EACA,GACH,CACD,CACI,MACA,EACA,EACH,CACD,CACI,MACA,GACA,GACH,CACD,CACI,MACA,GACA,GACH,CACD,CACI,MACA,GACA,GACH,CACD,CACI,IACA,GACA,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,MACA,GACA,GACAR,EACH,CACD,CACI,OACA,GACA,GACAD,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,OACA,GACA,GACAC,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,OACA,GACA,GACAA,EACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,SACA,GACA,EACH,CACD,CACI,SACA,GACA,EACH,CACD,CACI,OACA,GACA,EACH,CACD,CACI,SACA,GACA,GACH,CACD,CACI,QACA,GACA,GACH,CACD,CACI,SACA,GACA,GACH,CACD,CACI,QACA,GACA,GACH,CACD,CACI,SACA,GACA,GACH,CACD,CACI,SACA,GACA,GACH,CACD,CACI,SACA,GACA,EACH,CACJ,CAAEY,EAAI,CACH,CACI,MACA,GACA,GACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,OACA,EACA,GACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,OACA,EACA,GACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,OACA,EACA,GACH,CACD,CACI,MACA,GACA,EACH,CACD,CACI,OACA,EACA,GACH,CACD,CACI,SACA,GACA,GACH,CACD,CACI,SACA,GACA,EACH,CACD,CACI,UACA,GACA,GACH,CACD,CACI,SACA,GACA,EACH,CACD,CACI,UACA,GACA,GACH,CACJ,CAAER,EAAI,CACH,CACI,IACA,GACA,GACH,CACD,CACI,IACA,GACA,GACH,CACJ,CAAEP,EAAI,CACH,CACI,MACA,GACA,EACH,CACD,CACI,OACA,EACA,GACH,CACJ,CAAEgB,EAAI,CACH,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACH,CAAEE,EAAI,CACH,IACA,IACA,IACA,EACH,CAAEnB,EAAI,CACH,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACH,CAAEe,EAAI,CACH,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACH,CAAEK,EAAI,CACH,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACH,CAAEC,EAAI/B,EAAGgC,EAAI,GAAIC,EAAI,EAAG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"}